Referencia de la API de Objective-C
PDF Oxide incluye bindings idiomáticos de Objective-C (el framework PdfOxide / el CocoaPod PdfOxide) construidos sobre el C ABI. Los envoltorios NSObject son dueños de sus handles nativos y los liberan en -dealloc (o de forma anticipada con -close); las cadenas y buffers C devueltos se copian en NSString/NSData, y los códigos de estado distintos de éxito se exponen como NSError en el POXErrorDomain. Cada método público está cubierto uno a uno por POXApiCoverageTests.
# Podfile
pod 'PdfOxide', '~> 0.3.69'
#import <PdfOxide/POXPdfOxide.h>
Para la API de Rust, consulta la Referencia de la API de Rust. Para la API de Python, consulta la Referencia de la API de Python. Para la API de JavaScript, consulta la Referencia de la API de Node.js o la Referencia de la API WASM.
Todos los índices de página son de base cero. Los bounding boxes usan POXBbox { float x; float y; float width; float height; } en puntos del espacio de usuario del PDF; la versión del PDF se reporta como POXVersion { uint8_t major; uint8_t minor; }.
POXDocument
La clase principal para abrir, extraer, renderizar e inspeccionar un PDF.
Apertura
+ (nullable instancetype)openPath:(NSString*)path error:(NSError**)error;
Abre un PDF desde una ruta del sistema de archivos.
+ (nullable instancetype)openFromBytes:(NSData*)data error:(NSError**)error;
Abre un PDF desde bytes en memoria.
+ (nullable instancetype)openWithPassword:(NSString*)path password:(NSString*)password error:(NSError**)error;
Abre un PDF protegido con contraseña en un solo paso.
+ (nullable instancetype)openFromDocxBytes:(NSData*)data error:(NSError**)error;
+ (nullable instancetype)openFromPptxBytes:(NSData*)data error:(NSError**)error;
+ (nullable instancetype)openFromXlsxBytes:(NSData*)data error:(NSError**)error;
Convierte bytes en memoria de un documento de Office (Word/PowerPoint/Excel) en un documento PDF ya abierto.
- (BOOL)authenticate:(NSString*)password error:(NSError**)error;
Autentica un documento cifrado después de abrirlo; devuelve YES si tiene éxito, NO si la contraseña es incorrecta.
Exportación a Office
- (nullable NSData*)toDocxWithError:(NSError**)error;
- (nullable NSData*)toPptxWithError:(NSError**)error;
- (nullable NSData*)toXlsxWithError:(NSError**)error;
Exporta el documento a bytes de Word / PowerPoint / Excel.
Información del documento
- (NSInteger)pageCountError:(NSError**)error;
Número de páginas, o -1 en caso de error.
- (POXVersion)version;
Versión del PDF como struct POXVersion.
- (BOOL)isEncrypted;
- (BOOL)hasStructureTree;
- (BOOL)hasXfa;
Consultas de cifrado, presencia de árbol de estructura de PDF etiquetado y presencia de formulario XFA.
Texto y conversión
- (nullable NSString*)extractText:(NSInteger)page error:(NSError**)error;
Extrae texto plano de una sola página.
- (nullable NSString*)toPlainText:(NSInteger)page error:(NSError**)error;
- (nullable NSString*)toMarkdown:(NSInteger)page error:(NSError**)error;
- (nullable NSString*)toHtml:(NSInteger)page error:(NSError**)error;
Convierte una sola página a texto plano, Markdown o HTML.
- (nullable NSString*)toPlainTextAllWithError:(NSError**)error;
- (nullable NSString*)toMarkdownAllWithError:(NSError**)error;
- (nullable NSString*)toHtmlAllWithError:(NSError**)error;
Convierte todas las páginas a texto plano, Markdown o HTML.
- (nullable NSString*)extractStructuredJson:(NSInteger)page error:(NSError**)error;
Extrae una página como JSON estructurado (spans, geometría, fuentes).
Extracción de elementos
- (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;
Extrae caracteres, palabras, líneas de texto y tablas con metadatos de posicionamiento.
- (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;
Extrae fuentes incrustadas, imágenes incrustadas, anotaciones de página y rutas vectoriales.
Búsqueda
- (nullable NSArray<POXSearchResult*>*)search:(NSInteger)page term:(NSString*)term caseSensitive:(BOOL)caseSensitive error:(NSError**)error;
Busca term en una sola página.
- (nullable NSArray<POXSearchResult*>*)searchAll:(NSString*)term caseSensitive:(BOOL)caseSensitive error:(NSError**)error;
Busca term en todo el documento.
Extracción dentro de un rectángulo
- (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;
Extrae texto, palabras, líneas, tablas o imágenes restringidos a una región rectangular (puntos del espacio de usuario).
Extracción automática y clasificación
- (nullable NSString*)extractTextAuto:(NSInteger)page error:(NSError**)error;
Selecciona automáticamente extracción de texto nativa u OCR para una página.
- (nullable NSString*)extractAllTextWithError:(NSError**)error;
Extrae texto de todo el documento.
- (nullable NSString*)extractPageAuto:(NSInteger)page optionsJson:(nullable NSString*)optionsJson error:(NSError**)error;
Extrae automáticamente una página con un blob JSON de opciones.
- (nullable NSString*)classifyPage:(NSInteger)page error:(NSError**)error;
- (nullable NSString*)classifyDocumentWithError:(NSError**)error;
Clasifica una sola página o el documento entero (devuelve un JSON de clasificación).
Eliminación de encabezados / pies / artefactos
- (int32_t)eraseHeader:(NSInteger)page error:(NSError**)error;
- (int32_t)eraseFooter:(NSInteger)page error:(NSError**)error;
- (int32_t)eraseArtifacts:(NSInteger)page error:(NSError**)error;
Borra el encabezado, el pie de página o los artefactos de una sola página; devuelve la cantidad eliminada.
- (int32_t)removeHeaders:(float)threshold error:(NSError**)error;
- (int32_t)removeFooters:(float)threshold error:(NSError**)error;
- (int32_t)removeArtifacts:(float)threshold error:(NSError**)error;
Elimina encabezados, pies de página o artefactos repetidos en todo el documento por encima de un threshold de similitud.
Formularios
- (nullable NSArray<POXFormField*>*)formFieldsWithError:(NSError**)error;
Obtiene todos los campos AcroForm.
- (nullable NSData*)exportFormDataToBytes:(int32_t)formatType error:(NSError**)error;
Exporta los datos del formulario como bytes FDF/XFDF (formatType selecciona el formato).
- (BOOL)importFormDataFromPath:(NSString*)dataPath error:(NSError**)error;
- (BOOL)importFormFromFile:(NSString*)filename error:(NSError**)error;
Importa datos de formulario desde un archivo FDF/XFDF.
Estructura y metadatos
- (nullable NSString*)outlineWithError:(NSError**)error;
- (nullable NSString*)pageLabelsWithError:(NSError**)error;
- (nullable NSString*)xmpMetadataWithError:(NSError**)error;
Obtiene el esquema (marcadores) del documento, los rangos de etiquetas de página y los metadatos XMP como JSON.
- (nullable NSData*)sourceBytesWithError:(NSError**)error;
Obtiene los bytes brutos del PDF de origen.
- (nullable NSString*)planSplitByBookmarks:(nullable NSString*)optionsJson error:(NSError**)error;
Calcula un plan de división que agrupa las páginas por marcadores de nivel superior (devuelve JSON).
Anotaciones / fuentes / búsqueda como 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;
Variantes serializadas en JSON de las anotaciones de página, las fuentes incrustadas y la búsqueda por página.
Geometría de página y elementos
- (float)pageWidth:(NSInteger)pageIndex error:(NSError**)error;
- (float)pageHeight:(NSInteger)pageIndex error:(NSError**)error;
- (int32_t)pageRotation:(NSInteger)pageIndex error:(NSError**)error;
Ancho, alto y rotación en grados de la página (-1 en caso de error).
- (nullable POXElementList*)pageElements:(NSInteger)pageIndex error:(NSError**)error;
Obtiene la lista de elementos de diseño de una página. Ver POXElementList.
- (POXPage*)pageAtIndex:(NSInteger)index;
Obtiene un handle de página vinculado a este documento. Ver POXPage.
Renderizado
- (nullable POXRenderedImage*)renderPage:(NSInteger)pageIndex format:(int32_t)format error:(NSError**)error;
Renderiza una página como imagen (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;
Renderiza una página con un factor de zoom, o como miniatura con un size objetivo para el lado más largo.
- (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;
Renderiza con la superficie de opciones completa (DPI, fondo RGBA, transparencia, flag de anotaciones, calidad 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;
Igual que renderPageWithOptions: pero además suprime las capas OCG indicadas por nombre.
- (nullable POXRenderedImage*)renderPageRegion:(NSInteger)pageIndex cropX:(float)cropX cropY:(float)cropY cropWidth:(float)cropWidth cropHeight:(float)cropHeight format:(int32_t)format error:(NSError**)error;
Renderiza una región rectangular de una página (puntos del espacio de usuario, origen abajo a la izquierda).
- (nullable POXRenderedImage*)renderPageFit:(NSInteger)pageIndex w:(int32_t)w h:(int32_t)h format:(int32_t)format error:(NSError**)error;
Renderiza una página para que encaje dentro de w × h píxeles, preservando la relación de aspecto.
- (nullable POXRenderedImage*)renderPageRaw:(NSInteger)pageIndex dpi:(int32_t)dpi outWidth:(int32_t*)outWidth outHeight:(int32_t*)outHeight error:(NSError**)error;
Renderiza una página a un buffer RGBA8888 sin procesar; los parámetros de salida reciben las dimensiones en píxeles.
- (int32_t)estimateRenderTime:(NSInteger)pageIndex error:(NSError**)error;
Estima el tiempo de renderizado (unidades del motor) de una página, o -1 en caso de error.
OCR
- (BOOL)pageNeedsOcr:(NSInteger)pageIndex error:(NSError**)error;
Indica si a una página le falta texto extraíble y se beneficiaría del OCR.
- (nullable NSString*)ocrExtractText:(NSInteger)pageIndex engine:(nullable POXOcrEngine*)engine error:(NSError**)error;
Extrae texto mediante OCR; pasa nil para usar solo texto nativo. Ver POXOcrEngine.
Validación de conformidad
- (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;
Valida la conformidad PDF/A, PDF/UA o PDF/X; level selecciona el subnivel. Devuelve un handle de resultado.
- (BOOL)convertToPdfA:(int32_t)level error:(NSError**)error;
Convierte el documento a PDF/A en el nivel de conformidad indicado.
Firmas (a nivel de documento)
- (BOOL)sign:(POXCertificate*)certificate reason:(nullable NSString*)reason location:(nullable NSString*)location error:(NSError**)error;
Aplica una firma digital básica con un certificado cargado.
- (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;
Cuenta las firmas, obtiene la información de una firma, verifica todas las firmas, comprueba la presencia de una marca de tiempo del documento y lee el Document Security Store.
Ciclo de vida
- (void)close;
Libera el handle nativo de inmediato (idempotente).
POXPage
Un handle de página vinculado a un POXDocument (base cero). Mantiene una referencia fuerte a su documento, de modo que no puede sobrevivirlo.
- (nullable NSString*)text:(NSError**)error;
- (nullable NSString*)markdown:(NSError**)error;
- (nullable NSString*)html:(NSError**)error;
- (nullable NSString*)plainText:(NSError**)error;
Extrae el texto, el Markdown, el HTML o el texto plano con preservación de diseño de esta página.
POXPdf
Un PDF producido por un builder o una factoría de envoltura.
Constructores
+ (nullable instancetype)fromMarkdown:(NSString*)markdown error:(NSError**)error;
+ (nullable instancetype)fromHtml:(NSString*)html error:(NSError**)error;
+ (nullable instancetype)fromText:(NSString*)text error:(NSError**)error;
Construye un PDF a partir de Markdown, HTML o texto plano.
+ (nullable instancetype)fromImage:(NSString*)path error:(NSError**)error;
+ (nullable instancetype)fromImageBytes:(NSData*)data error:(NSError**)error;
Construye un PDF de una sola página que envuelve un archivo de imagen o bytes de imagen en memoria.
+ (nullable instancetype)fromHtml:(NSString*)html css:(NSString*)css fontBytes:(nullable NSData*)fontBytes error:(NSError**)error;
Construye un PDF a partir de HTML + CSS con una sola fuente incrustada opcional.
+ (nullable instancetype)fromHtml:(NSString*)html css:(NSString*)css families:(NSArray<NSString*>*)families fonts:(NSArray<NSData*>*)fonts error:(NSError**)error;
Construye un PDF a partir de HTML + CSS con una cascada multi-fuente (arrays paralelos families/fonts).
Métodos
- (BOOL)saveToPath:(NSString*)path error:(NSError**)error;
- (nullable NSData*)toBytesWithError:(NSError**)error;
- (NSInteger)pageCountError:(NSError**)error;
- (void)close;
Guarda en una ruta, obtiene los bytes del PDF, obtiene el número de páginas (-1 en caso de error), o libera el handle nativo.
POXDocumentEditor
Un PDF abierto para edición in situ. Las operaciones basadas en código de estado exponen los fallos como NSError; las consultas is* devuelven BOOL.
Apertura
+ (nullable instancetype)openEditor:(NSString*)path error:(NSError**)error;
+ (nullable instancetype)openFromBytes:(NSData*)data error:(NSError**)error;
Abre un PDF para edición desde una ruta o desde bytes en memoria.
Estado y metadatos
- (NSInteger)pageCountError:(NSError**)error;
- (POXVersion)version;
- (BOOL)isModified;
- (nullable NSString*)sourcePathError:(NSError**)error;
Número de páginas, versión del PDF, flag de modificación pendiente y la ruta de origen del editor.
- (nullable NSString*)producerError:(NSError**)error;
- (BOOL)setProducer:(NSString*)value error:(NSError**)error;
- (nullable NSString*)creationDateError:(NSError**)error;
- (BOOL)setCreationDate:(NSString*)date error:(NSError**)error;
Obtiene/establece /Info.Producer y /Info.CreationDate del documento.
Operaciones de página
- (BOOL)deletePage:(NSInteger)page error:(NSError**)error;
- (BOOL)movePageFrom:(NSInteger)from to:(NSInteger)to error:(NSError**)error;
Elimina o reordena páginas.
- (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;
Rota una página, todas las páginas, fija la rotación absoluta o lee la rotación actual.
- (BOOL)cropMarginsLeft:(float)left right:(float)right top:(float)top bottom:(float)bottom error:(NSError**)error;
Recorta todas las páginas por márgenes.
- (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;
Obtiene/establece el CropBox y el MediaBox de una página.
Redacción
- (BOOL)applyAllRedactions:(NSError**)error;
- (BOOL)applyPageRedactions:(NSInteger)page error:(NSError**)error;
- (BOOL)isPageMarkedForRedaction:(NSInteger)page;
- (BOOL)unmarkPageForRedaction:(NSInteger)page error:(NSError**)error;
Aplica las redacciones encoladas (todas o por página), consulta y desmarca el estado de redacción.
- (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;
Redacción geométrica: encola un rectángulo de relleno, cuenta los rectángulos encolados, aplica de forma destructiva (devolviendo los glifos eliminados), y limpieza independiente de metadatos/JS/archivos incrustados.
Borrado de regiones
- (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;
Borra un solo rectángulo, varios rectángulos con valor POXBbox, o limpia los borrados pendientes.
Aplanado
- (BOOL)flattenForms:(NSError**)error;
- (BOOL)flattenFormsOnPage:(NSInteger)page error:(NSError**)error;
- (BOOL)flattenAnnotations:(NSInteger)page error:(NSError**)error;
- (BOOL)flattenAllAnnotations:(NSError**)error;
Aplana todos los formularios, los formularios de una página, las anotaciones de una página, o todas las anotaciones.
- (NSInteger)flattenWarningsCount;
- (nullable NSString*)flattenWarning:(NSInteger)index error:(NSError**)error;
- (BOOL)isPageMarkedForFlatten:(NSInteger)page;
- (BOOL)unmarkPageForFlatten:(NSInteger)page error:(NSError**)error;
Inspecciona las advertencias de aplanado y la marca de aplanado por página.
Formularios
- (BOOL)setFormField:(NSString*)name value:(NSString*)value error:(NSError**)error;
- (BOOL)importFdfBytes:(NSData*)data error:(NSError**)error;
- (BOOL)importXfdfBytes:(NSData*)data error:(NSError**)error;
Establece el valor de un campo de formulario por nombre; importa bytes FDF / XFDF en bruto.
Combinar / convertir / incrustar
- (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;
Combina otro PDF (ruta o bytes), convierte a PDF/A in situ, adjunta un archivo incrustado, o extrae un subconjunto de páginas a un nuevo PDF en memoria.
Códigos de barras
- (BOOL)addBarcode:(POXBarcode*)barcode page:(NSInteger)page x:(float)x y:(float)y width:(float)width height:(float)height error:(NSError**)error;
Coloca un código de barras generado en una página. Ver POXBarcode.
Guardado
- (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;
Guarda en una ruta o en bytes (con compresión/GC/linearización opcionales), guarda cifrado con AES en una ruta o en bytes, o libera el handle nativo.
POXDocumentBuilder
Un builder fluido que construye un PDF totalmente nuevo.
+ (nullable instancetype)createWithError:(NSError**)error;
Crea un nuevo builder de documento vacío.
Metadatos
- (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;
Establece los metadatos del documento y una acción JavaScript de apertura a nivel de documento.
PDF etiquetado / accesible
- (BOOL)taggedPdfUa1:(NSError**)error;
- (BOOL)language:(NSString*)lang error:(NSError**)error;
- (BOOL)roleMapCustom:(NSString*)custom standard:(NSString*)standard error:(NSError**)error;
Activa el etiquetado PDF/UA-1, establece el idioma del documento y añade una entrada de mapa de roles personalizado a estándar.
Fuentes
- (BOOL)registerEmbeddedFont:(NSString*)name font:(POXEmbeddedFont*)font error:(NSError**)error;
Registra una fuente TTF/OTF bajo name (transfiere la propiedad del handle nativo de la fuente). Ver POXEmbeddedFont.
Páginas
- (nullable POXPageBuilder*)a4PageWithError:(NSError**)error;
- (nullable POXPageBuilder*)letterPageWithError:(NSError**)error;
- (nullable POXPageBuilder*)pageWithWidth:(float)width height:(float)height error:(NSError**)error;
Comienza una página A4, US-Letter o de tamaño personalizado. Ver POXPageBuilder.
Construcción / guardado
- (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;
Construye los bytes del PDF, guarda en una ruta, guarda cifrado con AES en una ruta o en bytes, o libera el handle nativo.
POXPageBuilder
Una página en construcción dentro de un POXDocumentBuilder. La mayoría de las operaciones devuelven BOOL y encadenan a través del padre. Llama a -done: para confirmar la página o a -close para descartarla.
Diseño de texto
- (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;
Establece la fuente y la posición del cursor, y emite texto, encabezados, párrafos, espacio vertical, una regla horizontal, un salto de línea o una página nueva del mismo tamaño.
- (BOOL)textInRectX:(float)x y:(float)y w:(float)w h:(float)h text:(NSString*)text align:(int32_t)align error:(NSError**)error;
Dispone texto envuelto y alineado dentro de un rectángulo.
Fragmentos en línea
- (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;
Añade fragmentos de texto en línea (plano, negrita, cursiva o con color RGB).
Notas al pie / columnas
- (BOOL)footnoteRefMark:(NSString*)refMark noteText:(NSString*)noteText error:(NSError**)error;
- (BOOL)columnsCount:(uint32_t)columnCount gapPt:(float)gapPt text:(NSString*)text error:(NSError**)error;
Añade una referencia de nota al pie + el texto de la nota, o fluye texto en varias columnas.
Enlaces y acciones
- (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;
Añade enlaces a URL / página / destino con nombre / JavaScript, y acciones de apertura/cierre de página.
Acciones JS de campos de formulario
- (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;
Adjunta JavaScript de pulsación de tecla / formato / validación / cálculo al campo añadido más recientemente.
Decoraciones de texto
- (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;
Aplica resaltado, subrayado, tachado u ondulado al elemento de texto anterior.
Anotaciones
- (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;
Añade notas adhesivas, marcas de agua (personalizada / CONFIDENTIAL / DRAFT), un sello con nombre y anotaciones de texto libre.
Campos de formulario
- (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;
Añade campos de texto, casillas de verificación, cuadros combinados, grupos de radio, botones de envío y campos de firma.
Códigos de barras
- (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;
Dibuja un código de barras 1D o un código QR directamente en la página.
Imágenes
- (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;
Coloca una imagen, una imagen con texto alternativo de accesibilidad, o una imagen artefacto (decorativa).
Gráficos vectoriales
- (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;
Dibuja rectángulos (contorno / relleno / trazo / discontinuo) y líneas (planas / con trazo / discontinuas).
Tablas
- (BOOL)tableColumns:(NSArray<NSNumber*>*)widths aligns:(NSArray<NSNumber*>*)aligns rows:(NSArray<NSArray<NSString*>*>*)rows hasHeader:(BOOL)hasHeader error:(NSError**)error;
Renderiza una tabla completa con anchos de columna, alineaciones y filas.
Tablas en streaming
- (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;
Inicia una tabla en streaming (básica o V2 con auto-diseño), ajusta el tamaño de lote, añade filas (con rowspans opcionales), vacía el buffer y finaliza — para tablas demasiado grandes para materializarlas de una sola vez.
Confirmación
- (BOOL)done:(NSError**)error;
- (void)close;
Confirma la página en su builder padre, o la descarta.
POXEmbeddedFont
Una fuente TTF/OTF cargada para incrustarla. La propiedad se transfiere al builder tras un registerEmbeddedFont:font: exitoso.
+ (nullable instancetype)fromPath:(NSString*)path error:(NSError**)error;
+ (nullable instancetype)fromBytes:(NSData*)data name:(nullable NSString*)name error:(NSError**)error;
- (void)close;
Carga una fuente desde una ruta o desde bytes (name puede ser nil para usar el nombre PostScript), o libera el handle nativo.
POXBarcode
Una imagen de código de barras / código QR generada.
+ (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;
Genera un código QR (con nivel de corrección de errores) o un código de barras 1D/2D de un format dado.
- (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;
Lee el payload, el código de formato y la confianza de decodificación; codifica como bytes PNG o como cadena SVG; o libera el handle nativo.
POXOcrEngine
Un motor de OCR respaldado por archivos de modelo de detección/reconocimiento/diccionario.
+ (nullable instancetype)createWithDetModelPath:(NSString*)detModelPath recModelPath:(NSString*)recModelPath dictPath:(NSString*)dictPath error:(NSError**)error;
- (nullable void*)POX_engineHandle;
- (void)close;
Crea un motor a partir de rutas de modelo + diccionario, expone el handle de motor en bruto para ocrExtractText:engine:error:, o libera el handle nativo.
POXElementList
Una lista de elementos de diseño de una página.
- (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;
Cuenta los elementos; lee el tipo, el texto y el bounding box de cada elemento; serializa la lista completa a JSON; o libera el handle nativo.
POXRenderer
Un handle de renderizador independiente (no ligado a un documento).
+ (nullable instancetype)createWithDpi:(int32_t)dpi format:(int32_t)format quality:(int32_t)quality antiAlias:(BOOL)antiAlias error:(NSError**)error;
- (void)close;
Crea un renderizador configurado (DPI, formato, calidad, anti-aliasing), o libera el handle nativo.
Firmas digitales y PKI
POXCertificate
Un certificado de firma / verificación cargado.
+ (nullable instancetype)loadFromBytes:(NSData*)data password:(NSString*)password error:(NSError**)error;
+ (nullable instancetype)loadFromPemCert:(NSString*)certPem keyPem:(NSString*)keyPem error:(NSError**)error;
Carga credenciales desde bytes PKCS#12 + contraseña, o desde un certificado PEM + clave privada.
- (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;
Lee el sujeto / emisor / número de serie, la ventana de validez (segundos desde el epoch Unix), la validez actual (1/0/-1), o libera el handle nativo.
POXSignatureInfo
Información sobre una firma leída de un documento.
- (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;
Lee el firmante/motivo/ubicación/hora, el certificado del firmante, el nivel de referencia PAdES y la marca de tiempo; adjunta una marca de tiempo; verifica criptográficamente (verifyError:) o verifica de extremo a extremo frente a los bytes completos del PDF (verifyDetached:).
POXTimestamp
Un token de marca de tiempo RFC 3161 analizado.
+ (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;
Analiza un token DER; lee los bytes brutos del token, el message imprint, la hora, el número de serie, el nombre de la TSA, el OID de política y el algoritmo de hash; verifica; o libera el handle nativo.
POXTsaClient
Un cliente 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;
Crea un cliente, solicita una marca de tiempo sobre datos o sobre un hash precomputado, o libera el handle nativo.
POXDss
Un Document Security Store leído de un documento.
- (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;
Cuenta y lee los certificados DER, las CRL y las respuestas OCSP (más el recuento de VRI) en el DSS.
POXSigning
Puntos de entrada de firma de alto nivel y configuración del log de la biblioteca (métodos de clase).
+ (nullable NSData*)signBytes:(NSData*)pdf certificate:(POXCertificate*)certificate reason:(nullable NSString*)reason location:(nullable NSString*)location error:(NSError**)error;
Firma bytes brutos de un PDF con una firma básica (no PAdES).
+ (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;
Firma bytes brutos de un PDF en un nivel de referencia PAdES con material de revocación.
+ (nullable NSData*)signBytesPadesOpts:(NSData*)pdf options:(POXPadesSignOptions*)options error:(NSError**)error;
Firma bytes brutos de un PDF usando un objeto de configuración POXPadesSignOptions.
+ (void)setLogLevel:(int32_t)level;
+ (int32_t)logLevel;
Establece / obtiene el nivel de log global (0=Off … 5=Trace).
POXPadesSignOptions
Opciones de firma PAdES (variante con struct-pointer). Todos los campos son propiedades:
| Propiedad | Tipo | Descripción |
|---|---|---|
certificate |
POXCertificate* |
Certificado de firma |
level |
int32_t |
Nivel de referencia PAdES (0=B-B, 1=B-T, 2=B-LT) |
tsaUrl |
NSString* |
URL de la TSA (nullable) |
reason |
NSString* |
Motivo de la firma (nullable) |
location |
NSString* |
Ubicación de la firma (nullable) |
certs / crls / ocsps |
NSArray<NSData*>* |
Material de revocación codificado en DER (B-LT) |
Tipos de resultado de conformidad
POXPdfAResults
- (BOOL)isCompliantError:(NSError**)error;
- (int32_t)errorCount;
- (int32_t)warningCount;
- (NSArray<NSString*>*)errors;
- (void)close;
Resultado de validación PDF/A: flag de conformidad, recuentos de errores/advertencias, mensajes de error.
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;
Resultado de accesibilidad PDF/UA: flag de accesibilidad, recuentos y mensajes de errores/advertencias, y un struct POXUaStats con recuentos de elementos.
POXPdfXResults
- (BOOL)isCompliantError:(NSError**)error;
- (int32_t)errorCount;
- (NSArray<NSString*>*)errors;
- (void)close;
Resultado de validación PDF/X: flag de conformidad, recuento de errores, mensajes de error.
Utilidades de alto nivel
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;
Combina los PDF en las rutas indicadas en un solo PDF en memoria; añade una marca de tiempo de documento RFC 3161 a una firma.
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;
Introspección del proveedor de criptografía (proveedor activo, CBOM en CycloneDX, inventario, política) y controles de política FIPS.
POXModels
+ (nullable NSString*)manifestWithError:(NSError**)error;
+ (int32_t)prefetchAvailable;
+ (nullable NSString*)prefetchModels:(NSString*)languagesCsv error:(NSError**)error;
Lee el manifiesto de modelos incluido, comprueba la disponibilidad de precarga y precarga modelos de ML para los códigos de idioma indicados.
POXConfig
+ (int64_t)setMaxOpsPerStream:(int64_t)limit;
+ (int32_t)setPreserveUnmappedGlyphs:(int32_t)preserve;
Ajustes globales del proceso: limita los operadores decodificados por flujo de contenido, y activa/desactiva la preservación de glifos sin mapear en el texto extraído. Cada uno devuelve el valor anterior.
Tipos de valor
Estos tipos NSObject de solo lectura son devueltos por los métodos de extracción anteriores.
POXChar
| Propiedad | Tipo | Descripción |
|---|---|---|
character |
uint32_t |
Punto de código Unicode |
bbox |
POXBbox |
Bounding box |
fontName |
NSString* |
Nombre de fuente PostScript |
fontSize |
float |
Tamaño de fuente en puntos |
POXWord
| Propiedad | Tipo | Descripción |
|---|---|---|
text |
NSString* |
Texto de la palabra |
bbox |
POXBbox |
Bounding box |
fontName |
NSString* |
Nombre de fuente PostScript |
fontSize |
float |
Tamaño de fuente en puntos |
bold |
BOOL |
Si la palabra está en negrita |
POXTextLine
| Propiedad | Tipo | Descripción |
|---|---|---|
text |
NSString* |
Texto de la línea |
bbox |
POXBbox |
Bounding box |
wordCount |
NSInteger |
Número de palabras en la línea |
- (nullable NSString*)cellTextAtRow:(NSInteger)row col:(NSInteger)col; // POXTable
POXTable
| Propiedad / Método | Tipo | Descripción |
|---|---|---|
rowCount |
NSInteger |
Número de filas |
colCount |
NSInteger |
Número de columnas |
hasHeader |
BOOL |
Si la tabla tiene fila de encabezado |
cellTextAtRow:col: |
NSString* |
Texto de la celda en (row, col) (nil si está fuera de rango) |
POXFont
| Propiedad | Tipo | Descripción |
|---|---|---|
name |
NSString* |
Nombre de la fuente |
type |
NSString* |
Tipo de fuente (p. ej. TrueType, Type1) |
encoding |
NSString* |
Codificación de la fuente |
embedded |
BOOL |
Si la fuente está incrustada |
subset |
BOOL |
Si la fuente es un subconjunto |
size |
float |
Tamaño nominal en puntos (0 si se desconoce) |
POXImage
| Propiedad | Tipo | Descripción |
|---|---|---|
width / height |
NSInteger |
Dimensiones en píxeles |
bitsPerComponent |
NSInteger |
Bits por componente de color |
format |
NSString* |
Formato de imagen |
colorspace |
NSString* |
Espacio de color |
data |
NSData* |
Bytes de la imagen codificada |
POXAnnotation
| Propiedad | Tipo | Descripción |
|---|---|---|
type / subtype |
NSString* |
Tipo y subtipo de anotación |
content / author |
NSString* |
Contenido y autor |
rect |
POXBbox |
Rectángulo de la anotación |
borderWidth |
float |
Ancho del borde |
color |
uint32_t |
Color empaquetado como 0xAARRGGBB (0 si está ausente) |
creationDate / modificationDate |
int64_t |
Segundos desde el epoch Unix (0 si está ausente) |
hidden / markedDeleted / printable / readOnly |
BOOL |
Flags |
linkUri |
NSString* |
URI de destino para anotaciones Link (nullable) |
iconName |
NSString* |
Nombre de icono para anotaciones Text/nota (nullable) |
quadPoints |
NSArray<NSArray<NSNumber*>*>* |
Puntos cuadrados para anotaciones Highlight |
POXFormField
| Propiedad | Tipo | Descripción |
|---|---|---|
name |
NSString* |
Nombre del campo |
value |
NSString* |
Valor actual |
type |
NSString* |
Tipo de campo |
readonly |
BOOL |
Si el campo es de solo lectura |
required |
BOOL |
Si el campo es obligatorio |
POXPath
| Propiedad | Tipo | Descripción |
|---|---|---|
bbox |
POXBbox |
Bounding box |
strokeWidth |
float |
Ancho de trazo |
hasStroke / hasFill |
BOOL |
Si la ruta tiene trazo / relleno |
operationCount |
NSInteger |
Número de operaciones de ruta |
POXSearchResult
| Propiedad | Tipo | Descripción |
|---|---|---|
text |
NSString* |
Texto coincidente |
page |
NSInteger |
Índice de página de base cero |
bbox |
POXBbox |
Bounding box de la coincidencia |
POXRenderedImage
| Propiedad / Método | Tipo | Descripción |
|---|---|---|
width / height |
NSInteger |
Dimensiones en píxeles |
data |
NSData* |
Bytes de la imagen codificada (p. ej. PNG) |
saveToPath:error: |
BOOL |
Escribe la imagen renderizada en un archivo |
close |
void |
Libera el handle nativo |
Manejo de errores
Las operaciones que fallan devuelven nil / NO / un estado negativo y rellenan el parámetro de salida NSError** con un error en el 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];
Ejemplo completo
#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 ofrece bindings nativos para todos los ecosistemas principales: Rust, Python, Node.js, WASM, C#, Golang, Java, PHP, Ruby, C++, Swift, Kotlin, Dart, R, Julia, Zig, Scala, Clojure y Elixir.
Próximos pasos
- Tipos y enums — todos los tipos y enums compartidos
- Referencia de la API Page — iteración de página consistente entre bindings
- Primeros pasos con Objective-C — tutorial