Submit Search
Upload
PDF開発の基礎
•
15 likes
•
13,128 views
F
field-works
Follow
「基礎勉強会忘年会」発表資料 http://connpass.com/event/4097/
Read less
Read more
Technology
Report
Share
Report
Share
1 of 59
Download now
Download to read offline
Recommended
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
ThinReports
OCamlによるプロダクト開発
OCamlによるプロダクト開発
field-works
2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
Marius Sescu
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
Expeed Software
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
Pixeldarts
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
marketingartwork
Skeleton Culture Code
Skeleton Culture Code
Skeleton Technologies
Recommended
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
ThinReports
OCamlによるプロダクト開発
OCamlによるプロダクト開発
field-works
2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
Marius Sescu
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
Expeed Software
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
Pixeldarts
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
marketingartwork
Skeleton Culture Code
Skeleton Culture Code
Skeleton Technologies
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
sugiuralab
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
sugiuralab
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
osamut
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
Atomu Hidaka
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
Shota Ito
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
Neil Kimberley
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
contently
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
Albert Qian
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
Search Engine Journal
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
SpeakerHub
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
Clark Boyd
Getting into the tech field. what next
Getting into the tech field. what next
Tessa Mero
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Lily Ray
How to have difficult conversations
How to have difficult conversations
Rajiv Jayarajah, MAppComm, ACC
Introduction to Data Science
Introduction to Data Science
Christy Abraham Joy
Time Management & Productivity - Best Practices
Time Management & Productivity - Best Practices
Vit Horky
The six step guide to practical project management
The six step guide to practical project management
MindGenius
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
RachelPearson36
More Related Content
Recently uploaded
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
sugiuralab
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
sugiuralab
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
osamut
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
Atomu Hidaka
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
Shota Ito
Recently uploaded
(8)
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
Featured
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
Neil Kimberley
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
contently
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
Albert Qian
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
Search Engine Journal
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
SpeakerHub
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
Clark Boyd
Getting into the tech field. what next
Getting into the tech field. what next
Tessa Mero
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Lily Ray
How to have difficult conversations
How to have difficult conversations
Rajiv Jayarajah, MAppComm, ACC
Introduction to Data Science
Introduction to Data Science
Christy Abraham Joy
Time Management & Productivity - Best Practices
Time Management & Productivity - Best Practices
Vit Horky
The six step guide to practical project management
The six step guide to practical project management
MindGenius
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
RachelPearson36
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Applitools
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
GetSmarter
ChatGPT webinar slides
ChatGPT webinar slides
Alireza Esmikhani
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
Project for Public Spaces & National Center for Biking and Walking
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
DevGAMM Conference
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
Erica Santiago
Featured
(20)
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
Getting into the tech field. what next
Getting into the tech field. what next
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
How to have difficult conversations
How to have difficult conversations
Introduction to Data Science
Introduction to Data Science
Time Management & Productivity - Best Practices
Time Management & Productivity - Best Practices
The six step guide to practical project management
The six step guide to practical project management
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
ChatGPT webinar slides
ChatGPT webinar slides
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
PDF開発の基礎
1.
基礎勉強会忘年会 PDF開発の基礎 合同会社フィールドワークス 梶田健史
2.
自己紹介 梶田健史(かじたけんじ) 仕事 合同会社フィールドワークス プログラマ兼代表 Blog http://field-notes.hatenablog.jp/ Twitter @field_works ! 合同会社フィールドワークス /
Field Works, LLC. 設立 2007年5月 業務内容 PDF関連ソフトウェア製品の企画・開発・販売 ソフトウェア受託開発 URL http://www.field-works.co.jp/ 所在地 愛知県春日井市
3.
本日の発表内容 PDF開発ツールの現状 PDF開発の基礎 PDFの概要 PDFファイルの構造 PDFの構成要素 弊社製品のご紹介(PR) まとめ
4.
PDF開発ツールの現状
5.
PDF開発ツールの選定 システム開発において,まだまだ紙の帳票が必要とされる場面があります。 納品書・請求書 銀行のステートメント チラシ・DM ⇒タブレット端末・PCを持たないユーザが少数でもいる分野では, 紙での出力手段も用意せざるを得ない。 ! 現在,帳票の出力形式としてはPDFが一般的です。 PDF帳票を作成するには,どんな方法があるのでしょうか? ! !
6.
(1) 既存アプリケーションの力を借りる PDF生成機能を持ったアプリケーションを使う OpenOffice.org Adobe Illustrator ⇒API・スクリプトにより自動処理を行う。 PDF仮想プリンタドライバを通して印刷を掛ける オフィスソフト(Word,
Excelなど) ⇒スクリプトでコントロールして,差し込み印刷を行う。 組版ソフトの利用 Apache FOP(XSL-FO処理系) TEX→PDF 連続運用は難しい ・ライセンス契約 ・エラー回復性
7.
(2) 帳票開発ツールを使う 非常に種類が多いが,ほとんど商用製品。 Crystal Reports(ビジネスオブジェクツ社) Super
Visual Formade(ウィングアークテクノロジーズ社) InterstageList Creator(富士通) ThinReports(株式会社マツケイ;OSS,サポート有償) ! ノークリサーチ社調査(2008年)
8.
(3) PDFライブラリを利用して自力で実現 描画API グラフィック・テキストを描画するAPIを提供 Haru,Prawn(Ruby),iText(Java, .Net) Cairo PDF編集ライブラリ PDFファイルを操作するためのローレベルな機能を提供 CamlPDF
(Coherent Graphics社,OCaml; 弊社で採用) PDFMiner (Python)
9.
結局どれを使えばいいんだろう? 定番はどれ? なんでこんなに種類があるの? ⇒ひょっとして玉石混淆状態? どうやって絞り込めばいいんだろう? ⇒選定基準がわからない。 ⇒価格と性能は比例しているんだろうか?
10.
PDF開発の現実
11.
本当は怖いPDF開発 PDF開発の罠 出力するPDFの品質は,ツールによってまちまち ⇒(運が悪いと)互換性の問題に遭遇する危険性 ex. Macで開いたらレイアウトが崩れた。 ツールによって,PDF仕様の実装レベル(カバー率)も様々 ⇒期待していた事ができない! ex. 開発終盤になって,PDFにセキュリティを掛けてくれと言われたが 機能がなかった。
12.
なぜ互換性の問題が発生するのか? • • • • PDFは最終的な出力結果がイメージなので,機械的な検証が困難 ⇒Adobe製品で問題なければきっと大丈夫だろう。 ところが! Adobe Readerは間違ったPDFに寛容(ex.初期のWebブラウザ) そのため 間違ったPDFを生成するツールが世の中に氾濫! けっきょく 生成したPDFを他のソフトウェアと交換する際に,しばしば問題が発生
13.
非互換性の発生事例 Adobe Readerでは問題ないが,弊社製品で処理するとエラーになる例 相互参照がずれている! 詳しくは後述 ストリームオブジェクトのLengthが合ってない! endobjがない! PDF仕様には適合しているはずなのに,Adobe製品ではエラーになる例 Adobe Readerが電子署名を認証してくれない! 写植機に送ったら停止してしまった! Adobe製品で動くよ うに直すしかない!
14.
なぜ,ツールによって実装レベルがまちまちなのか? PDFの仕様が大きく複雑だから。 (1)レガシー仕様の存在 LZWデコードフィルタ CCITT Group4, JBIG2 PostScript関数 ⇒他にもまず使わないような仕様がたくさんあるので,Adobe以外が仕様 を100%カバーするのは,現実的には(主にコスト面で)不可能に近い。 (2)現在のDTP・印刷技術の集大成だから フォント 文字コード セキュリティ ⇒複雑な外部仕様を取り込んでいる形なので,仕方のない面も…
15.
PDFの現実と戦うために基礎を学びましょう 既存プロダクトを評価する際の観点がわかります。 実際に問題に遭遇した場合に,自分で原因の特定ができるようになります。 オープンソースであれば,自ら修正することも可能になります。 市販製品であっても,バグの指摘を的確に行うことができます。
16.
PDF開発の基礎
17.
PDFの概要
18.
PDFの歴史 PostScriptの略歴 1985 PostScript Level
1 ̶ 同年,Apple LaserWriter発売 1990 PostScript Level 2 ̶ 日本語,カラー化対応 1996 PostScript Level 3 ̶ PDFとの整合性確保 PostScriptの特徴 ページ記述言語として設計された汎用プログラミング言語 レーザープリンターに搭載され,DTP普及のきっかけとなった PostScriptの問題点 実行に多大なリソースを消費(1990年代当時) ページへのランダムアクセスが困難 後に,EPS(Encapsulated PostScript)という規約を追加したが, 根本的な解決はならず。
19.
EPSの例
20.
PDFの略歴 1993 PDF1.0 1994 Acrobat Readerの無償配布を開始 1996
PDF 1.2, Acrobat 3.0 日本語対応 2004 PDF 1.6, Acrobat 7.0 低価格帯PDF作成ソフトの発売 2006 PDF 1.7, Acrobat 8.0 2008 ISO 32000-1 ISO標準化 PDF派生(サブセット)規格 PDF/A 長期保存のための規格 PDF/X 印刷向けの規格 一言で言えば, レガシー仕様を省いた規格
21.
PDFの特徴 PostScriptから命令数を大幅に削減 JavaScriptとJSONの関係 にちょっと似ている (プログラミング言語としての特性も失う) ページへのランダムアクセスを考慮(目次,リンク) ファイルサイズを小さくできる(データ圧縮) 文書交換のための仕様 文書メタデータの付与(タイトル,作者) セキュリティの設定(暗号化) マルチメディア対応 しおり・リンク・コメント・注釈 アクション(JavaScript),対話フォーム 音声,動画,3D PDF
22.
資料 PDFリファレンス第2版 日本語で読める唯一のPDF仕様書 内容はPDF 1.3版の仕様なのでかなり古い。 ⇒英語版のPDF Referenceは,Adobeのサ イトから無料でダウンロードできる。 PDF構造解説 読んでいないので,内容についてはノーコメン トで。
23.
ツール PDFtk PDFの結合・分解などの加工ができるツール 圧縮されたPDFを解凍する機能があり,解析の際に非常に助かる。 テキストエディタ バイナリファイルも開けるものが望ましい。 ⇒pdftk.vim:自動でPDFtkを実行して見やすくしてくれる。 バイナリ・エディタ 画像ファイル・フォントファイルなどの中身を確認 プログラミング言語 お好みで。 ⇒弊社では,OCamlを使用
24.
PDFファイルの構造
25.
ファイル構造 (1) ヘッダ部 コメント行: 1行目は,PDFのバージョンを示す。 2行目は,バイナリデータを含むことを示す。 8種類の基本型オブジェクト: 論理値(true/false),数値,文字列,名前, 配列,辞書,ストリーム,ヌル(null) 間接オブジェクト: オブジェクトにラベル付けしたもの 書式:「<オブジェクト番号> <生成番号> obj
∼ endobj」 間接参照: 間接オブジェクトを参照する場面で使用 書式:「<オブジェクト番号> <生成番号> R」
26.
ファイル構造 (2) ファイルトレーラ 相互参照表: xrefから始まるテーブル startxrefの次の数値:相互参照表の位置 テーブル要素: 間接オブジェクトの位置を示す。 トレーラ辞書: キーワードtrailerの後の辞書 Infoエントリ:文書情報辞書を示す。 Rootエントリ:文書カタログを示す。 Sizeエントリ:間接オブジェクトの総数 IDエントリ:ファイル識別子(ハッシュ値)
27.
ファイル構造 (3)ページ辞書 ページツリーは「平衡木」構造を構成する。 平衡木の「葉」の部分にページ辞書がある。 ページ辞書の主な内容: MediaBox 物理媒体のサイズを示す。 Resources フォント,画像などのリソースを定義 Contents ページの内容を描画する命令列
28.
増分更新(1) 通常PDFを変更する時は「増分更新」を行う。 メモリの少ない動作環境への配慮 変更・追加の発生した間接オブジェクトを 「%EOF」移行に追記していく。 CD-Rを追記するイメージ
29.
増分更新(2) トレーラ辞書のPrevエントリは「前」の相互 参照表の位置を示す。 相互参照表のリンクリストを構成する。 同じオブジェクト番号が出現した場合は「後 ろ」のオブジェクトを使用するルール 「前」「後ろ」は物理的な位置関係とは独立
30.
Web表示用に最適化 PDFのダウンロード中でも先頭ページの表示が できるようにするための仕様 相互参照表を先頭に配置する。
31.
PDFの構成要素
32.
フォント PDFは,フォントのサポートが手厚い。 ⇒他のフォーマットと差別化できているポイントかも PDFで使えるフォントの種類 単純フォント Type 1フォント -
欧文PostScriptフォント TrueTypeフォント - 欧文TrueTypeフォント Type 3フォント - PDFグラフィック命令で定義したフォント コンポジットフォント Type 0フォント - CJK OpenTypeフォント フォント = エンコーディング + メトリックス情報 + グリフ(字形)
33.
エンコーディング エンコーディング = 文字コード→CID(グリフ名)変換テーブル 単純フォント MacRomanEncoding,
MacExpertEncoding, 本来はフォントに内蔵 されているものだが,PDF内 に取り込んでいる形に WinAnsiEncoding, 内蔵エンコーディングから選択 コンポジットフォント 定義済みCMap: (マルチバイト系)83pv-RKSJ-H, 90ms-RKSJ-H, EUC-H, H,… (Unicode系)UniJIS-UCS2-H,UniJIS−UTF16-H,… (CID直接指定)Identity-H,Identity-V *-V は縦書きを示す
34.
CIDとは? CIDフォントが内蔵する字形(グリフ)毎に 振られた一連の番号 アドビ社は,言語毎に文字コレクションを 定義している。 日本語用は,Adobe-Japan1-* CIDフォント: GID=CID TrueTypeフォント:GID=独自体系
35.
グリフメトリックス情報 グリフ(字形)の幅(高さ)の情報 本来はフォントが内蔵している情報だが,PDF内部に取り込んでいる。 ⇒指定フォントがない場合(代替フォント)にレイアウトが崩れないよう配慮
36.
グリフデータ • • PDFに劣らぬ厳しい現実が待ち受けている。 PostScriptフォント Adobeが開発したアウトラインフォントの規格(PostScriptで記述) バイナリ形式 ⇒CFF(Compact Font Format) CJK向けにCIDフォント形式を開発 ⇒Adobe-Japan1 TrueTypeフォント Apple,
Microsoftが共同開発 ⇒Appleの独自拡張規格(ATT)も PCのOSに標準装備されて普及 OpenTypeフォント TrueTypeフォントとCFFフォントを統合した仕様 実態は,TrueTypeの器にCFFを丸ごと放り込んだ感じ
37.
フォントサブセット PDFにフォントデータを埋め込むこと ができる。 日本語フォントはサイズが大きいので, サブセット化が必須 サブセット化するには,フォントデー タから,必要なグリフデータだけを抽 出して再編集する必要がある。 ⇒実装は,かなりめんどくさい!
38.
PDFを構成するその他の要素 グラフィックス PostScriptのモデルを引き継ぐ ⇒アフィン変換,ベジェ曲線,色(RGB, CMYK, …),シェーディング イメージ 非可逆形式画像(JPEG,
JPEG2000はネイティブ対応) 可逆形式画像(PNG様の形式で画素データを格納) 対話機能 ナビゲーション 注釈,フォーム(JavaScript) 暗号,電子署名
39.
弊社製品のご紹介(PR)
40.
PDFテンプレートエンジン Field Reports 2011年3月より販売しているPDF帳票開発ツール 【用途】中小規模の業務システム・Webサービスでの帳票出力 ⇒マルチプラットフォーム/マルチ言語対応(特にLL言語) 【機能】PDFテンプレートにテキストや画像を動的に配置する
⇒PDFテンプレート:オフィスソフト+Acrobatで作成 ⇒動的に配置する値:JSONベースのパラメータ(DSL?)で記述 【仕組】共有ライブラリとして実装 ⇒OCamlで開発 ⇒PDFに特化することで,シンプルさと高性能を両立
41.
Field Reportsの主な特長 (1) PDFテンプレート+パラメータ→PDF帳票 (2)
強力なグラフィックス表現 (3) 組版処理 ! • • • • • • 【開発目標】日本的な帳票をストレスなく開発できるようにしたい。 既存帳票・外部設計資料をテンプレートとして流用可能 規定の枠内にテキストを精密にはめ込む(ex.郵便番号,振込用紙) 見た目の美しさへのこだわり
42.
(1) PDFテンプレート+パラメータ→PDF帳票 手順1:AcrobatでPDFにフィールドを配置
43.
手順2:プログラミング言語でパタメータを生成
44.
手順3:プログラムを実行 PDF生成時にフィールドはテンプレートのコンテンツと統合される。
45.
(2) 強力なグラフィックス表現 PDFの多彩な表現力を活用 透過表現(画像,テキスト) アフィン変換(回転,拡大/縮小,変換行列) ブレンドモード
46.
(3)組版処理 日本語の禁則処理・均等割付
47.
毛筆フォントを縦書き表示
48.
多漢字フォントへの対応 サロゲートペア 異体字セレクタ グリフ名またはGID/CIDによる直接指定
49.
内部構造 LL言語からは拡張ライブラリとして利用できる。 レンダリング機能本体は,関数型プログラミング言語OCamlで実装 言語Bridgeは,言語毎にCで実装(ソースは公開)
50.
Field Reports 2.0の新機能 2013年末リリース予定(α版?) 組版機能を大幅に強化 リッチテキスト対応 縦組テキストの改善
51.
リッチテキスト機能 PDFテンプレートに流し込む値をXML形式で指定する。 利用可能な要素:body, p, span,
div, br, ruby, img
52.
スタイル指定(1) 要素のstyle属性として, フォント・フォントサイズ・色などの書式指定が可能 例:style= font:KozGoMin; font-size:12;
color:red
53.
スタイル指定(2) font-stretch属性により「長体」の指定が可能
54.
ruby要素
55.
img要素
56.
実際の利用例 業務システムでの帳票出力 ➜納品書・請求書など 飲食店向けメニュー作成サービス ➜某飲料メーカーが提供する会員制サービス オンデマンド印刷(web to print)システム ➜Web上でデザインした名刺などのPDFを直接印刷所に送付
57.
デモ http://labs.field-works.co.jp/atena/ 時間があれば…
58.
まとめ PDFの現実と戦うために,PDFの基礎を学びましょう。 PDFは様々な要素技術の集合体であり, 関心のある技術がいくつかあれば,きっと楽しいはず。 でも,時間を節約したい時は,Field Reportsの採用もご検討ください!
59.
ご清聴ありがとうございました。
Download now