Objective-C API リファレンス
PDF Oxide は、C ABI の上にイディオマティックな Objective-C バインディング(PdfOxide フレームワーク/PdfOxide CocoaPod)を提供します。NSObject ラッパーがネイティブハンドルを所有し、-dealloc(または -close による即時解放)で解放します。返却される C 文字列やバッファは NSString/NSData にコピーされ、成功以外のステータスコードは POXErrorDomain の NSError として表面化します。すべての公開メソッドは POXApiCoverageTests によって 1 対 1 でカバーされています。
# Podfile
pod 'PdfOxide', '~> 0.3.69'
#import <PdfOxide/POXPdfOxide.h>
Rust API については Rust API リファレンス を、Python API については Python API リファレンス を、JavaScript API については Node.js API リファレンス または WASM API リファレンス を参照してください。
すべてのページインデックスは 0 始まりです。バウンディングボックスは PDF ユーザー空間ポイント単位の POXBbox { float x; float y; float width; float height; } を使用し、PDF バージョンは POXVersion { uint8_t major; uint8_t minor; } として報告されます。
POXDocument
PDF を開き、抽出し、レンダリングし、検査するための中心的なクラスです。
オープン
+ (nullable instancetype)openPath:(NSString*)path error:(NSError**)error;
ファイルシステムのパスから PDF を開きます。
+ (nullable instancetype)openFromBytes:(NSData*)data error:(NSError**)error;
メモリ上のバイト列から PDF を開きます。
+ (nullable instancetype)openWithPassword:(NSString*)path password:(NSString*)password error:(NSError**)error;
パスワード保護された PDF を 1 ステップで開きます。
+ (nullable instancetype)openFromDocxBytes:(NSData*)data error:(NSError**)error;
+ (nullable instancetype)openFromPptxBytes:(NSData*)data error:(NSError**)error;
+ (nullable instancetype)openFromXlsxBytes:(NSData*)data error:(NSError**)error;
メモリ上の Office ドキュメントのバイト列(Word/PowerPoint/Excel)を、開かれた PDF ドキュメントに変換します。
- (BOOL)authenticate:(NSString*)password error:(NSError**)error;
オープン後に暗号化ドキュメントを認証します。成功すれば YES、パスワードが誤っていれば NO を返します。
Office エクスポート
- (nullable NSData*)toDocxWithError:(NSError**)error;
- (nullable NSData*)toPptxWithError:(NSError**)error;
- (nullable NSData*)toXlsxWithError:(NSError**)error;
ドキュメントを Word/PowerPoint/Excel のバイト列としてエクスポートします。
ドキュメント情報
- (NSInteger)pageCountError:(NSError**)error;
ページ数。エラー時は -1。
- (POXVersion)version;
POXVersion 構造体としての PDF バージョン。
- (BOOL)isEncrypted;
- (BOOL)hasStructureTree;
- (BOOL)hasXfa;
暗号化の有無、タグ付き PDF の構造ツリーの有無、XFA フォームの有無を問い合わせます。
テキストと変換
- (nullable NSString*)extractText:(NSInteger)page error:(NSError**)error;
1 ページからプレーンテキストを抽出します。
- (nullable NSString*)toPlainText:(NSInteger)page error:(NSError**)error;
- (nullable NSString*)toMarkdown:(NSInteger)page error:(NSError**)error;
- (nullable NSString*)toHtml:(NSInteger)page error:(NSError**)error;
1 ページをプレーンテキスト、Markdown、HTML に変換します。
- (nullable NSString*)toPlainTextAllWithError:(NSError**)error;
- (nullable NSString*)toMarkdownAllWithError:(NSError**)error;
- (nullable NSString*)toHtmlAllWithError:(NSError**)error;
全ページをプレーンテキスト、Markdown、HTML に変換します。
- (nullable NSString*)extractStructuredJson:(NSInteger)page error:(NSError**)error;
1 ページを構造化 JSON(スパン、ジオメトリ、フォント)として抽出します。
要素抽出
- (nullable NSArray<POXChar*>*)extractChars:(NSInteger)page error:(NSError**)error;
- (nullable NSArray<POXWord*>*)extractWords:(NSInteger)page error:(NSError**)error;
- (nullable NSArray<POXTextLine*>*)extractTextLines:(NSInteger)page error:(NSError**)error;
- (nullable NSArray<POXTable*>*)extractTables:(NSInteger)page error:(NSError**)error;
位置情報付きの文字、単語、テキスト行、表を抽出します。
- (nullable NSArray<POXFont*>*)embeddedFonts:(NSInteger)page error:(NSError**)error;
- (nullable NSArray<POXImage*>*)embeddedImages:(NSInteger)page error:(NSError**)error;
- (nullable NSArray<POXAnnotation*>*)pageAnnotations:(NSInteger)page error:(NSError**)error;
- (nullable NSArray<POXPath*>*)extractPaths:(NSInteger)page error:(NSError**)error;
埋め込みフォント、埋め込み画像、ページ注釈、ベクターパスを抽出します。
検索
- (nullable NSArray<POXSearchResult*>*)search:(NSInteger)page term:(NSString*)term caseSensitive:(BOOL)caseSensitive error:(NSError**)error;
1 ページ内で term を検索します。
- (nullable NSArray<POXSearchResult*>*)searchAll:(NSString*)term caseSensitive:(BOOL)caseSensitive error:(NSError**)error;
ドキュメント全体で term を検索します。
矩形内抽出
- (nullable NSString*)extractTextInRect:(NSInteger)page x:(float)x y:(float)y width:(float)width height:(float)height error:(NSError**)error;
- (nullable NSArray<POXWord*>*)extractWordsInRect:(NSInteger)page x:(float)x y:(float)y width:(float)width height:(float)height error:(NSError**)error;
- (nullable NSArray<POXTextLine*>*)extractLinesInRect:(NSInteger)page x:(float)x y:(float)y width:(float)width height:(float)height error:(NSError**)error;
- (nullable NSArray<POXTable*>*)extractTablesInRect:(NSInteger)page x:(float)x y:(float)y width:(float)width height:(float)height error:(NSError**)error;
- (nullable NSArray<POXImage*>*)extractImagesInRect:(NSInteger)page x:(float)x y:(float)y width:(float)width height:(float)height error:(NSError**)error;
矩形領域(ユーザー空間ポイント)に限定して、テキスト、単語、行、表、画像を抽出します。
自動抽出と分類
- (nullable NSString*)extractTextAuto:(NSInteger)page error:(NSError**)error;
ページごとにネイティブ抽出と OCR を自動選択してテキストを抽出します。
- (nullable NSString*)extractAllTextWithError:(NSError**)error;
ドキュメント全体からテキストを抽出します。
- (nullable NSString*)extractPageAuto:(NSInteger)page optionsJson:(nullable NSString*)optionsJson error:(NSError**)error;
JSON オプション文字列を指定してページを自動抽出します。
- (nullable NSString*)classifyPage:(NSInteger)page error:(NSError**)error;
- (nullable NSString*)classifyDocumentWithError:(NSError**)error;
1 ページ、またはドキュメント全体を分類します(分類結果の JSON を返します)。
ヘッダー / フッター / アーティファクトの除去
- (int32_t)eraseHeader:(NSInteger)page error:(NSError**)error;
- (int32_t)eraseFooter:(NSInteger)page error:(NSError**)error;
- (int32_t)eraseArtifacts:(NSInteger)page error:(NSError**)error;
1 ページのヘッダー、フッター、アーティファクトを除去します。除去件数を返します。
- (int32_t)removeHeaders:(float)threshold error:(NSError**)error;
- (int32_t)removeFooters:(float)threshold error:(NSError**)error;
- (int32_t)removeArtifacts:(float)threshold error:(NSError**)error;
類似度 threshold を超える、繰り返し出現するヘッダー、フッター、アーティファクトをドキュメント全体から除去します。
フォーム
- (nullable NSArray<POXFormField*>*)formFieldsWithError:(NSError**)error;
すべての AcroForm フィールドを取得します。
- (nullable NSData*)exportFormDataToBytes:(int32_t)formatType error:(NSError**)error;
フォームデータを FDF/XFDF バイト列としてエクスポートします(formatType でフォーマットを選択)。
- (BOOL)importFormDataFromPath:(NSString*)dataPath error:(NSError**)error;
- (BOOL)importFormFromFile:(NSString*)filename error:(NSError**)error;
FDF/XFDF ファイルからフォームデータをインポートします。
構造とメタデータ
- (nullable NSString*)outlineWithError:(NSError**)error;
- (nullable NSString*)pageLabelsWithError:(NSError**)error;
- (nullable NSString*)xmpMetadataWithError:(NSError**)error;
ドキュメントのアウトライン(しおり)、ページラベル範囲、XMP メタデータを JSON として取得します。
- (nullable NSData*)sourceBytesWithError:(NSError**)error;
元の PDF の生バイト列を取得します。
- (nullable NSString*)planSplitByBookmarks:(nullable NSString*)optionsJson error:(NSError**)error;
トップレベルのしおりごとにページをグルーピングした分割プランを算出します(JSON を返します)。
注釈 / フォント / 検索の JSON 表現
- (nullable NSString*)annotationsJson:(NSInteger)page error:(NSError**)error;
- (nullable NSString*)embeddedFontsJson:(NSInteger)page error:(NSError**)error;
- (nullable NSString*)searchJson:(NSInteger)page term:(NSString*)term caseSensitive:(BOOL)caseSensitive error:(NSError**)error;
ページ注釈、埋め込みフォント、ページ単位検索の JSON シリアライズ版です。
ページのジオメトリと要素
- (float)pageWidth:(NSInteger)pageIndex error:(NSError**)error;
- (float)pageHeight:(NSInteger)pageIndex error:(NSError**)error;
- (int32_t)pageRotation:(NSInteger)pageIndex error:(NSError**)error;
ページの幅、高さ、回転角度(度)。エラー時は -1。
- (nullable POXElementList*)pageElements:(NSInteger)pageIndex error:(NSError**)error;
ページのレイアウト要素リストを取得します。POXElementList を参照してください。
- (POXPage*)pageAtIndex:(NSInteger)index;
このドキュメントに紐づくページハンドルを取得します。POXPage を参照してください。
レンダリング
- (nullable POXRenderedImage*)renderPage:(NSInteger)pageIndex format:(int32_t)format error:(NSError**)error;
ページを画像にレンダリングします(format は 0 = PNG、1 = JPEG)。
- (nullable POXRenderedImage*)renderPageZoom:(NSInteger)pageIndex zoom:(float)zoom format:(int32_t)format error:(NSError**)error;
- (nullable POXRenderedImage*)renderPageThumbnail:(NSInteger)pageIndex size:(int32_t)size format:(int32_t)format error:(NSError**)error;
指定のズーム倍率でページをレンダリングする、または最長辺サイズ size のサムネイルとしてレンダリングします。
- (nullable POXRenderedImage*)renderPageWithOptions:(NSInteger)pageIndex
dpi:(int32_t)dpi
format:(int32_t)format
bgR:(float)bgR bgG:(float)bgG bgB:(float)bgB bgA:(float)bgA
transparentBackground:(int32_t)transparentBackground
renderAnnotations:(int32_t)renderAnnotations
jpegQuality:(int32_t)jpegQuality
error:(NSError**)error;
全オプション(DPI、RGBA 背景色、透過、注釈フラグ、JPEG 品質)を指定してレンダリングします。
- (nullable POXRenderedImage*)renderPageWithOptionsEx:(NSInteger)pageIndex
dpi:(int32_t)dpi
format:(int32_t)format
bgR:(float)bgR bgG:(float)bgG bgB:(float)bgB bgA:(float)bgA
transparentBackground:(int32_t)transparentBackground
renderAnnotations:(int32_t)renderAnnotations
jpegQuality:(int32_t)jpegQuality
excludedLayers:(NSArray<NSString*>*)excludedLayers
error:(NSError**)error;
renderPageWithOptions: と同様ですが、指定した名前の OCG レイヤーをさらに抑制します。
- (nullable POXRenderedImage*)renderPageRegion:(NSInteger)pageIndex cropX:(float)cropX cropY:(float)cropY cropWidth:(float)cropWidth cropHeight:(float)cropHeight format:(int32_t)format error:(NSError**)error;
ページの矩形領域をレンダリングします(ユーザー空間ポイント、原点は左下)。
- (nullable POXRenderedImage*)renderPageFit:(NSInteger)pageIndex w:(int32_t)w h:(int32_t)h format:(int32_t)format error:(NSError**)error;
アスペクト比を保ったまま w × h ピクセル内に収まるようページをレンダリングします。
- (nullable POXRenderedImage*)renderPageRaw:(NSInteger)pageIndex dpi:(int32_t)dpi outWidth:(int32_t*)outWidth outHeight:(int32_t*)outHeight error:(NSError**)error;
ページを生の RGBA8888 バッファとしてレンダリングします。out パラメータにピクセル寸法が格納されます。
- (int32_t)estimateRenderTime:(NSInteger)pageIndex error:(NSError**)error;
ページのレンダリング時間(エンジン単位)を推定します。エラー時は -1。
OCR
- (BOOL)pageNeedsOcr:(NSInteger)pageIndex error:(NSError**)error;
ページが抽出可能なテキストを欠いており、OCR が有用かどうかを判定します。
- (nullable NSString*)ocrExtractText:(NSInteger)pageIndex engine:(nullable POXOcrEngine*)engine error:(NSError**)error;
OCR を使ってテキストを抽出します。ネイティブのみのテキストを得る場合は nil を渡します。POXOcrEngine を参照してください。
コンフォーマンス検証
- (nullable POXPdfAResults*)validatePdfA:(int32_t)level error:(NSError**)error;
- (nullable POXUaResults*)validatePdfUa:(int32_t)level error:(NSError**)error;
- (nullable POXPdfXResults*)validatePdfX:(int32_t)level error:(NSError**)error;
PDF/A、PDF/UA、PDF/X 適合性を検証します。level でサブレベルを選択します。結果ハンドルを返します。
- (BOOL)convertToPdfA:(int32_t)level error:(NSError**)error;
指定した適合レベルでドキュメントを PDF/A に変換します。
署名(ドキュメントレベル)
- (BOOL)sign:(POXCertificate*)certificate reason:(nullable NSString*)reason location:(nullable NSString*)location error:(NSError**)error;
ロード済みの証明書で基本的なデジタル署名を適用します。
- (int32_t)signatureCountWithError:(NSError**)error;
- (nullable POXSignatureInfo*)signatureAtIndex:(int32_t)index error:(NSError**)error;
- (int32_t)verifyAllSignaturesWithError:(NSError**)error;
- (int32_t)hasTimestampWithError:(NSError**)error;
- (nullable POXDss*)dssWithError:(NSError**)error;
署名数のカウント、署名情報の取得、全署名の検証、ドキュメントタイムスタンプの有無確認、Document Security Store の読み取りを行います。
ライフサイクル
- (void)close;
ネイティブハンドルを即座に解放します(冪等)。
POXPage
POXDocument に紐づくページハンドルです(0 始まり)。自身のドキュメントへの強参照を保持するため、ドキュメントより長く生存することはできません。
- (nullable NSString*)text:(NSError**)error;
- (nullable NSString*)markdown:(NSError**)error;
- (nullable NSString*)html:(NSError**)error;
- (nullable NSString*)plainText:(NSError**)error;
このページのテキスト、Markdown、HTML、またはレイアウト保持プレーンテキストを抽出します。
POXPdf
ビルダーまたはラッピングファクトリによって生成された PDF です。
コンストラクタ
+ (nullable instancetype)fromMarkdown:(NSString*)markdown error:(NSError**)error;
+ (nullable instancetype)fromHtml:(NSString*)html error:(NSError**)error;
+ (nullable instancetype)fromText:(NSString*)text error:(NSError**)error;
Markdown、HTML、プレーンテキストから PDF を生成します。
+ (nullable instancetype)fromImage:(NSString*)path error:(NSError**)error;
+ (nullable instancetype)fromImageBytes:(NSData*)data error:(NSError**)error;
画像ファイル、またはメモリ上の画像バイト列をラップした単一ページ PDF を生成します。
+ (nullable instancetype)fromHtml:(NSString*)html css:(NSString*)css fontBytes:(nullable NSData*)fontBytes error:(NSError**)error;
HTML + CSS から、単一のオプションの埋め込みフォントを使って PDF を生成します。
+ (nullable instancetype)fromHtml:(NSString*)html css:(NSString*)css families:(NSArray<NSString*>*)families fonts:(NSArray<NSData*>*)fonts error:(NSError**)error;
HTML + CSS から、マルチフォントカスケード(families/fonts の並列配列)を使って PDF を生成します。
メソッド
- (BOOL)saveToPath:(NSString*)path error:(NSError**)error;
- (nullable NSData*)toBytesWithError:(NSError**)error;
- (NSInteger)pageCountError:(NSError**)error;
- (void)close;
パスへの保存、PDF バイト列の取得、ページ数の取得(エラー時は -1)、またはネイティブハンドルの解放を行います。
POXDocumentEditor
インプレース編集のために開かれた PDF です。ステータスコードを返す操作は失敗を NSError として表面化し、is* 系のクエリは BOOL を返します。
オープン
+ (nullable instancetype)openEditor:(NSString*)path error:(NSError**)error;
+ (nullable instancetype)openFromBytes:(NSData*)data error:(NSError**)error;
パス、またはメモリ上のバイト列から編集用に PDF を開きます。
状態とメタデータ
- (NSInteger)pageCountError:(NSError**)error;
- (POXVersion)version;
- (BOOL)isModified;
- (nullable NSString*)sourcePathError:(NSError**)error;
ページ数、PDF バージョン、未保存の変更フラグ、エディタの参照元パスを取得します。
- (nullable NSString*)producerError:(NSError**)error;
- (BOOL)setProducer:(NSString*)value error:(NSError**)error;
- (nullable NSString*)creationDateError:(NSError**)error;
- (BOOL)setCreationDate:(NSString*)date error:(NSError**)error;
ドキュメントの /Info.Producer と /Info.CreationDate を取得/設定します。
ページ操作
- (BOOL)deletePage:(NSInteger)page error:(NSError**)error;
- (BOOL)movePageFrom:(NSInteger)from to:(NSInteger)to error:(NSError**)error;
ページを削除、または並べ替えます。
- (BOOL)rotatePage:(NSInteger)page byDegrees:(NSInteger)degrees error:(NSError**)error;
- (BOOL)rotateAllPages:(NSInteger)degrees error:(NSError**)error;
- (BOOL)setPageRotation:(NSInteger)page degrees:(NSInteger)degrees error:(NSError**)error;
- (NSInteger)pageRotation:(NSInteger)page error:(NSError**)error;
1 ページを回転する、全ページを回転する、絶対回転角を設定する、または現在の回転角を取得します。
- (BOOL)cropMarginsLeft:(float)left right:(float)right top:(float)top bottom:(float)bottom error:(NSError**)error;
全ページを余白でクロップします。
- (POXBbox)pageCropBox:(NSInteger)page error:(NSError**)error;
- (BOOL)setPageCropBox:(NSInteger)page box:(POXBbox)box error:(NSError**)error;
- (POXBbox)pageMediaBox:(NSInteger)page error:(NSError**)error;
- (BOOL)setPageMediaBox:(NSInteger)page box:(POXBbox)box error:(NSError**)error;
ページの CropBox と MediaBox を取得/設定します。
黒塗り(レダクション)
- (BOOL)applyAllRedactions:(NSError**)error;
- (BOOL)applyPageRedactions:(NSInteger)page error:(NSError**)error;
- (BOOL)isPageMarkedForRedaction:(NSInteger)page;
- (BOOL)unmarkPageForRedaction:(NSInteger)page error:(NSError**)error;
キューに溜めたレダクションを(全体または 1 ページ単位で)適用する、状態を問い合わせる、レダクションマークを解除します。
- (BOOL)redactionAddPage:(NSInteger)page x1:(double)x1 y1:(double)y1 x2:(double)x2 y2:(double)y2 r:(double)r g:(double)g b:(double)b error:(NSError**)error;
- (int32_t)redactionCount:(NSInteger)page error:(NSError**)error;
- (int32_t)redactionApplyScrubMetadata:(BOOL)scrubMetadata r:(double)r g:(double)g b:(double)b error:(NSError**)error;
- (int32_t)redactionScrubMetadataWithError:(NSError**)error;
ジオメトリ単位のレダクション: 塗りつぶし矩形をキューに追加、キュー済み矩形数のカウント、破壊的な適用(除去されたグリフ数を返す)、およびメタデータ/JS/埋め込みファイルの単体スクラブを行います。
領域の消去
- (BOOL)eraseRegion:(NSInteger)page x:(float)x y:(float)y w:(float)w h:(float)h error:(NSError**)error;
- (BOOL)eraseRegions:(NSInteger)page rects:(NSArray<NSValue*>*)rects error:(NSError**)error;
- (BOOL)clearEraseRegions:(NSInteger)page error:(NSError**)error;
1 つの矩形を消去する、複数の POXBbox 値による矩形を消去する、または保留中の消去をクリアします。
フラット化
- (BOOL)flattenForms:(NSError**)error;
- (BOOL)flattenFormsOnPage:(NSInteger)page error:(NSError**)error;
- (BOOL)flattenAnnotations:(NSInteger)page error:(NSError**)error;
- (BOOL)flattenAllAnnotations:(NSError**)error;
全フォーム、1 ページ上のフォーム、1 ページ上の注釈、または全注釈をフラット化します。
- (NSInteger)flattenWarningsCount;
- (nullable NSString*)flattenWarning:(NSInteger)index error:(NSError**)error;
- (BOOL)isPageMarkedForFlatten:(NSInteger)page;
- (BOOL)unmarkPageForFlatten:(NSInteger)page error:(NSError**)error;
フラット化警告と、ページ単位のフラット化マークを検査します。
フォーム
- (BOOL)setFormField:(NSString*)name value:(NSString*)value error:(NSError**)error;
- (BOOL)importFdfBytes:(NSData*)data error:(NSError**)error;
- (BOOL)importXfdfBytes:(NSData*)data error:(NSError**)error;
名前を指定してフォームフィールド値を設定し、生の FDF / XFDF バイト列をインポートします。
統合 / 変換 / 埋め込み
- (BOOL)mergeFrom:(NSString*)sourcePath error:(NSError**)error;
- (BOOL)mergeFromBytes:(NSData*)data error:(NSError**)error;
- (BOOL)convertToPdfA:(NSInteger)level error:(NSError**)error;
- (BOOL)embedFile:(NSString*)name data:(NSData*)data error:(NSError**)error;
- (nullable NSData*)extractPagesToBytes:(NSArray<NSNumber*>*)pages error:(NSError**)error;
別の PDF を統合する(パスまたはバイト列)、その場で PDF/A に変換する、埋め込みファイルを添付する、またはページのサブセットを新しいメモリ上の PDF として抽出します。
バーコード
- (BOOL)addBarcode:(POXBarcode*)barcode page:(NSInteger)page x:(float)x y:(float)y width:(float)width height:(float)height error:(NSError**)error;
生成済みのバーコードをページに配置します。POXBarcode を参照してください。
保存
- (BOOL)saveToPath:(NSString*)path error:(NSError**)error;
- (nullable NSData*)saveToBytesWithError:(NSError**)error;
- (nullable NSData*)saveToBytesCompress:(BOOL)compress garbageCollect:(BOOL)garbageCollect linearize:(BOOL)linearize error:(NSError**)error;
- (BOOL)saveEncryptedToPath:(NSString*)path userPassword:(NSString*)userPassword ownerPassword:(NSString*)ownerPassword error:(NSError**)error;
- (nullable NSData*)saveEncryptedToBytesWithUserPassword:(NSString*)userPassword ownerPassword:(NSString*)ownerPassword error:(NSError**)error;
- (void)close;
パスまたはバイト列に保存(圧縮/GC/リニアライズはオプション)、パスまたはバイト列に AES 暗号化して保存、またはネイティブハンドルを解放します。
POXDocumentBuilder
まったく新しい PDF を構築するフルーエントビルダーです。
+ (nullable instancetype)createWithError:(NSError**)error;
新しい空のドキュメントビルダーを作成します。
メタデータ
- (BOOL)setTitle:(NSString*)title error:(NSError**)error;
- (BOOL)setAuthor:(NSString*)author error:(NSError**)error;
- (BOOL)setSubject:(NSString*)subject error:(NSError**)error;
- (BOOL)setKeywords:(NSString*)keywords error:(NSError**)error;
- (BOOL)setCreator:(NSString*)creator error:(NSError**)error;
- (BOOL)onOpen:(NSString*)script error:(NSError**)error;
ドキュメントのメタデータと、ドキュメントレベルのオープン時 JavaScript アクションを設定します。
タグ付き / アクセシブル PDF
- (BOOL)taggedPdfUa1:(NSError**)error;
- (BOOL)language:(NSString*)lang error:(NSError**)error;
- (BOOL)roleMapCustom:(NSString*)custom standard:(NSString*)standard error:(NSError**)error;
PDF/UA-1 タグ付けを有効化し、ドキュメント言語を設定し、カスタム→標準のロールマップエントリを追加します。
フォント
- (BOOL)registerEmbeddedFont:(NSString*)name font:(POXEmbeddedFont*)font error:(NSError**)error;
name で TTF/OTF フォントを登録します(フォントのネイティブハンドルの所有権が移譲されます)。POXEmbeddedFont を参照してください。
ページ
- (nullable POXPageBuilder*)a4PageWithError:(NSError**)error;
- (nullable POXPageBuilder*)letterPageWithError:(NSError**)error;
- (nullable POXPageBuilder*)pageWithWidth:(float)width height:(float)height error:(NSError**)error;
A4、US-Letter、またはカスタムサイズのページを開始します。POXPageBuilder を参照してください。
ビルド / 保存
- (nullable NSData*)buildWithError:(NSError**)error;
- (BOOL)saveToPath:(NSString*)path error:(NSError**)error;
- (BOOL)saveEncryptedToPath:(NSString*)path userPassword:(NSString*)userPassword ownerPassword:(NSString*)ownerPassword error:(NSError**)error;
- (nullable NSData*)toBytesEncryptedWithUserPassword:(NSString*)userPassword ownerPassword:(NSString*)ownerPassword error:(NSError**)error;
- (void)close;
PDF バイト列を構築する、パスに保存する、パスまたはバイト列に AES 暗号化して保存する、またはネイティブハンドルを解放します。
POXPageBuilder
POXDocumentBuilder 内で構築中のページです。ほとんどの操作は BOOL を返し、親に対してチェーンできます。ページを確定するには -done: を、破棄するには -close を呼びます。
テキストレイアウト
- (BOOL)font:(NSString*)name size:(float)size error:(NSError**)error;
- (BOOL)at:(float)x y:(float)y error:(NSError**)error;
- (BOOL)text:(NSString*)text error:(NSError**)error;
- (BOOL)heading:(uint8_t)level text:(NSString*)text error:(NSError**)error;
- (BOOL)paragraph:(NSString*)text error:(NSError**)error;
- (BOOL)space:(float)points error:(NSError**)error;
- (BOOL)horizontalRule:(NSError**)error;
- (BOOL)newline:(NSError**)error;
- (BOOL)newPageSameSize:(NSError**)error;
フォント、カーソル位置を設定し、テキスト、見出し、段落、垂直スペース、水平罫線、改行、または同サイズの新しいページを出力します。
- (BOOL)textInRectX:(float)x y:(float)y w:(float)w h:(float)h text:(NSString*)text align:(int32_t)align error:(NSError**)error;
矩形内に折り返し・整列されたテキストをレイアウトします。
インラインラン
- (BOOL)inlineText:(NSString*)text error:(NSError**)error;
- (BOOL)inlineBold:(NSString*)text error:(NSError**)error;
- (BOOL)inlineItalic:(NSString*)text error:(NSError**)error;
- (BOOL)inlineColorR:(float)r g:(float)g b:(float)b text:(NSString*)text error:(NSError**)error;
インラインテキストラン(プレーン、太字、斜体、RGB カラー)を追加します。
脚注 / 段組み
- (BOOL)footnoteRefMark:(NSString*)refMark noteText:(NSString*)noteText error:(NSError**)error;
- (BOOL)columnsCount:(uint32_t)columnCount gapPt:(float)gapPt text:(NSString*)text error:(NSError**)error;
脚注参照符+脚注テキストを追加する、またはテキストを複数段組みに流し込みます。
リンクとアクション
- (BOOL)linkUrl:(NSString*)url error:(NSError**)error;
- (BOOL)linkPage:(NSInteger)page error:(NSError**)error;
- (BOOL)linkNamed:(NSString*)destination error:(NSError**)error;
- (BOOL)linkJavascript:(NSString*)script error:(NSError**)error;
- (BOOL)onOpen:(NSString*)script error:(NSError**)error;
- (BOOL)onClose:(NSString*)script error:(NSError**)error;
URL/ページ/名前付き宛先/JavaScript リンクと、ページのオープン/クローズアクションを追加します。
フォームフィールドの JS アクション
- (BOOL)fieldKeystroke:(NSString*)script error:(NSError**)error;
- (BOOL)fieldFormat:(NSString*)script error:(NSError**)error;
- (BOOL)fieldValidate:(NSString*)script error:(NSError**)error;
- (BOOL)fieldCalculate:(NSString*)script error:(NSError**)error;
直近に追加したフィールドに、キーストローク/フォーマット/検証/計算の JavaScript をアタッチします。
テキスト装飾
- (BOOL)highlightR:(float)r g:(float)g b:(float)b error:(NSError**)error;
- (BOOL)underlineR:(float)r g:(float)g b:(float)b error:(NSError**)error;
- (BOOL)strikeoutR:(float)r g:(float)g b:(float)b error:(NSError**)error;
- (BOOL)squigglyR:(float)r g:(float)g b:(float)b error:(NSError**)error;
直前のテキスト要素に、ハイライト、下線、取り消し線、波線の装飾を適用します。
注釈
- (BOOL)stickyNote:(NSString*)text error:(NSError**)error;
- (BOOL)stickyNoteAt:(float)x y:(float)y text:(NSString*)text error:(NSError**)error;
- (BOOL)watermark:(NSString*)text error:(NSError**)error;
- (BOOL)watermarkConfidential:(NSError**)error;
- (BOOL)watermarkDraft:(NSError**)error;
- (BOOL)stamp:(NSString*)typeName error:(NSError**)error;
- (BOOL)freetextAtX:(float)x y:(float)y w:(float)w h:(float)h text:(NSString*)text error:(NSError**)error;
付箋、ウォーターマーク(カスタム/CONFIDENTIAL/DRAFT)、名前付きスタンプ、フリーテキスト注釈を追加します。
フォームフィールド
- (BOOL)textFieldName:(NSString*)name x:(float)x y:(float)y w:(float)w h:(float)h defaultValue:(nullable NSString*)defaultValue error:(NSError**)error;
- (BOOL)checkboxName:(NSString*)name x:(float)x y:(float)y w:(float)w h:(float)h checked:(BOOL)checked error:(NSError**)error;
- (BOOL)comboBoxName:(NSString*)name x:(float)x y:(float)y w:(float)w h:(float)h options:(NSArray<NSString*>*)options selected:(nullable NSString*)selected error:(NSError**)error;
- (BOOL)radioGroupName:(NSString*)name values:(NSArray<NSString*>*)values xs:(NSArray<NSNumber*>*)xs ys:(NSArray<NSNumber*>*)ys ws:(NSArray<NSNumber*>*)ws hs:(NSArray<NSNumber*>*)hs selected:(nullable NSString*)selected error:(NSError**)error;
- (BOOL)pushButtonName:(NSString*)name x:(float)x y:(float)y w:(float)w h:(float)h caption:(NSString*)caption error:(NSError**)error;
- (BOOL)signatureFieldName:(NSString*)name x:(float)x y:(float)y w:(float)w h:(float)h error:(NSError**)error;
テキストフィールド、チェックボックス、コンボボックス、ラジオグループ、プッシュボタン、署名フィールドを追加します。
バーコード
- (BOOL)barcode1d:(int32_t)barcodeType data:(NSString*)data x:(float)x y:(float)y w:(float)w h:(float)h error:(NSError**)error;
- (BOOL)barcodeQrData:(NSString*)data x:(float)x y:(float)y size:(float)size error:(NSError**)error;
1D バーコード、または QR コードを直接ページに描画します。
画像
- (BOOL)image:(NSData*)bytes x:(float)x y:(float)y w:(float)w h:(float)h error:(NSError**)error;
- (BOOL)imageWithAlt:(NSData*)bytes x:(float)x y:(float)y w:(float)w h:(float)h altText:(NSString*)altText error:(NSError**)error;
- (BOOL)imageArtifact:(NSData*)bytes x:(float)x y:(float)y w:(float)w h:(float)h error:(NSError**)error;
画像、アクセシビリティ用の代替テキスト付き画像、またはアーティファクト(装飾用)画像を配置します。
ベクターグラフィックス
- (BOOL)rectX:(float)x y:(float)y w:(float)w h:(float)h error:(NSError**)error;
- (BOOL)filledRectX:(float)x y:(float)y w:(float)w h:(float)h r:(float)r g:(float)g b:(float)b error:(NSError**)error;
- (BOOL)lineX1:(float)x1 y1:(float)y1 x2:(float)x2 y2:(float)y2 error:(NSError**)error;
- (BOOL)strokeRectX:(float)x y:(float)y w:(float)w h:(float)h width:(float)width r:(float)r g:(float)g b:(float)b error:(NSError**)error;
- (BOOL)strokeLineX1:(float)x1 y1:(float)y1 x2:(float)x2 y2:(float)y2 width:(float)width r:(float)r g:(float)g b:(float)b error:(NSError**)error;
- (BOOL)strokeRectDashedX:(float)x y:(float)y w:(float)w h:(float)h width:(float)width r:(float)r g:(float)g b:(float)b dashArray:(NSArray<NSNumber*>*)dashArray phase:(float)phase error:(NSError**)error;
- (BOOL)strokeLineDashedX1:(float)x1 y1:(float)y1 x2:(float)x2 y2:(float)y2 width:(float)width r:(float)r g:(float)g b:(float)b dashArray:(NSArray<NSNumber*>*)dashArray phase:(float)phase error:(NSError**)error;
矩形(アウトライン/塗りつぶし/ストローク/破線)と線(プレーン/ストローク/破線)を描画します。
テーブル
- (BOOL)tableColumns:(NSArray<NSNumber*>*)widths aligns:(NSArray<NSNumber*>*)aligns rows:(NSArray<NSArray<NSString*>*>*)rows hasHeader:(BOOL)hasHeader error:(NSError**)error;
列幅、整列、行データを指定した完全な表を描画します。
ストリーミングテーブル
- (BOOL)streamingTableBeginHeaders:(NSArray<NSString*>*)headers widths:(NSArray<NSNumber*>*)widths aligns:(NSArray<NSNumber*>*)aligns repeatHeader:(BOOL)repeatHeader error:(NSError**)error;
- (BOOL)streamingTableBeginV2Headers:(NSArray<NSString*>*)headers widths:(NSArray<NSNumber*>*)widths aligns:(NSArray<NSNumber*>*)aligns repeatHeader:(BOOL)repeatHeader mode:(int32_t)mode sampleRows:(NSInteger)sampleRows minColWidthPt:(float)minColWidthPt maxColWidthPt:(float)maxColWidthPt maxRowspan:(NSInteger)maxRowspan error:(NSError**)error;
- (BOOL)streamingTableSetBatchSize:(NSInteger)batchSize error:(NSError**)error;
- (NSInteger)streamingTablePendingRowCount;
- (NSInteger)streamingTableBatchCount;
- (BOOL)streamingTableFlush:(NSError**)error;
- (BOOL)streamingTablePushRow:(NSArray<NSString*>*)cells error:(NSError**)error;
- (BOOL)streamingTablePushRowV2:(NSArray<NSString*>*)cells rowspans:(nullable NSArray<NSNumber*>*)rowspans error:(NSError**)error;
- (BOOL)streamingTableFinish:(NSError**)error;
一度にメモリ上に展開するには大きすぎる表のために、ストリーミングテーブル(基本版または自動レイアウトの V2 版)を開始し、バッチサイズを調整し、行をプッシュし(任意で rowspan 指定可)、フラッシュし、終了します。
コミット
- (BOOL)done:(NSError**)error;
- (void)close;
ページを親ビルダーにコミットする、または破棄します。
POXEmbeddedFont
埋め込み用にロードされた TTF/OTF フォントです。所有権は、registerEmbeddedFont:font: の成功時にビルダーへ移譲されます。
+ (nullable instancetype)fromPath:(NSString*)path error:(NSError**)error;
+ (nullable instancetype)fromBytes:(NSData*)data name:(nullable NSString*)name error:(NSError**)error;
- (void)close;
パス、またはバイト列からフォントをロードします(name には nil を渡して PostScript 名を使うこともできます)。あるいはネイティブハンドルを解放します。
POXBarcode
生成されたバーコード/QR コード画像です。
+ (nullable instancetype)generateQrCode:(NSString*)data errorCorrection:(int32_t)errorCorrection sizePx:(int32_t)sizePx error:(NSError**)error;
+ (nullable instancetype)generateBarcode:(NSString*)data format:(int32_t)format sizePx:(int32_t)sizePx error:(NSError**)error;
誤り訂正レベルを指定して QR コードを生成する、または指定した format の 1D/2D バーコードを生成します。
- (nullable NSString*)dataError:(NSError**)error;
- (int32_t)formatError:(NSError**)error;
- (float)confidenceError:(NSError**)error;
- (nullable NSData*)imagePngWithSizePx:(int32_t)sizePx error:(NSError**)error;
- (nullable NSString*)svgWithSizePx:(int32_t)sizePx error:(NSError**)error;
- (void)close;
ペイロード、フォーマットコード、デコード信頼度を取得します。PNG バイト列または SVG 文字列としてエンコードします。あるいはネイティブハンドルを解放します。
POXOcrEngine
検出/認識/辞書のモデルファイルに支えられた OCR エンジンです。
+ (nullable instancetype)createWithDetModelPath:(NSString*)detModelPath recModelPath:(NSString*)recModelPath dictPath:(NSString*)dictPath error:(NSError**)error;
- (nullable void*)POX_engineHandle;
- (void)close;
モデル+辞書パスからエンジンを作成し、ocrExtractText:engine:error: 用に生のエンジンハンドルを公開します。あるいはネイティブハンドルを解放します。
POXElementList
ページのレイアウト要素リストです。
- (int32_t)count;
- (nullable NSString*)typeAtIndex:(int32_t)index error:(NSError**)error;
- (nullable NSString*)textAtIndex:(int32_t)index error:(NSError**)error;
- (POXBbox)rectAtIndex:(int32_t)index error:(NSError**)error;
- (nullable NSString*)toJsonWithError:(NSError**)error;
- (void)close;
要素数をカウントします。各要素の型文字列、テキスト、バウンディングボックスを読み取ります。リスト全体を JSON にシリアライズします。あるいはネイティブハンドルを解放します。
POXRenderer
ドキュメントから独立したスタンドアロンのレンダラーハンドルです。
+ (nullable instancetype)createWithDpi:(int32_t)dpi format:(int32_t)format quality:(int32_t)quality antiAlias:(BOOL)antiAlias error:(NSError**)error;
- (void)close;
設定済みのレンダラー(DPI、フォーマット、品質、アンチエイリアス)を作成、またはネイティブハンドルを解放します。
デジタル署名と PKI
POXCertificate
ロード済みの署名/検証用証明書です。
+ (nullable instancetype)loadFromBytes:(NSData*)data password:(NSString*)password error:(NSError**)error;
+ (nullable instancetype)loadFromPemCert:(NSString*)certPem keyPem:(NSString*)keyPem error:(NSError**)error;
PKCS#12 バイト列+パスワード、または PEM 証明書+秘密鍵から認証情報をロードします。
- (nullable NSString*)subjectError:(NSError**)error;
- (nullable NSString*)issuerError:(NSError**)error;
- (nullable NSString*)serialError:(NSError**)error;
- (BOOL)validityNotBefore:(int64_t*)notBefore notAfter:(int64_t*)notAfter error:(NSError**)error;
- (int32_t)isValidError:(NSError**)error;
- (void)close;
サブジェクト/発行者/シリアル番号を読み取り、有効期間(Unix エポック秒)を取得し、現在の有効性(1/0/-1)を確認します。あるいはネイティブハンドルを解放します。
POXSignatureInfo
ドキュメントから読み取った署名に関する情報です。
- (nullable NSString*)signerNameError:(NSError**)error;
- (nullable NSString*)signingReasonError:(NSError**)error;
- (nullable NSString*)signingLocationError:(NSError**)error;
- (int64_t)signingTimeError:(NSError**)error;
- (nullable POXCertificate*)certificateError:(NSError**)error;
- (int32_t)padesLevelError:(NSError**)error;
- (BOOL)hasTimestampError:(NSError**)error;
- (nullable POXTimestamp*)timestampError:(NSError**)error;
- (BOOL)addTimestamp:(POXTimestamp*)timestamp error:(NSError**)error;
- (int32_t)verifyError:(NSError**)error;
- (int32_t)verifyDetached:(NSData*)pdf error:(NSError**)error;
- (void)close;
署名者/理由/場所/時刻、署名者証明書、PAdES ベースラインレベル、タイムスタンプを読み取ります。タイムスタンプを付加します。暗号学的検証(verifyError:)、または PDF の全バイト列に対するエンドツーエンド検証(verifyDetached:)を行います。
POXTimestamp
パース済みの RFC 3161 タイムスタンプトークンです。
+ (nullable instancetype)parse:(NSData*)data error:(NSError**)error;
- (nullable NSData*)tokenError:(NSError**)error;
- (nullable NSData*)messageImprintError:(NSError**)error;
- (int64_t)timeError:(NSError**)error;
- (nullable NSString*)serialError:(NSError**)error;
- (nullable NSString*)tsaNameError:(NSError**)error;
- (nullable NSString*)policyOidError:(NSError**)error;
- (int32_t)hashAlgorithmError:(NSError**)error;
- (BOOL)verifyError:(NSError**)error;
- (void)close;
DER トークンをパースします。生のトークンバイト列、メッセージインプリント、時刻、シリアル番号、TSA 名、ポリシー OID、ハッシュアルゴリズムを読み取ります。検証します。あるいはネイティブハンドルを解放します。
POXTsaClient
TSA(RFC 3161)クライアントです。
+ (nullable instancetype)createWithUrl:(NSString*)url username:(nullable NSString*)username password:(nullable NSString*)password timeout:(int32_t)timeout hashAlgo:(int32_t)hashAlgo useNonce:(BOOL)useNonce certReq:(BOOL)certReq error:(NSError**)error;
- (nullable POXTimestamp*)requestTimestamp:(NSData*)data error:(NSError**)error;
- (nullable POXTimestamp*)requestTimestampHash:(NSData*)hash hashAlgo:(int32_t)hashAlgo error:(NSError**)error;
- (void)close;
クライアントを作成し、データまたは事前計算済みハッシュに対するタイムスタンプをリクエストします。あるいはネイティブハンドルを解放します。
POXDss
ドキュメントから読み取った Document Security Store です。
- (int32_t)certCount;
- (int32_t)crlCount;
- (int32_t)ocspCount;
- (int32_t)vriCount;
- (nullable NSData*)certAtIndex:(int32_t)index error:(NSError**)error;
- (nullable NSData*)crlAtIndex:(int32_t)index error:(NSError**)error;
- (nullable NSData*)ocspAtIndex:(int32_t)index error:(NSError**)error;
- (void)close;
DSS 内の DER 証明書、CRL、OCSP レスポンスをカウント・読み取りします(VRI カウントも含む)。
POXSigning
トップレベルの署名エントリポイントと、ライブラリのログ設定です(クラスメソッド)。
+ (nullable NSData*)signBytes:(NSData*)pdf certificate:(POXCertificate*)certificate reason:(nullable NSString*)reason location:(nullable NSString*)location error:(NSError**)error;
基本(非 PAdES)署名で生の PDF バイト列に署名します。
+ (nullable NSData*)signBytesPades:(NSData*)pdf certificate:(POXCertificate*)certificate level:(int32_t)level tsaUrl:(nullable NSString*)tsaUrl reason:(nullable NSString*)reason location:(nullable NSString*)location certs:(NSArray<NSData*>*)certs crls:(NSArray<NSData*>*)crls ocsps:(NSArray<NSData*>*)ocsps error:(NSError**)error;
失効情報付きの PAdES ベースラインレベルで、生の PDF バイト列に署名します。
+ (nullable NSData*)signBytesPadesOpts:(NSData*)pdf options:(POXPadesSignOptions*)options error:(NSError**)error;
POXPadesSignOptions の設定オブジェクトを使って、生の PDF バイト列に署名します。
+ (void)setLogLevel:(int32_t)level;
+ (int32_t)logLevel;
グローバルなログレベルを設定/取得します(0=Off … 5=Trace)。
POXPadesSignOptions
PAdES 署名オプション(構造体ポインタ版)です。すべてのフィールドがプロパティです。
| プロパティ | 型 | 説明 |
|---|---|---|
certificate |
POXCertificate* |
署名用証明書 |
level |
int32_t |
PAdES ベースライン(0=B-B、1=B-T、2=B-LT) |
tsaUrl |
NSString* |
TSA の URL(nullable) |
reason |
NSString* |
署名理由(nullable) |
location |
NSString* |
署名場所(nullable) |
certs / crls / ocsps |
NSArray<NSData*>* |
DER エンコードされた失効情報(B-LT 用) |
コンフォーマンス結果型
POXPdfAResults
- (BOOL)isCompliantError:(NSError**)error;
- (int32_t)errorCount;
- (int32_t)warningCount;
- (NSArray<NSString*>*)errors;
- (void)close;
PDF/A 検証結果: 準拠フラグ、エラー/警告件数、エラーメッセージ。
POXUaResults
- (BOOL)isAccessibleError:(NSError**)error;
- (int32_t)errorCount;
- (int32_t)warningCount;
- (NSArray<NSString*>*)errors;
- (NSArray<NSString*>*)warnings;
- (BOOL)stats:(POXUaStats*)stats error:(NSError**)error;
- (void)close;
PDF/UA アクセシビリティ結果: アクセシビリティフラグ、エラー/警告件数とメッセージ、要素数の POXUaStats 構造体。
POXPdfXResults
- (BOOL)isCompliantError:(NSError**)error;
- (int32_t)errorCount;
- (NSArray<NSString*>*)errors;
- (void)close;
PDF/X 検証結果: 準拠フラグ、エラー件数、エラーメッセージ。
トップレベルユーティリティ
POXTools
+ (nullable NSData*)merge:(NSArray<NSString*>*)paths error:(NSError**)error;
+ (nullable NSData*)addTimestamp:(NSData*)pdfData sigIndex:(int32_t)sigIndex tsaUrl:(NSString*)tsaUrl error:(NSError**)error;
指定したパスの PDF を 1 つのメモリ上の PDF に統合します。署名に RFC 3161 のドキュメントタイムスタンプを追加します。
POXCrypto
+ (nullable NSString*)activeProviderWithError:(NSError**)error;
+ (nullable NSString*)cbomWithError:(NSError**)error;
+ (nullable NSString*)inventoryWithError:(NSError**)error;
+ (nullable NSString*)policyWithError:(NSError**)error;
+ (int32_t)fipsAvailable;
+ (int32_t)useFips;
+ (int32_t)setPolicy:(NSString*)spec;
暗号プロバイダの内省(アクティブなプロバイダ、CycloneDX CBOM、インベントリ、ポリシー)と FIPS ポリシー制御です。
POXModels
+ (nullable NSString*)manifestWithError:(NSError**)error;
+ (int32_t)prefetchAvailable;
+ (nullable NSString*)prefetchModels:(NSString*)languagesCsv error:(NSError**)error;
同梱されているモデルマニフェストを読み取り、プリフェッチの可否を確認し、指定した言語コードの ML モデルをプリフェッチします。
POXConfig
+ (int64_t)setMaxOpsPerStream:(int64_t)limit;
+ (int32_t)setPreserveUnmappedGlyphs:(int32_t)preserve;
プロセス全体に効くノブです: コンテンツストリームごとにデコードするオペレータ数の上限、抽出テキストでの未マップグリフ保持の切り替え。いずれも変更前の値を返します。
値の型
以下の読み取り専用 NSObject 型は、上記の抽出メソッドから返されます。
POXChar
| プロパティ | 型 | 説明 |
|---|---|---|
character |
uint32_t |
Unicode コードポイント |
bbox |
POXBbox |
バウンディングボックス |
fontName |
NSString* |
PostScript フォント名 |
fontSize |
float |
フォントサイズ(ポイント) |
POXWord
| プロパティ | 型 | 説明 |
|---|---|---|
text |
NSString* |
単語のテキスト |
bbox |
POXBbox |
バウンディングボックス |
fontName |
NSString* |
PostScript フォント名 |
fontSize |
float |
フォントサイズ(ポイント) |
bold |
BOOL |
太字かどうか |
POXTextLine
| プロパティ | 型 | 説明 |
|---|---|---|
text |
NSString* |
行のテキスト |
bbox |
POXBbox |
バウンディングボックス |
wordCount |
NSInteger |
行内の単語数 |
- (nullable NSString*)cellTextAtRow:(NSInteger)row col:(NSInteger)col; // POXTable
POXTable
| プロパティ / メソッド | 型 | 説明 |
|---|---|---|
rowCount |
NSInteger |
行数 |
colCount |
NSInteger |
列数 |
hasHeader |
BOOL |
ヘッダー行を持つかどうか |
cellTextAtRow:col: |
NSString* |
(row, col) のセルテキスト(範囲外の場合は nil) |
POXFont
| プロパティ | 型 | 説明 |
|---|---|---|
name |
NSString* |
フォント名 |
type |
NSString* |
フォント種別(例: TrueType、Type1) |
encoding |
NSString* |
フォントエンコーディング |
embedded |
BOOL |
埋め込みフォントかどうか |
subset |
BOOL |
サブセット化されているかどうか |
size |
float |
公称サイズ(ポイント、不明な場合は 0) |
POXImage
| プロパティ | 型 | 説明 |
|---|---|---|
width / height |
NSInteger |
ピクセル寸法 |
bitsPerComponent |
NSInteger |
1 色成分あたりのビット数 |
format |
NSString* |
画像フォーマット |
colorspace |
NSString* |
カラースペース |
data |
NSData* |
エンコード済み画像バイト列 |
POXAnnotation
| プロパティ | 型 | 説明 |
|---|---|---|
type / subtype |
NSString* |
注釈の型とサブタイプ |
content / author |
NSString* |
内容と作成者 |
rect |
POXBbox |
注釈の矩形 |
borderWidth |
float |
枠線幅 |
color |
uint32_t |
0xAARRGGBB 形式でパックされた色(存在しない場合は 0) |
creationDate / modificationDate |
int64_t |
Unix エポック秒(存在しない場合は 0) |
hidden / markedDeleted / printable / readOnly |
BOOL |
各種フラグ |
linkUri |
NSString* |
Link 注釈のターゲット URI(nullable) |
iconName |
NSString* |
Text/note 注釈のアイコン名(nullable) |
quadPoints |
NSArray<NSArray<NSNumber*>*>* |
Highlight 注釈のクワッドポイント |
POXFormField
| プロパティ | 型 | 説明 |
|---|---|---|
name |
NSString* |
フィールド名 |
value |
NSString* |
現在の値 |
type |
NSString* |
フィールド種別 |
readonly |
BOOL |
読み取り専用かどうか |
required |
BOOL |
必須かどうか |
POXPath
| プロパティ | 型 | 説明 |
|---|---|---|
bbox |
POXBbox |
バウンディングボックス |
strokeWidth |
float |
ストローク幅 |
hasStroke / hasFill |
BOOL |
ストローク/塗りつぶしの有無 |
operationCount |
NSInteger |
パス操作の数 |
POXSearchResult
| プロパティ | 型 | 説明 |
|---|---|---|
text |
NSString* |
マッチしたテキスト |
page |
NSInteger |
0 始まりのページインデックス |
bbox |
POXBbox |
マッチのバウンディングボックス |
POXRenderedImage
| プロパティ / メソッド | 型 | 説明 |
|---|---|---|
width / height |
NSInteger |
ピクセル寸法 |
data |
NSData* |
エンコード済み画像バイト列(例: PNG) |
saveToPath:error: |
BOOL |
レンダリング済み画像をファイルに書き出す |
close |
void |
ネイティブハンドルを解放する |
エラー処理
失敗した操作は nil / NO / 負のステータスを返し、NSError** の out パラメータに POXErrorDomain のエラーを格納します。
NSError* error = nil;
POXDocument* doc = [POXDocument openPath:@"input.pdf" error:&error];
if (!doc) {
NSLog(@"Open failed: %@", error.localizedDescription);
return;
}
NSString* text = [doc extractText:0 error:&error];
if (!text) {
NSLog(@"Extraction failed: %@", error.localizedDescription);
}
[doc close];
完全な例
#import <PdfOxide/POXPdfOxide.h>
NSError* error = nil;
// --- Extraction ---
POXDocument* doc = [POXDocument openPath:@"input.pdf" error:&error];
NSInteger pages = [doc pageCountError:&error];
for (NSInteger i = 0; i < pages; i++) {
NSString* md = [doc toMarkdown:i error:&error];
NSLog(@"Page %ld: %lu chars", (long)i, (unsigned long)md.length);
}
// Render page 0 to PNG
POXRenderedImage* img = [doc renderPage:0 format:0 error:&error];
[img saveToPath:@"page0.png" error:&error];
[doc close];
// --- Creation ---
POXDocumentBuilder* builder = [POXDocumentBuilder createWithError:&error];
[builder setTitle:@"Report" error:&error];
POXPageBuilder* page = [builder letterPageWithError:&error];
[page heading:1 text:@"Report" error:&error];
[page paragraph:@"Generated by PDF Oxide." error:&error];
[page done:&error];
[builder saveToPath:@"report.pdf" error:&error];
// --- Editing ---
POXDocumentEditor* editor = [POXDocumentEditor openEditor:@"document.pdf" error:&error];
[editor rotateAllPages:90 error:&error];
[editor setFormField:@"name" value:@"John Doe" error:&error];
[editor saveToPath:@"output.pdf" error:&error];
[editor close];
他の言語のバインディング
PDF Oxide はあらゆる主要なエコシステム向けにネイティブバインディングを提供しています: Rust, Python, Node.js, WASM, C#, Golang, Java, PHP, Ruby, C++, Swift, Kotlin, Dart, R, Julia, Zig, Scala, Clojure, Elixir。
次のステップ
- 型と列挙型 — すべての共有型と列挙型
- Page API リファレンス — バインディング間で一貫したページ単位の反復処理
- Objective-C 入門 — チュートリアル