Skip to content

Objective-C-API-Referenz

PDF Oxide liefert idiomatische Objective-C-Bindings (das PdfOxide-Framework / der PdfOxide-CocoaPod), die auf der C-ABI aufsetzen. NSObject-Wrapper besitzen ihre nativen Handles und geben sie in -dealloc frei (oder vorzeitig über -close); zurückgegebene C-Strings und -Buffer werden in NSString/NSData kopiert, und Status-Codes außer „Erfolg" erscheinen als NSError in der POXErrorDomain. Jede öffentliche Methode wird eins-zu-eins durch POXApiCoverageTests abgedeckt.

# Podfile
pod 'PdfOxide', '~> 0.3.69'
#import <PdfOxide/POXPdfOxide.h>

Zur Rust-API siehe die Rust-API-Referenz. Zur Python-API siehe die Python-API-Referenz. Zur JavaScript-API siehe die Node.js-API-Referenz oder die WASM-API-Referenz.

Alle Seitenindizes sind nullbasiert. Bounding-Boxes verwenden POXBbox { float x; float y; float width; float height; } in PDF-Benutzerraum-Punkten; die PDF-Version wird als POXVersion { uint8_t major; uint8_t minor; } gemeldet.


POXDocument

Die zentrale Klasse zum Öffnen, Extrahieren, Rendern und Inspizieren eines PDF.

Öffnen

+ (nullable instancetype)openPath:(NSString*)path error:(NSError**)error;

Ein PDF aus einem Dateisystempfad öffnen.

+ (nullable instancetype)openFromBytes:(NSData*)data error:(NSError**)error;

Ein PDF aus Bytes im Arbeitsspeicher öffnen.

+ (nullable instancetype)openWithPassword:(NSString*)path password:(NSString*)password error:(NSError**)error;

Ein passwortgeschütztes PDF in einem Schritt öffnen.

+ (nullable instancetype)openFromDocxBytes:(NSData*)data error:(NSError**)error;
+ (nullable instancetype)openFromPptxBytes:(NSData*)data error:(NSError**)error;
+ (nullable instancetype)openFromXlsxBytes:(NSData*)data error:(NSError**)error;

In-Memory-Bytes eines Office-Dokuments (Word/PowerPoint/Excel) in ein geöffnetes PDF-Dokument umwandeln.

- (BOOL)authenticate:(NSString*)password error:(NSError**)error;

Ein verschlüsseltes Dokument nach dem Öffnen authentifizieren; liefert bei Erfolg YES, bei falschem Passwort NO.

Office-Export

- (nullable NSData*)toDocxWithError:(NSError**)error;
- (nullable NSData*)toPptxWithError:(NSError**)error;
- (nullable NSData*)toXlsxWithError:(NSError**)error;

Das Dokument als Word-/PowerPoint-/Excel-Bytes exportieren.

Dokumentinformationen

- (NSInteger)pageCountError:(NSError**)error;

Anzahl der Seiten, oder -1 bei einem Fehler.

- (POXVersion)version;

PDF-Version als POXVersion-Struct.

- (BOOL)isEncrypted;
- (BOOL)hasStructureTree;
- (BOOL)hasXfa;

Abfragen für Verschlüsselung, Tagged-PDF-Strukturbaum und das Vorhandensein eines XFA-Formulars.

Text & Konvertierung

- (nullable NSString*)extractText:(NSInteger)page error:(NSError**)error;

Reinen Text aus einer einzelnen Seite extrahieren.

- (nullable NSString*)toPlainText:(NSInteger)page error:(NSError**)error;
- (nullable NSString*)toMarkdown:(NSInteger)page error:(NSError**)error;
- (nullable NSString*)toHtml:(NSInteger)page error:(NSError**)error;

Eine einzelne Seite in reinen Text, Markdown oder HTML umwandeln.

- (nullable NSString*)toPlainTextAllWithError:(NSError**)error;
- (nullable NSString*)toMarkdownAllWithError:(NSError**)error;
- (nullable NSString*)toHtmlAllWithError:(NSError**)error;

Alle Seiten in reinen Text, Markdown oder HTML umwandeln.

- (nullable NSString*)extractStructuredJson:(NSInteger)page error:(NSError**)error;

Eine Seite als strukturiertes JSON extrahieren (Spans, Geometrie, Schriften).

Element-Extraktion

