Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

PDFのはなし2

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Nächste SlideShare
Cocoa勉強会pdf関連
Cocoa勉強会pdf関連
Wird geladen in …3
×

Hier ansehen

1 von 11 Anzeige

Weitere Verwandte Inhalte

Andere mochten auch (20)

Ähnlich wie PDFのはなし2 (20)

Anzeige

Aktuellste (20)

PDFのはなし2

  1. 1. PDF のはなし 其の二 How to Use CGPDF API.
  2. 2. How to use CGPDF • 何気にPDFのサポートはありがたい(Mac, iOS) Android, WP7は外部ライブラリが必要 (今日現在) • APIはCで実装
  3. 3. Opening, Getting Information of the PDF • CGPDFDocument (URL or DataProvider) • CGPDFPage サイズ(Bounding Box, Clipping Box), 回転, ページ数, メタデータ, バージョン, パス ワードロック • CFType (を継承)
  4. 4. Sample Code • Apple Developer: ZoomingPDFViewer key: 拡大縮小, 非同期描画, TiledLayer
  5. 5. Memory Management • Parent-Children モデル • CGPDFDocument-CGPDFPage • Pageよりも先にDocumentを解放してしまわ ないように注意!! Retain/strong Document Page Assign/weak
  6. 6. Drawing • CGContextDrawPDFPage パスの多いPDFや画像の大きいPDFは描画に 時間がかかる • 非同期描画がおすすめ e.g. CATiledLayer • c.f. 先ほどのZoomingPDFViewer
  7. 7. いよいよPDF内部へ • CGPDFScanner: ContentStream(≒ページ内) のPDFオペレータを解析 • CGPDFDocumentGetCatalog: Documentの Catalog(≒ルートオブジェクト)を取得 • CGPDFPageGetDictionary: ページを起点とす るPDFオブジェクトを取得 ✴ NOTE: Not CF Type
  8. 8. API PDFObject CGPDFObject - (汎用型) CGPDFDictionary Dictionary CGPDFArray Array CGPDFString String CGPDFStream Stream
  9. 9. Q. 目次を取得するには? • PDFのCatalogから目次データをパース
  10. 10. Q. Unicodeテキストに変換 するには 1. テキスト関連のオペレータを抽出 2. グリフ番号からUnicodeに変換 3. 位置的構造を解析 4. テキストに変換
  11. 11. Q. 書き出しする • CGPDFContext を使う • 別のライブラリを使う • 自分で実装する (解析よりも楽)

×