- (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;

Zeichen, Wörter, Textzeilen und Tabellen mit Positionsmetadaten extrahieren.

- (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;

Eingebettete Schriften, eingebettete Bilder, Seitenannotationen und Vektorpfade extrahieren.

Suche

- (nullable NSArray<POXSearchResult*>*)search:(NSInteger)page term:(NSString*)term caseSensitive:(BOOL)caseSensitive error:(NSError**)error;

Nach term auf einer einzelnen Seite suchen.

- (nullable NSArray<POXSearchResult*>*)searchAll:(NSString*)term caseSensitive:(BOOL)caseSensitive error:(NSError**)error;

Nach term im gesamten Dokument suchen.

Extraktion innerhalb eines Rechtecks

- (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;

Text, Wörter, Zeilen, Tabellen oder Bilder extrahieren, beschränkt auf einen rechteckigen Bereich (Benutzerraum-Punkte).

Auto-Extraktion & Klassifizierung

- (nullable NSString*)extractTextAuto:(NSInteger)page error:(NSError**)error;

Native vs. OCR-Textextraktion für eine Seite automatisch auswählen.

- (nullable NSString*)extractAllTextWithError:(NSError**)error;

Text aus dem gesamten Dokument extrahieren.

- (nullable NSString*)extractPageAuto:(NSInteger)page optionsJson:(nullable NSString*)optionsJson error:(NSError**)error;

Eine Seite mit einem JSON-Optionsblob automatisch extrahieren.

- (nullable NSString*)classifyPage:(NSInteger)page error:(NSError**)error;
- (nullable NSString*)classifyDocumentWithError:(NSError**)error;

Eine einzelne Seite oder das gesamte Dokument klassifizieren (liefert ein Klassifizierungs-JSON zurück).

Entfernen von Kopf-/Fußzeile/Artefakten

- (int32_t)eraseHeader:(NSInteger)page error:(NSError**)error;
- (int32_t)eraseFooter:(NSInteger)page error:(NSError**)error;
- (int32_t)eraseArtifacts:(NSInteger)page error:(NSError**)error;

Kopfzeile, Fußzeile oder Artefakte auf einer einzelnen Seite entfernen; liefert die Anzahl der entfernten Elemente zurück.

- (int32_t)removeHeaders:(float)threshold error:(NSError**)error;
- (int32_t)removeFooters:(float)threshold error:(NSError**)error;
- (int32_t)removeArtifacts:(float)threshold error:(NSError**)error;

Wiederkehrende Kopfzeilen, Fußzeilen oder Artefakte dokumentweit oberhalb eines Ähnlichkeits-threshold entfernen.

Formulare

- (nullable NSArray<POXFormField*>*)formFieldsWithError:(NSError**)error;

Alle AcroForm-Felder abrufen.

- (nullable NSData*)exportFormDataToBytes:(int32_t)formatType error:(NSError**)error;

Formulardaten als FDF-/XFDF-Bytes exportieren (formatType wählt das Format).

- (BOOL)importFormDataFromPath:(NSString*)dataPath error:(NSError**)error;
- (BOOL)importFormFromFile:(NSString*)filename error:(NSError**)error;

Formulardaten aus einer FDF-/XFDF-Datei importieren.

Struktur & Metadaten

- (nullable NSString*)outlineWithError:(NSError**)error;
- (nullable NSString*)pageLabelsWithError:(NSError**)error;
- (nullable NSString*)xmpMetadataWithError:(NSError**)error;

Die Dokumentgliederung (Lesezeichen), Seitenbeschriftungsbereiche und XMP-Metadaten als JSON abrufen.

- (nullable NSData*)sourceBytesWithError:(NSError**)error;

Die rohen Quell-PDF-Bytes abrufen.

- (nullable NSString*)planSplitByBookmarks:(nullable NSString*)optionsJson error:(NSError**)error;

Einen Aufteilungsplan berechnen, der Seiten nach Top-Level-Lesezeichen gruppiert (liefert JSON zurück).

Annotationen / Schriften / Suche als 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-serialisierte Varianten von Seitenannotationen, eingebetteten Schriften und seitenweiser Suche.

Seitengeometrie & Elemente

- (float)pageWidth:(NSInteger)pageIndex error:(NSError**)error;
- (float)pageHeight:(NSInteger)pageIndex error:(NSError**)error;
- (int32_t)pageRotation:(NSInteger)pageIndex error:(NSError**)error;

Seitenbreite, -höhe und -rotation in Grad (-1 bei einem Fehler).

- (nullable POXElementList*)pageElements:(NSInteger)pageIndex error:(NSError**)error;

Die Layout-Elementliste einer Seite abrufen. Siehe POXElementList.

- (POXPage*)pageAtIndex:(NSInteger)index;

Ein an dieses Dokument gebundenes Seiten-Handle abrufen. Siehe POXPage.

Rendering

- (nullable POXRenderedImage*)renderPage:(NSInteger)pageIndex format:(int32_t)format error:(NSError**)error;

Eine Seite zu einem Bild rendern (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;

Eine Seite mit einem Zoomfaktor rendern, oder als Miniaturansicht mit einer Ziel-size für die längste Kante.

- (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;

Mit der vollständigen Optionsoberfläche rendern (DPI, RGBA-Hintergrund, Transparenz, Annotations-Flag, JPEG-Qualität).

- (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;

Wie renderPageWithOptions:, unterdrückt aber zusätzlich die benannten OCG-Layer.

- (nullable POXRenderedImage*)renderPageRegion:(NSInteger)pageIndex cropX:(float)cropX cropY:(float)cropY cropWidth:(float)cropWidth cropHeight:(float)cropHeight format:(int32_t)format error:(NSError**)error;

Einen rechteckigen Bereich einer Seite rendern (Benutzerraum-Punkte, Ursprung unten links).

- (nullable POXRenderedImage*)renderPageFit:(NSInteger)pageIndex w:(int32_t)w h:(int32_t)h format:(int32_t)format error:(NSError**)error;

Eine Seite unter Beibehaltung des Seitenverhältnisses so rendern, dass sie in w × h Pixel passt.

- (nullable POXRenderedImage*)renderPageRaw:(NSInteger)pageIndex dpi:(int32_t)dpi outWidth:(int32_t*)outWidth outHeight:(int32_t*)outHeight error:(NSError**)error;

Eine Seite in einen rohen RGBA8888-Buffer rendern; die Out-Parameter erhalten die Pixelmaße.

- (int32_t)estimateRenderTime:(NSInteger)pageIndex error:(NSError**)error;

Die Renderzeit (Engine-Einheiten) für eine Seite schätzen, oder -1 bei einem Fehler.

OCR

- (BOOL)pageNeedsOcr:(NSInteger)pageIndex error:(NSError**)error;

Ob einer Seite extrahierbarer Text fehlt und sie von OCR profitieren würde.

- (nullable NSString*)ocrExtractText:(NSInteger)pageIndex engine:(nullable POXOcrEngine*)engine error:(NSError**)error;

Text per OCR extrahieren; übergeben Sie nil für ausschließlich nativen Text. Siehe POXOcrEngine.

Conformance-Validierung

- (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- oder PDF/X-Konformität validieren; level wählt die Unterstufe. Liefert ein Ergebnis-Handle zurück.

- (BOOL)convertToPdfA:(int32_t)level error:(NSError**)error;

Das Dokument auf der angegebenen Konformitätsstufe nach PDF/A konvertieren.

Signaturen (Dokumentebene)

- (BOOL)sign:(POXCertificate*)certificate reason:(nullable NSString*)reason location:(nullable NSString*)location error:(NSError**)error;

Eine einfache digitale Signatur mit einem geladenen Zertifikat anbringen.

- (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;

Signaturen zählen, Signaturinformationen abrufen, alle Signaturen verifizieren, auf einen Dokument-Zeitstempel prüfen und den Document Security Store lesen.

Lebenszyklus

- (void)close;

Das native Handle sofort freigeben (idempotent).


POXPage

Ein an ein POXDocument gebundenes Seiten-Handle (nullbasiert). Hält eine starke Referenz auf sein Dokument, sodass es dieses nicht überleben kann.

- (nullable NSString*)text:(NSError**)error;
- (nullable NSString*)markdown:(NSError**)error;
- (nullable NSString*)html:(NSError**)error;
- (nullable NSString*)plainText:(NSError**)error;

Den Text, das Markdown, das HTML oder den layouterhaltenden reinen Text dieser Seite extrahieren.


POXPdf

Ein von einem Builder erzeugtes oder per Wrapping-Factory erstelltes PDF.

Konstruktoren

+ (nullable instancetype)fromMarkdown:(NSString*)markdown error:(NSError**)error;
+ (nullable instancetype)fromHtml:(NSString*)html error:(NSError**)error;
+ (nullable instancetype)fromText:(NSString*)text error:(NSError**)error;

Ein PDF aus Markdown, HTML oder reinem Text erstellen.

+ (nullable instancetype)fromImage:(NSString*)path error:(NSError**)error;
+ (nullable instancetype)fromImageBytes:(NSData*)data error:(NSError**)error;

Ein einseitiges PDF erstellen, das eine Bilddatei oder In-Memory-Bildbytes umschließt.

+ (nullable instancetype)fromHtml:(NSString*)html css:(NSString*)css fontBytes:(nullable NSData*)fontBytes error:(NSError**)error;

Ein PDF aus HTML + CSS mit einer einzelnen optional eingebetteten Schrift erstellen.

+ (nullable instancetype)fromHtml:(NSString*)html css:(NSString*)css families:(NSArray<NSString*>*)families fonts:(NSArray<NSData*>*)fonts error:(NSError**)error;

Ein PDF aus HTML + CSS mit einer Mehrfach-Schrift-Kaskade erstellen (parallele families-/fonts-Arrays).

Methoden

- (BOOL)saveToPath:(NSString*)path error:(NSError**)error;
- (nullable NSData*)toBytesWithError:(NSError**)error;
- (NSInteger)pageCountError:(NSError**)error;
- (void)close;

In einen Pfad speichern, die PDF-Bytes abrufen, die Seitenzahl abrufen (-1 bei einem Fehler), oder das native Handle freigeben.


POXDocumentEditor

Ein PDF, das zur direkten Bearbeitung geöffnet wurde. Status-Code-Operationen melden Fehler als NSError; is*-Abfragen liefern BOOL zurück.

Öffnen

+ (nullable instancetype)openEditor:(NSString*)path error:(NSError**)error;
+ (nullable instancetype)openFromBytes:(NSData*)data error:(NSError**)error;

Ein PDF aus einem Pfad oder In-Memory-Bytes zur Bearbeitung öffnen.

Zustand & Metadaten

- (NSInteger)pageCountError:(NSError**)error;
- (POXVersion)version;
- (BOOL)isModified;
- (nullable NSString*)sourcePathError:(NSError**)error;

Seitenzahl, PDF-Version, Flag für ausstehende Änderungen und der Quellpfad des Editors.

- (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 und /Info.CreationDate des Dokuments abrufen/setzen.

Seitenoperationen

- (BOOL)deletePage:(NSInteger)page error:(NSError**)error;
- (BOOL)movePageFrom:(NSInteger)from to:(NSInteger)to error:(NSError**)error;

Seiten löschen oder neu anordnen.

- (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;

Eine Seite drehen, alle Seiten drehen, eine absolute Rotation setzen oder die aktuelle Rotation lesen.

- (BOOL)cropMarginsLeft:(float)left right:(float)right top:(float)top bottom:(float)bottom error:(NSError**)error;

Alle Seiten anhand von Rändern zuschneiden.

- (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 und MediaBox einer Seite abrufen/setzen.

Schwärzung

- (BOOL)applyAllRedactions:(NSError**)error;
- (BOOL)applyPageRedactions:(NSInteger)page error:(NSError**)error;
- (BOOL)isPageMarkedForRedaction:(NSInteger)page;
- (BOOL)unmarkPageForRedaction:(NSInteger)page error:(NSError**)error;

Vorgemerkte Schwärzungen anwenden (alle oder pro Seite), Schwärzungsstatus abfragen und aufheben.

- (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;

Geometrische Schwärzung: ein Füllrechteck vormerken, vorgemerkte Rechtecke zählen, destruktiv anwenden (liefert die Anzahl entfernter Glyphen zurück), und eigenständiges Bereinigen von Metadaten/JS/eingebetteten Dateien.

Bereiche entfernen

- (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;

Ein einzelnes Rechteck entfernen, mehrere POXBbox-wertige Rechtecke entfernen, oder vorgemerkte Entfernungen löschen.

Flatten

- (BOOL)flattenForms:(NSError**)error;
- (BOOL)flattenFormsOnPage:(NSInteger)page error:(NSError**)error;
- (BOOL)flattenAnnotations:(NSInteger)page error:(NSError**)error;
- (BOOL)flattenAllAnnotations:(NSError**)error;

Alle Formulare flatten, Formulare auf einer Seite flatten, Annotationen auf einer Seite flatten, oder alle Annotationen flatten.

- (NSInteger)flattenWarningsCount;
- (nullable NSString*)flattenWarning:(NSInteger)index error:(NSError**)error;
- (BOOL)isPageMarkedForFlatten:(NSInteger)page;
- (BOOL)unmarkPageForFlatten:(NSInteger)page error:(NSError**)error;

Flatten-Warnungen und die Flatten-Markierung pro Seite inspizieren.

Formulare

- (BOOL)setFormField:(NSString*)name value:(NSString*)value error:(NSError**)error;
- (BOOL)importFdfBytes:(NSData*)data error:(NSError**)error;
- (BOOL)importXfdfBytes:(NSData*)data error:(NSError**)error;

Einen Formularfeldwert anhand des Namens setzen; rohe FDF-/XFDF-Bytes importieren.

Zusammenführen / Konvertieren / Einbetten

- (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;

Ein weiteres PDF zusammenführen (Pfad oder Bytes), in-place nach PDF/A konvertieren, eine eingebettete Datei anhängen, oder eine Teilmenge von Seiten in ein neues In-Memory-PDF extrahieren.

Barcodes

- (BOOL)addBarcode:(POXBarcode*)barcode page:(NSInteger)page x:(float)x y:(float)y width:(float)width height:(float)height error:(NSError**)error;

Einen generierten Barcode auf einer Seite platzieren. Siehe POXBarcode.

Speichern

- (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;

In einen Pfad oder in Bytes speichern (mit optionaler Komprimierung/GC/Linearisierung), AES-verschlüsselt in einen Pfad oder in Bytes speichern, oder das native Handle freigeben.


POXDocumentBuilder

Ein fluenter Builder, der ein brandneues PDF erstellt.

+ (nullable instancetype)createWithError:(NSError**)error;

Einen neuen, leeren Dokument-Builder erstellen.

Metadaten

- (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;

Dokumentmetadaten und eine Dokument-Open-JavaScript-Aktion setzen.

Tagged / barrierefreies 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-Tagging aktivieren, die Dokumentsprache setzen, und einen benutzerdefinierten-zu-Standard-Rollenzuordnungseintrag hinzufügen.

Schriften

- (BOOL)registerEmbeddedFont:(NSString*)name font:(POXEmbeddedFont*)font error:(NSError**)error;

Eine TTF-/OTF-Schrift unter name registrieren (übernimmt die Eigentümerschaft des nativen Handles der Schrift). Siehe POXEmbeddedFont.

Seiten

- (nullable POXPageBuilder*)a4PageWithError:(NSError**)error;
- (nullable POXPageBuilder*)letterPageWithError:(NSError**)error;
- (nullable POXPageBuilder*)pageWithWidth:(float)width height:(float)height error:(NSError**)error;

Eine A4-, US-Letter- oder benutzerdefiniert große Seite beginnen. Siehe POXPageBuilder.

Erstellen / Speichern

- (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-Bytes erstellen, in einen Pfad speichern, AES-verschlüsselt in einen Pfad oder in Bytes speichern, oder das native Handle freigeben.


POXPageBuilder

Eine Seite, die innerhalb eines POXDocumentBuilder erstellt wird. Die meisten Operationen liefern BOOL zurück und verketten sich über das übergeordnete Element. Rufen Sie -done: auf, um die Seite zu übernehmen, oder -close, um sie zu verwerfen.

Textlayout

- (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;

Die Schrift, die Cursorposition setzen und Text, Überschriften, Absätze, vertikalen Abstand, eine horizontale Trennlinie, einen Zeilenumbruch oder eine neue Seite gleicher Größe ausgeben.

- (BOOL)textInRectX:(float)x y:(float)y w:(float)w h:(float)h text:(NSString*)text align:(int32_t)align error:(NSError**)error;

Umbrochenen, ausgerichteten Text innerhalb eines Rechtecks anordnen.

Inline-Textläufe

- (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;

Inline-Textläufe anhängen (einfach, fett, kursiv oder RGB-farbig).

Fußnoten / Spalten

- (BOOL)footnoteRefMark:(NSString*)refMark noteText:(NSString*)noteText error:(NSError**)error;
- (BOOL)columnsCount:(uint32_t)columnCount gapPt:(float)gapPt text:(NSString*)text error:(NSError**)error;

Eine Fußnotenreferenz + Fußnotentext hinzufügen, oder Text in mehrere Spalten fließen lassen.

- (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-, Seiten-, benannte-Ziel- und JavaScript-Links sowie Seiten-Öffnen-/Schließen-Aktionen hinzufügen.

JavaScript-Aktionen für Formularfelder

- (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;

Keystroke-/Format-/Validate-/Calculate-JavaScript an das zuletzt hinzugefügte Feld anhängen.

Textauszeichnungen

- (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;

Hervorhebung, Unterstreichung, Durchstreichung oder Wellenlinie auf das vorherige Textelement anwenden.

Annotationen

- (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;

Notizzettel, Wasserzeichen (benutzerdefiniert / CONFIDENTIAL / DRAFT), einen benannten Stempel und Freitext-Annotationen hinzufügen.

Formularfelder

- (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;

Textfelder, Checkboxen, Comboboxen, Radiogruppen, Schaltflächen und Signaturfelder hinzufügen.

Barcodes

- (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;

Einen 1D-Barcode oder einen QR-Code direkt auf der Seite zeichnen.

Bilder

- (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;

Ein Bild, ein Bild mit Alternativtext für Barrierefreiheit, oder ein Artefakt-Bild (dekorativ) platzieren.

Vektorgrafik

- (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;

Rechtecke (umrissen / gefüllt / gestrichelt / mit Strich) und Linien (einfach / mit Strich / gestrichelt) zeichnen.

Tabellen

- (BOOL)tableColumns:(NSArray<NSNumber*>*)widths aligns:(NSArray<NSNumber*>*)aligns rows:(NSArray<NSArray<NSString*>*>*)rows hasHeader:(BOOL)hasHeader error:(NSError**)error;

Eine vollständige Tabelle mit Spaltenbreiten, Ausrichtungen und Zeilen rendern.

Streaming-Tabellen

- (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;

Eine Streaming-Tabelle beginnen (einfach oder V2-Auto-Layout), die Batch-Größe einstellen, Zeilen pushen (mit optionalen Rowspans), flushen und abschließen — für Tabellen, die zu groß sind, um sie auf einmal zu materialisieren.

Commit

- (BOOL)done:(NSError**)error;
- (void)close;

Die Seite an ihren übergeordneten Builder übergeben, oder sie verwerfen.


POXEmbeddedFont

Eine zum Einbetten geladene TTF-/OTF-Schrift. Die Eigentümerschaft geht bei einem erfolgreichen registerEmbeddedFont:font: an den Builder über.

+ (nullable instancetype)fromPath:(NSString*)path error:(NSError**)error;
+ (nullable instancetype)fromBytes:(NSData*)data name:(nullable NSString*)name error:(NSError**)error;
- (void)close;

Eine Schrift aus einem Pfad oder aus Bytes laden (name darf nil sein, um den PostScript-Namen zu verwenden), oder das native Handle freigeben.


POXBarcode

Ein generiertes Barcode-/QR-Code-Bild.

+ (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;

Einen QR-Code (mit Fehlerkorrekturstufe) oder einen 1D-/2D-Barcode eines gegebenen format generieren.

- (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;

Die Nutzdaten, den Formatcode und die Erkennungssicherheit lesen; als PNG-Bytes oder als SVG-String kodieren; oder das native Handle freigeben.


POXOcrEngine

Eine OCR-Engine, die auf Erkennungs-/Recognition-/Wörterbuch-Modelldateien basiert.

+ (nullable instancetype)createWithDetModelPath:(NSString*)detModelPath recModelPath:(NSString*)recModelPath dictPath:(NSString*)dictPath error:(NSError**)error;
- (nullable void*)POX_engineHandle;
- (void)close;

Eine Engine aus Modell- + Wörterbuchpfaden erstellen, das rohe Engine-Handle für ocrExtractText:engine:error: bereitstellen, oder das native Handle freigeben.


POXElementList

Eine Layout-Elementliste für eine Seite.

- (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;

Elemente zählen; den Typ-String, den Text und die Bounding-Box jedes Elements lesen; die gesamte Liste als JSON serialisieren; oder das native Handle freigeben.


POXRenderer

Ein eigenständiges Renderer-Handle (unabhängig von einem Dokument).

+ (nullable instancetype)createWithDpi:(int32_t)dpi format:(int32_t)format quality:(int32_t)quality antiAlias:(BOOL)antiAlias error:(NSError**)error;
- (void)close;

Einen konfigurierten Renderer erstellen (DPI, Format, Qualität, Anti-Aliasing), oder das native Handle freigeben.


Digitale Signaturen & PKI

POXCertificate

Ein geladenes Signier-/Verifizierungszertifikat.

+ (nullable instancetype)loadFromBytes:(NSData*)data password:(NSString*)password error:(NSError**)error;
+ (nullable instancetype)loadFromPemCert:(NSString*)certPem keyPem:(NSString*)keyPem error:(NSError**)error;

Anmeldedaten aus PKCS#12-Bytes + Passwort laden, oder aus PEM-Zertifikat + privatem Schlüssel.

- (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;

Subject / Issuer / Seriennummer lesen, das Gültigkeitsfenster (Unix-Epochensekunden), die aktuelle Gültigkeit (1/0/-1), oder das native Handle freigeben.

POXSignatureInfo

Informationen über eine aus einem Dokument gelesene Signatur.

- (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;

Signierer/Grund/Ort/Zeit, das Signierer-Zertifikat, die PAdES-Baseline-Stufe und den Zeitstempel lesen; einen Zeitstempel anhängen; kryptografisch verifizieren (verifyError:) oder Ende-zu-Ende gegen die vollständigen PDF-Bytes verifizieren (verifyDetached:).

POXTimestamp

Ein geparstes RFC-3161-Zeitstempeltoken.

+ (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;

Ein DER-Token parsen; rohe Token-Bytes, Message-Imprint, Zeit, Seriennummer, TSA-Namen, Policy-OID und Hash-Algorithmus lesen; verifizieren; oder das native Handle freigeben.

POXTsaClient

Ein TSA-Client (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;

Einen Client erstellen, einen Zeitstempel über Daten oder einen vorberechneten Hash anfordern, oder das native Handle freigeben.

POXDss

Ein aus einem Dokument gelesener 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;

Die DER-Zertifikate, CRLs und OCSP-Antworten (sowie die VRI-Anzahl) im DSS zählen und lesen.

POXSigning

Top-Level-Signiereinstiegspunkte und Konfiguration des Bibliotheks-Logs (Klassenmethoden).

+ (nullable NSData*)signBytes:(NSData*)pdf certificate:(POXCertificate*)certificate reason:(nullable NSString*)reason location:(nullable NSString*)location error:(NSError**)error;

Rohe PDF-Bytes mit einer einfachen (Nicht-PAdES-)Signatur signieren.

+ (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;

Rohe PDF-Bytes auf einer PAdES-Baseline-Stufe mit Sperrlistenmaterial signieren.

+ (nullable NSData*)signBytesPadesOpts:(NSData*)pdf options:(POXPadesSignOptions*)options error:(NSError**)error;

Rohe PDF-Bytes mithilfe eines POXPadesSignOptions-Konfigurationsobjekts signieren.

+ (void)setLogLevel:(int32_t)level;
+ (int32_t)logLevel;

Das globale Log-Level setzen/abrufen (0=Off … 5=Trace).

POXPadesSignOptions

PAdES-Signieroptionen (Struct-Pointer-Variante). Alle Felder sind Properties:

Property Typ Beschreibung
certificate POXCertificate* Signierzertifikat
level int32_t PAdES-Baseline (0=B-B, 1=B-T, 2=B-LT)
tsaUrl NSString* TSA-URL (nullable)
reason NSString* Signiergrund (nullable)
location NSString* Signierort (nullable)
certs / crls / ocsps NSArray<NSData*>* DER-kodiertes Sperrlistenmaterial (B-LT)

Conformance-Ergebnistypen

POXPdfAResults

- (BOOL)isCompliantError:(NSError**)error;
- (int32_t)errorCount;
- (int32_t)warningCount;
- (NSArray<NSString*>*)errors;
- (void)close;

PDF/A-Validierungsergebnis: Konformitäts-Flag, Anzahl der Fehler/Warnungen, Fehlermeldungen.

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-Barrierefreiheitsergebnis: Barrierefreiheits-Flag, Anzahl der Fehler/Warnungen und Meldungen, sowie ein Element-Zähl-Struct POXUaStats.

POXPdfXResults

- (BOOL)isCompliantError:(NSError**)error;
- (int32_t)errorCount;
- (NSArray<NSString*>*)errors;
- (void)close;

PDF/X-Validierungsergebnis: Konformitäts-Flag, Fehleranzahl, Fehlermeldungen.


Top-Level-Hilfsfunktionen

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;

PDFs an den angegebenen Pfaden zu einem In-Memory-PDF zusammenführen; einen RFC-3161-Dokumentzeitstempel an eine Signatur anhängen.

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;

Crypto-Provider-Introspektion (aktiver Provider, CycloneDX-CBOM, Inventar, Policy) und FIPS-Policy-Steuerung.

POXModels

+ (nullable NSString*)manifestWithError:(NSError**)error;
+ (int32_t)prefetchAvailable;
+ (nullable NSString*)prefetchModels:(NSString*)languagesCsv error:(NSError**)error;

Das mitgelieferte Modell-Manifest lesen, die Prefetch-Verfügbarkeit prüfen, und ML-Modelle für die angegebenen Sprachcodes vorabladen.

POXConfig

+ (int64_t)setMaxOpsPerStream:(int64_t)limit;
+ (int32_t)setPreserveUnmappedGlyphs:(int32_t)preserve;

Prozessweite Stellschrauben: die Anzahl der pro Content-Stream dekodierten Operatoren begrenzen, und das Beibehalten nicht zugeordneter Glyphen im extrahierten Text umschalten. Jede liefert den vorherigen Wert zurück.


Werttypen

Diese schreibgeschützten NSObject-Typen werden von den obigen Extraktionsmethoden zurückgegeben.

POXChar

Property Typ Beschreibung
character uint32_t Unicode-Codepoint
bbox POXBbox Bounding-Box
fontName NSString* PostScript-Schriftname
fontSize float Schriftgröße in Punkt

POXWord

Property Typ Beschreibung
text NSString* Worttext
bbox POXBbox Bounding-Box
fontName NSString* PostScript-Schriftname
fontSize float Schriftgröße in Punkt
bold BOOL Ob das Wort fett ist

POXTextLine

Property Typ Beschreibung
text NSString* Zeilentext
bbox POXBbox Bounding-Box
wordCount NSInteger Anzahl der Wörter in der Zeile
- (nullable NSString*)cellTextAtRow:(NSInteger)row col:(NSInteger)col;  // POXTable

POXTable

Property / Methode Typ Beschreibung
rowCount NSInteger Anzahl der Zeilen
colCount NSInteger Anzahl der Spalten
hasHeader BOOL Ob die Tabelle eine Kopfzeile hat
cellTextAtRow:col: NSString* Zellentext bei (row, col) (nil, wenn außerhalb des Bereichs)

POXFont

Property Typ Beschreibung
name NSString* Schriftname
type NSString* Schrifttyp (z. B. TrueType, Type1)
encoding NSString* Schriftkodierung
embedded BOOL Ob die Schrift eingebettet ist
subset BOOL Ob die Schrift ein Subset ist
size float Nominale Größe in Punkt (0, wenn unbekannt)

POXImage

Property Typ Beschreibung
width / height NSInteger Pixelmaße
bitsPerComponent NSInteger Bits pro Farbkomponente
format NSString* Bildformat
colorspace NSString* Farbraum
data NSData* Kodierte Bildbytes

POXAnnotation

Property Typ Beschreibung
type / subtype NSString* Annotationstyp und -subtyp
content / author NSString* Inhalt und Autor
rect POXBbox Annotationsrechteck
borderWidth float Randbreite
color uint32_t Farbe gepackt als 0xAARRGGBB (0, wenn nicht vorhanden)
creationDate / modificationDate int64_t Unix-Epochensekunden (0, wenn nicht vorhanden)
hidden / markedDeleted / printable / readOnly BOOL Flags
linkUri NSString* Ziel-URI für Link-Annotationen (nullable)
iconName NSString* Symbolname für Text-/Notiz-Annotationen (nullable)
quadPoints NSArray<NSArray<NSNumber*>*>* Quad-Points für Highlight-Annotationen

POXFormField

Property Typ Beschreibung
name NSString* Feldname
value NSString* Aktueller Wert
type NSString* Feldtyp
readonly BOOL Ob das Feld schreibgeschützt ist
required BOOL Ob das Feld erforderlich ist

POXPath

Property Typ Beschreibung
bbox POXBbox Bounding-Box
strokeWidth float Strichbreite
hasStroke / hasFill BOOL Ob der Pfad einen Strich / eine Füllung hat
operationCount NSInteger Anzahl der Pfadoperationen

POXSearchResult

Property Typ Beschreibung
text NSString* Gefundener Text
page NSInteger Nullbasierter Seitenindex
bbox POXBbox Bounding-Box des Treffers

POXRenderedImage

Property / Methode Typ Beschreibung
width / height NSInteger Pixelmaße
data NSData* Kodierte Bildbytes (z. B. PNG)
saveToPath:error: BOOL Das gerenderte Bild in eine Datei schreiben
close void Das native Handle freigeben

Fehlerbehandlung

Fehlschlagende Operationen liefern nil / NO / einen negativen Status zurück und befüllen den NSError**-Out-Parameter mit einem Fehler in der 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];

Vollständiges Beispiel

#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];

Other Language Bindings

PDF Oxide bietet native Bindings für jedes wichtige Ökosystem: Rust, Python, Node.js, WASM, C#, Golang, Java, PHP, Ruby, C++, Swift, Kotlin, Dart, R, Julia, Zig, Scala, Clojure und Elixir.

Nächste Schritte