Довідник Objective-C API
PDF Oxide постачає ідіоматичні прив’язки Objective-C (фреймворк PdfOxide / CocoaPod PdfOxide), що лежать поверх C ABI. Обгортки NSObject володіють своїми нативними дескрипторами і звільняють їх у -dealloc (або завчасно через -close); повернуті C-рядки й буфери копіюються в NSString/NSData, а коди статусу, відмінні від успіху, проявляються як NSError у домені POXErrorDomain. Кожен публічний метод покритий один до одного тестами POXApiCoverageTests.
# Podfile
pod 'PdfOxide', '~> 0.3.69'
#import <PdfOxide/POXPdfOxide.h>
Щодо Rust API див. Довідник Rust API. Щодо Python API див. Довідник Python API. Щодо Node.js API див. Довідник Node.js API, а щодо WASM API — Довідник WASM API.
Усі індекси сторінок відлічуються з нуля. Обмежувальні прямокутники використовують POXBbox { float x; float y; float width; float height; } у точках користувацького простору PDF; версія PDF подається як POXVersion { uint8_t major; uint8_t minor; }.
POXDocument
Основний клас для відкриття, видобування, рендерингу та інспекції PDF.
Відкриття
+ (nullable instancetype)openPath:(NSString*)path error:(NSError**)error;
Відкрити PDF за шляхом у файловій системі.
+ (nullable instancetype)openFromBytes:(NSData*)data error:(NSError**)error;
Відкрити PDF із байтів у пам’яті.
+ (nullable instancetype)openWithPassword:(NSString*)path password:(NSString*)password error:(NSError**)error;
Відкрити PDF, захищений паролем, за один крок.
+ (nullable instancetype)openFromDocxBytes:(NSData*)data error:(NSError**)error;
+ (nullable instancetype)openFromPptxBytes:(NSData*)data error:(NSError**)error;
+ (nullable instancetype)openFromXlsxBytes:(NSData*)data error:(NSError**)error;
Конвертувати байти офісного документа в пам’яті (Word/PowerPoint/Excel) у відкритий PDF-документ.
- (BOOL)authenticate:(NSString*)password error:(NSError**)error;
Автентифікувати зашифрований документ після відкриття; повертає YES у разі успіху, NO — для неправильного пароля.
Експорт в офісні формати
- (nullable NSData*)toDocxWithError:(NSError**)error;
- (nullable NSData*)toPptxWithError:(NSError**)error;
- (nullable NSData*)toXlsxWithError:(NSError**)error;
Експортувати документ у байти Word / PowerPoint / Excel.
Інформація про документ
- (NSInteger)pageCountError:(NSError**)error;
Кількість сторінок або -1 у разі помилки.
- (POXVersion)version;
Версія PDF у вигляді структури POXVersion.
- (BOOL)isEncrypted;
- (BOOL)hasStructureTree;
- (BOOL)hasXfa;
Запити щодо шифрування, наявності дерева структури тегованого PDF та наявності XFA-форми.
Текст і конвертація
- (nullable NSString*)extractText:(NSInteger)page error:(NSError**)error;
Видобути звичайний текст з однієї сторінки.
- (nullable NSString*)toPlainText:(NSInteger)page error:(NSError**)error;
- (nullable NSString*)toMarkdown:(NSInteger)page error:(NSError**)error;
- (nullable NSString*)toHtml:(NSInteger)page error:(NSError**)error;
Конвертувати одну сторінку у звичайний текст, Markdown або HTML.
- (nullable NSString*)toPlainTextAllWithError:(NSError**)error;
- (nullable NSString*)toMarkdownAllWithError:(NSError**)error;
- (nullable NSString*)toHtmlAllWithError:(NSError**)error;
Конвертувати всі сторінки у звичайний текст, Markdown або HTML.
- (nullable NSString*)extractStructuredJson:(NSInteger)page error:(NSError**)error;
Видобути сторінку у вигляді структурованого JSON (фрагменти тексту, геометрія, шрифти).
Видобування елементів
- (nullable NSArray<POXChar*>*)extractChars:(NSInteger)page error:(NSError**)error;
- (nullable NSArray<POXWord*>*)extractWords:(NSInteger)page error:(NSError**)error;
- (nullable NSArray<POXTextLine*>*)extractTextLines:(NSInteger)page error:(NSError**)error;
- (nullable NSArray<POXTable*>*)extractTables:(NSInteger)page error:(NSError**)error;
Видобути символи, слова, текстові рядки й таблиці з метаданими позиціонування.
- (nullable NSArray<POXFont*>*)embeddedFonts:(NSInteger)page error:(NSError**)error;
- (nullable NSArray<POXImage*>*)embeddedImages:(NSInteger)page error:(NSError**)error;
- (nullable NSArray<POXAnnotation*>*)pageAnnotations:(NSInteger)page error:(NSError**)error;
- (nullable NSArray<POXPath*>*)extractPaths:(NSInteger)page error:(NSError**)error;
Видобути вбудовані шрифти, вбудовані зображення, анотації сторінки та векторні шляхи.
Пошук
- (nullable NSArray<POXSearchResult*>*)search:(NSInteger)page term:(NSString*)term caseSensitive:(BOOL)caseSensitive error:(NSError**)error;
Шукати term на одній сторінці.
- (nullable NSArray<POXSearchResult*>*)searchAll:(NSString*)term caseSensitive:(BOOL)caseSensitive error:(NSError**)error;
Шукати term у всьому документі.
Видобування в межах прямокутника
- (nullable NSString*)extractTextInRect:(NSInteger)page x:(float)x y:(float)y width:(float)width height:(float)height error:(NSError**)error;
- (nullable NSArray<POXWord*>*)extractWordsInRect:(NSInteger)page x:(float)x y:(float)y width:(float)width height:(float)height error:(NSError**)error;
- (nullable NSArray<POXTextLine*>*)extractLinesInRect:(NSInteger)page x:(float)x y:(float)y width:(float)width height:(float)height error:(NSError**)error;
- (nullable NSArray<POXTable*>*)extractTablesInRect:(NSInteger)page x:(float)x y:(float)y width:(float)width height:(float)height error:(NSError**)error;
- (nullable NSArray<POXImage*>*)extractImagesInRect:(NSInteger)page x:(float)x y:(float)y width:(float)width height:(float)height error:(NSError**)error;
Видобути текст, слова, рядки, таблиці або зображення, обмежені прямокутною областю (точки користувацького простору).
Автоматичне видобування та класифікація
- (nullable NSString*)extractTextAuto:(NSInteger)page error:(NSError**)error;
Автоматично обрати нативне чи OCR-видобування тексту для сторінки.
- (nullable NSString*)extractAllTextWithError:(NSError**)error;
Видобути текст з усього документа.
- (nullable NSString*)extractPageAuto:(NSInteger)page optionsJson:(nullable NSString*)optionsJson error:(NSError**)error;
Автоматично видобути сторінку з блоком параметрів у JSON.
- (nullable NSString*)classifyPage:(NSInteger)page error:(NSError**)error;
- (nullable NSString*)classifyDocumentWithError:(NSError**)error;
Класифікувати окрему сторінку або весь документ (повертає JSON класифікації).
Видалення колонтитулів та артефактів
- (int32_t)eraseHeader:(NSInteger)page error:(NSError**)error;
- (int32_t)eraseFooter:(NSInteger)page error:(NSError**)error;
- (int32_t)eraseArtifacts:(NSInteger)page error:(NSError**)error;
Стерти верхній колонтитул, нижній колонтитул або артефакти на одній сторінці; повертає кількість видалених елементів.
- (int32_t)removeHeaders:(float)threshold error:(NSError**)error;
- (int32_t)removeFooters:(float)threshold error:(NSError**)error;
- (int32_t)removeArtifacts:(float)threshold error:(NSError**)error;
Видалити повторювані верхні/нижні колонтитули або артефакти в усьому документі вище порога подібності threshold.
Форми
- (nullable NSArray<POXFormField*>*)formFieldsWithError:(NSError**)error;
Отримати всі поля AcroForm.
- (nullable NSData*)exportFormDataToBytes:(int32_t)formatType error:(NSError**)error;
Експортувати дані форми у вигляді байтів FDF/XFDF (formatType обирає формат).
- (BOOL)importFormDataFromPath:(NSString*)dataPath error:(NSError**)error;
- (BOOL)importFormFromFile:(NSString*)filename error:(NSError**)error;
Імпортувати дані форми з файлу FDF/XFDF.
Структура та метадані
- (nullable NSString*)outlineWithError:(NSError**)error;
- (nullable NSString*)pageLabelsWithError:(NSError**)error;
- (nullable NSString*)xmpMetadataWithError:(NSError**)error;
Отримати структуру документа (закладки), діапазони міток сторінок та метадані XMP у вигляді JSON.
- (nullable NSData*)sourceBytesWithError:(NSError**)error;
Отримати сирі байти вихідного PDF.
- (nullable NSString*)planSplitByBookmarks:(nullable NSString*)optionsJson error:(NSError**)error;
Обчислити план розбиття, що групує сторінки за закладками верхнього рівня (повертає JSON).
Анотації / шрифти / пошук у вигляді JSON
- (nullable NSString*)annotationsJson:(NSInteger)page error:(NSError**)error;
- (nullable NSString*)embeddedFontsJson:(NSInteger)page error:(NSError**)error;
- (nullable NSString*)searchJson:(NSInteger)page term:(NSString*)term caseSensitive:(BOOL)caseSensitive error:(NSError**)error;
Варіанти анотацій сторінки, вбудованих шрифтів і посторінкового пошуку, серіалізовані в JSON.
Геометрія та елементи сторінки
- (float)pageWidth:(NSInteger)pageIndex error:(NSError**)error;
- (float)pageHeight:(NSInteger)pageIndex error:(NSError**)error;
- (int32_t)pageRotation:(NSInteger)pageIndex error:(NSError**)error;
Ширина, висота і поворот сторінки в градусах (-1 у разі помилки).
- (nullable POXElementList*)pageElements:(NSInteger)pageIndex error:(NSError**)error;
Отримати список елементів макета для сторінки. Див. POXElementList.
- (POXPage*)pageAtIndex:(NSInteger)index;
Отримати дескриптор сторінки, прив’язаний до цього документа. Див. POXPage.
Рендеринг
- (nullable POXRenderedImage*)renderPage:(NSInteger)pageIndex format:(int32_t)format error:(NSError**)error;
Відрендерити сторінку в зображення (format 0 = PNG, 1 = JPEG).
- (nullable POXRenderedImage*)renderPageZoom:(NSInteger)pageIndex zoom:(float)zoom format:(int32_t)format error:(NSError**)error;
- (nullable POXRenderedImage*)renderPageThumbnail:(NSInteger)pageIndex size:(int32_t)size format:(int32_t)format error:(NSError**)error;
Відрендерити сторінку з коефіцієнтом масштабування або як мініатюру з цільовим розміром найдовшої сторони size.
- (nullable POXRenderedImage*)renderPageWithOptions:(NSInteger)pageIndex
dpi:(int32_t)dpi
format:(int32_t)format
bgR:(float)bgR bgG:(float)bgG bgB:(float)bgB bgA:(float)bgA
transparentBackground:(int32_t)transparentBackground
renderAnnotations:(int32_t)renderAnnotations
jpegQuality:(int32_t)jpegQuality
error:(NSError**)error;
Рендеринг із повним набором параметрів (DPI, фон у RGBA, прозорість, прапорець анотацій, якість JPEG).
- (nullable POXRenderedImage*)renderPageWithOptionsEx:(NSInteger)pageIndex
dpi:(int32_t)dpi
format:(int32_t)format
bgR:(float)bgR bgG:(float)bgG bgB:(float)bgB bgA:(float)bgA
transparentBackground:(int32_t)transparentBackground
renderAnnotations:(int32_t)renderAnnotations
jpegQuality:(int32_t)jpegQuality
excludedLayers:(NSArray<NSString*>*)excludedLayers
error:(NSError**)error;
Те саме, що renderPageWithOptions:, але додатково приховує названі шари OCG.
- (nullable POXRenderedImage*)renderPageRegion:(NSInteger)pageIndex cropX:(float)cropX cropY:(float)cropY cropWidth:(float)cropWidth cropHeight:(float)cropHeight format:(int32_t)format error:(NSError**)error;
Відрендерити прямокутну область сторінки (точки користувацького простору, початок координат внизу зліва).
- (nullable POXRenderedImage*)renderPageFit:(NSInteger)pageIndex w:(int32_t)w h:(int32_t)h format:(int32_t)format error:(NSError**)error;
Відрендерити сторінку так, щоб вона вписалася в w × h пікселів зі збереженням пропорцій.
- (nullable POXRenderedImage*)renderPageRaw:(NSInteger)pageIndex dpi:(int32_t)dpi outWidth:(int32_t*)outWidth outHeight:(int32_t*)outHeight error:(NSError**)error;
Відрендерити сторінку в сирий буфер RGBA8888; вихідні параметри отримують розміри в пікселях.
- (int32_t)estimateRenderTime:(NSInteger)pageIndex error:(NSError**)error;
Оцінити час рендерингу (в одиницях рушія) для сторінки, або -1 у разі помилки.
OCR
- (BOOL)pageNeedsOcr:(NSInteger)pageIndex error:(NSError**)error;
Чи бракує сторінці видобувного тексту і чи виграла б вона від OCR.
- (nullable NSString*)ocrExtractText:(NSInteger)pageIndex engine:(nullable POXOcrEngine*)engine error:(NSError**)error;
Видобути текст за допомогою OCR; передайте nil для лише нативного тексту. Див. POXOcrEngine.
Перевірка відповідності
- (nullable POXPdfAResults*)validatePdfA:(int32_t)level error:(NSError**)error;
- (nullable POXUaResults*)validatePdfUa:(int32_t)level error:(NSError**)error;
- (nullable POXPdfXResults*)validatePdfX:(int32_t)level error:(NSError**)error;
Перевірити відповідність PDF/A, PDF/UA або PDF/X; level обирає підрівень. Повертає дескриптор результату.
- (BOOL)convertToPdfA:(int32_t)level error:(NSError**)error;
Конвертувати документ у PDF/A заданого рівня відповідності.
Підписи (на рівні документа)
- (BOOL)sign:(POXCertificate*)certificate reason:(nullable NSString*)reason location:(nullable NSString*)location error:(NSError**)error;
Накласти базовий цифровий підпис із завантаженим сертифікатом.
- (int32_t)signatureCountWithError:(NSError**)error;
- (nullable POXSignatureInfo*)signatureAtIndex:(int32_t)index error:(NSError**)error;
- (int32_t)verifyAllSignaturesWithError:(NSError**)error;
- (int32_t)hasTimestampWithError:(NSError**)error;
- (nullable POXDss*)dssWithError:(NSError**)error;
Порахувати підписи, отримати інформацію про підпис, перевірити всі підписи, перевірити наявність позначки часу документа та прочитати Document Security Store.
Життєвий цикл
- (void)close;
Звільнити нативний дескриптор негайно (ідемпотентно).
POXPage
Дескриптор сторінки, прив’язаний до POXDocument (з нумерацією від нуля). Тримає сильне посилання на свій документ, тому не може пережити його.
- (nullable NSString*)text:(NSError**)error;
- (nullable NSString*)markdown:(NSError**)error;
- (nullable NSString*)html:(NSError**)error;
- (nullable NSString*)plainText:(NSError**)error;
Видобути текст, Markdown, HTML або звичайний текст зі збереженням макета для цієї сторінки.
POXPdf
PDF, створений будівником або обгортковою фабрикою.
Конструктори
+ (nullable instancetype)fromMarkdown:(NSString*)markdown error:(NSError**)error;
+ (nullable instancetype)fromHtml:(NSString*)html error:(NSError**)error;
+ (nullable instancetype)fromText:(NSString*)text error:(NSError**)error;
Створити PDF із Markdown, HTML або звичайного тексту.
+ (nullable instancetype)fromImage:(NSString*)path error:(NSError**)error;
+ (nullable instancetype)fromImageBytes:(NSData*)data error:(NSError**)error;
Створити односторінковий PDF, що обгортає файл зображення або байти зображення в пам’яті.
+ (nullable instancetype)fromHtml:(NSString*)html css:(NSString*)css fontBytes:(nullable NSData*)fontBytes error:(NSError**)error;
Створити PDF з HTML + CSS з одним додатковим вбудованим шрифтом.
+ (nullable instancetype)fromHtml:(NSString*)html css:(NSString*)css families:(NSArray<NSString*>*)families fonts:(NSArray<NSData*>*)fonts error:(NSError**)error;
Створити PDF з HTML + CSS з каскадом кількох шрифтів (паралельні масиви families/fonts).
Методи
- (BOOL)saveToPath:(NSString*)path error:(NSError**)error;
- (nullable NSData*)toBytesWithError:(NSError**)error;
- (NSInteger)pageCountError:(NSError**)error;
- (void)close;
Зберегти за шляхом, отримати байти PDF, отримати кількість сторінок (-1 у разі помилки) або звільнити нативний дескриптор.
POXDocumentEditor
PDF, відкритий для редагування на місці. Операції з кодом статусу проявляють збої як NSError; запити is* повертають BOOL.
Відкриття
+ (nullable instancetype)openEditor:(NSString*)path error:(NSError**)error;
+ (nullable instancetype)openFromBytes:(NSData*)data error:(NSError**)error;
Відкрити PDF для редагування за шляхом або з байтів у пам’яті.
Стан і метадані
- (NSInteger)pageCountError:(NSError**)error;
- (POXVersion)version;
- (BOOL)isModified;
- (nullable NSString*)sourcePathError:(NSError**)error;
Кількість сторінок, версія PDF, прапорець очікуваних змін і вихідний шлях редактора.
- (nullable NSString*)producerError:(NSError**)error;
- (BOOL)setProducer:(NSString*)value error:(NSError**)error;
- (nullable NSString*)creationDateError:(NSError**)error;
- (BOOL)setCreationDate:(NSString*)date error:(NSError**)error;
Отримати/задати /Info.Producer та /Info.CreationDate документа.
Операції зі сторінками
- (BOOL)deletePage:(NSInteger)page error:(NSError**)error;
- (BOOL)movePageFrom:(NSInteger)from to:(NSInteger)to error:(NSError**)error;
Видалити або переставити сторінки.
- (BOOL)rotatePage:(NSInteger)page byDegrees:(NSInteger)degrees error:(NSError**)error;
- (BOOL)rotateAllPages:(NSInteger)degrees error:(NSError**)error;
- (BOOL)setPageRotation:(NSInteger)page degrees:(NSInteger)degrees error:(NSError**)error;
- (NSInteger)pageRotation:(NSInteger)page error:(NSError**)error;
Повернути одну сторінку, усі сторінки, задати абсолютний поворот або прочитати поточний поворот.
- (BOOL)cropMarginsLeft:(float)left right:(float)right top:(float)top bottom:(float)bottom error:(NSError**)error;
Обрізати всі сторінки за полями.
- (POXBbox)pageCropBox:(NSInteger)page error:(NSError**)error;
- (BOOL)setPageCropBox:(NSInteger)page box:(POXBbox)box error:(NSError**)error;
- (POXBbox)pageMediaBox:(NSInteger)page error:(NSError**)error;
- (BOOL)setPageMediaBox:(NSInteger)page box:(POXBbox)box error:(NSError**)error;
Отримати/задати CropBox та MediaBox сторінки.
Редагування (вилучення інформації)
- (BOOL)applyAllRedactions:(NSError**)error;
- (BOOL)applyPageRedactions:(NSInteger)page error:(NSError**)error;
- (BOOL)isPageMarkedForRedaction:(NSInteger)page;
- (BOOL)unmarkPageForRedaction:(NSInteger)page error:(NSError**)error;
Застосувати поставлені в чергу вилучення (всі або посторінково), перевірити та зняти позначку стану вилучення.
- (BOOL)redactionAddPage:(NSInteger)page x1:(double)x1 y1:(double)y1 x2:(double)x2 y2:(double)y2 r:(double)r g:(double)g b:(double)b error:(NSError**)error;
- (int32_t)redactionCount:(NSInteger)page error:(NSError**)error;
- (int32_t)redactionApplyScrubMetadata:(BOOL)scrubMetadata r:(double)r g:(double)g b:(double)b error:(NSError**)error;
- (int32_t)redactionScrubMetadataWithError:(NSError**)error;
Геометричне вилучення: поставити в чергу прямокутник заливки, порахувати поставлені в чергу прямокутники, деструктивно застосувати (повертаючи кількість видалених гліфів) та окреме очищення метаданих/JS/вбудованих файлів.
Стирання областей
- (BOOL)eraseRegion:(NSInteger)page x:(float)x y:(float)y w:(float)w h:(float)h error:(NSError**)error;
- (BOOL)eraseRegions:(NSInteger)page rects:(NSArray<NSValue*>*)rects error:(NSError**)error;
- (BOOL)clearEraseRegions:(NSInteger)page error:(NSError**)error;
Стерти один прямокутник, кілька прямокутників зі значеннями POXBbox, або очистити очікувані стирання.
Сплощення
- (BOOL)flattenForms:(NSError**)error;
- (BOOL)flattenFormsOnPage:(NSInteger)page error:(NSError**)error;
- (BOOL)flattenAnnotations:(NSInteger)page error:(NSError**)error;
- (BOOL)flattenAllAnnotations:(NSError**)error;
Сплощити всі форми, форми на сторінці, анотації на сторінці або всі анотації.
- (NSInteger)flattenWarningsCount;
- (nullable NSString*)flattenWarning:(NSInteger)index error:(NSError**)error;
- (BOOL)isPageMarkedForFlatten:(NSInteger)page;
- (BOOL)unmarkPageForFlatten:(NSInteger)page error:(NSError**)error;
Переглянути попередження сплощення та позначку сплощення для сторінки.
Форми
- (BOOL)setFormField:(NSString*)name value:(NSString*)value error:(NSError**)error;
- (BOOL)importFdfBytes:(NSData*)data error:(NSError**)error;
- (BOOL)importXfdfBytes:(NSData*)data error:(NSError**)error;
Задати значення поля форми за назвою; імпортувати сирі байти FDF / XFDF.
Злиття / конвертація / вбудовування
- (BOOL)mergeFrom:(NSString*)sourcePath error:(NSError**)error;
- (BOOL)mergeFromBytes:(NSData*)data error:(NSError**)error;
- (BOOL)convertToPdfA:(NSInteger)level error:(NSError**)error;
- (BOOL)embedFile:(NSString*)name data:(NSData*)data error:(NSError**)error;
- (nullable NSData*)extractPagesToBytes:(NSArray<NSNumber*>*)pages error:(NSError**)error;
Об’єднати інший PDF (за шляхом або байтами), конвертувати в PDF/A на місці, прикріпити вбудований файл, або видобути підмножину сторінок у новий PDF у пам’яті.
Штрихкоди
- (BOOL)addBarcode:(POXBarcode*)barcode page:(NSInteger)page x:(float)x y:(float)y width:(float)width height:(float)height error:(NSError**)error;
Розмістити згенерований штрихкод на сторінці. Див. POXBarcode.
Збереження
- (BOOL)saveToPath:(NSString*)path error:(NSError**)error;
- (nullable NSData*)saveToBytesWithError:(NSError**)error;
- (nullable NSData*)saveToBytesCompress:(BOOL)compress garbageCollect:(BOOL)garbageCollect linearize:(BOOL)linearize error:(NSError**)error;
- (BOOL)saveEncryptedToPath:(NSString*)path userPassword:(NSString*)userPassword ownerPassword:(NSString*)ownerPassword error:(NSError**)error;
- (nullable NSData*)saveEncryptedToBytesWithUserPassword:(NSString*)userPassword ownerPassword:(NSString*)ownerPassword error:(NSError**)error;
- (void)close;
Зберегти за шляхом або в байти (з додатковими стисненням/збиранням сміття/лінеаризацією), зберегти AES-зашифрованим за шляхом або в байти, або звільнити нативний дескриптор.
POXDocumentBuilder
Гнучкий (fluent) будівник, що створює абсолютно новий PDF.
+ (nullable instancetype)createWithError:(NSError**)error;
Створити новий, порожній будівник документа.
Метадані
- (BOOL)setTitle:(NSString*)title error:(NSError**)error;
- (BOOL)setAuthor:(NSString*)author error:(NSError**)error;
- (BOOL)setSubject:(NSString*)subject error:(NSError**)error;
- (BOOL)setKeywords:(NSString*)keywords error:(NSError**)error;
- (BOOL)setCreator:(NSString*)creator error:(NSError**)error;
- (BOOL)onOpen:(NSString*)script error:(NSError**)error;
Задати метадані документа та дію JavaScript при відкритті документа.
Тегований / доступний PDF
- (BOOL)taggedPdfUa1:(NSError**)error;
- (BOOL)language:(NSString*)lang error:(NSError**)error;
- (BOOL)roleMapCustom:(NSString*)custom standard:(NSString*)standard error:(NSError**)error;
Увімкнути тегування PDF/UA-1, задати мову документа та додати запис відображення нестандартної ролі на стандартну.
Шрифти
- (BOOL)registerEmbeddedFont:(NSString*)name font:(POXEmbeddedFont*)font error:(NSError**)error;
Зареєструвати шрифт TTF/OTF під назвою name (передає право власності на нативний дескриптор шрифту). Див. POXEmbeddedFont.
Сторінки
- (nullable POXPageBuilder*)a4PageWithError:(NSError**)error;
- (nullable POXPageBuilder*)letterPageWithError:(NSError**)error;
- (nullable POXPageBuilder*)pageWithWidth:(float)width height:(float)height error:(NSError**)error;
Розпочати сторінку A4, US-Letter або довільного розміру. Див. POXPageBuilder.
Збірка / збереження
- (nullable NSData*)buildWithError:(NSError**)error;
- (BOOL)saveToPath:(NSString*)path error:(NSError**)error;
- (BOOL)saveEncryptedToPath:(NSString*)path userPassword:(NSString*)userPassword ownerPassword:(NSString*)ownerPassword error:(NSError**)error;
- (nullable NSData*)toBytesEncryptedWithUserPassword:(NSString*)userPassword ownerPassword:(NSString*)ownerPassword error:(NSError**)error;
- (void)close;
Зібрати байти PDF, зберегти за шляхом, зберегти AES-зашифрованим за шляхом або в байти, або звільнити нативний дескриптор.
POXPageBuilder
Сторінка, що будується всередині POXDocumentBuilder. Більшість операцій повертають BOOL і ланцюжком викликаються через батьківський об’єкт. Викличте -done:, щоб зафіксувати сторінку, або -close, щоб відкинути її.
Текстова верстка
- (BOOL)font:(NSString*)name size:(float)size error:(NSError**)error;
- (BOOL)at:(float)x y:(float)y error:(NSError**)error;
- (BOOL)text:(NSString*)text error:(NSError**)error;
- (BOOL)heading:(uint8_t)level text:(NSString*)text error:(NSError**)error;
- (BOOL)paragraph:(NSString*)text error:(NSError**)error;
- (BOOL)space:(float)points error:(NSError**)error;
- (BOOL)horizontalRule:(NSError**)error;
- (BOOL)newline:(NSError**)error;
- (BOOL)newPageSameSize:(NSError**)error;
Задати шрифт, позицію курсора та вивести текст, заголовки, абзаци, вертикальний пробіл, горизонтальну лінію, новий рядок або нову сторінку того ж розміру.
- (BOOL)textInRectX:(float)x y:(float)y w:(float)w h:(float)h text:(NSString*)text align:(int32_t)align error:(NSError**)error;
Розмістити обгорнутий, вирівняний текст усередині прямокутника.
Вбудовані фрагменти тексту
- (BOOL)inlineText:(NSString*)text error:(NSError**)error;
- (BOOL)inlineBold:(NSString*)text error:(NSError**)error;
- (BOOL)inlineItalic:(NSString*)text error:(NSError**)error;
- (BOOL)inlineColorR:(float)r g:(float)g b:(float)b text:(NSString*)text error:(NSError**)error;
Додати вбудовані текстові фрагменти (звичайний, жирний, курсив або кольоровий RGB).
Виноски / колонки
- (BOOL)footnoteRefMark:(NSString*)refMark noteText:(NSString*)noteText error:(NSError**)error;
- (BOOL)columnsCount:(uint32_t)columnCount gapPt:(float)gapPt text:(NSString*)text error:(NSError**)error;
Додати посилання на виноску + текст виноски, або розташувати текст у кількох колонках.
Посилання та дії
- (BOOL)linkUrl:(NSString*)url error:(NSError**)error;
- (BOOL)linkPage:(NSInteger)page error:(NSError**)error;
- (BOOL)linkNamed:(NSString*)destination error:(NSError**)error;
- (BOOL)linkJavascript:(NSString*)script error:(NSError**)error;
- (BOOL)onOpen:(NSString*)script error:(NSError**)error;
- (BOOL)onClose:(NSString*)script error:(NSError**)error;
Додати посилання на URL / сторінку / назване місце призначення / JavaScript та дії при відкритті/закритті сторінки.
JS-дії полів форми
- (BOOL)fieldKeystroke:(NSString*)script error:(NSError**)error;
- (BOOL)fieldFormat:(NSString*)script error:(NSError**)error;
- (BOOL)fieldValidate:(NSString*)script error:(NSError**)error;
- (BOOL)fieldCalculate:(NSString*)script error:(NSError**)error;
Прикріпити JavaScript для натискання клавіш / форматування / валідації / обчислення до останнього доданого поля.
Текстові оформлення
- (BOOL)highlightR:(float)r g:(float)g b:(float)b error:(NSError**)error;
- (BOOL)underlineR:(float)r g:(float)g b:(float)b error:(NSError**)error;
- (BOOL)strikeoutR:(float)r g:(float)g b:(float)b error:(NSError**)error;
- (BOOL)squigglyR:(float)r g:(float)g b:(float)b error:(NSError**)error;
Застосувати виділення, підкреслення, закреслення або хвилясте підкреслення до попереднього текстового елемента.
Анотації
- (BOOL)stickyNote:(NSString*)text error:(NSError**)error;
- (BOOL)stickyNoteAt:(float)x y:(float)y text:(NSString*)text error:(NSError**)error;
- (BOOL)watermark:(NSString*)text error:(NSError**)error;
- (BOOL)watermarkConfidential:(NSError**)error;
- (BOOL)watermarkDraft:(NSError**)error;
- (BOOL)stamp:(NSString*)typeName error:(NSError**)error;
- (BOOL)freetextAtX:(float)x y:(float)y w:(float)w h:(float)h text:(NSString*)text error:(NSError**)error;
Додати нотатки-стікери, водяні знаки (довільні / CONFIDENTIAL / DRAFT), названий штамп та довільні текстові анотації.
Поля форми
- (BOOL)textFieldName:(NSString*)name x:(float)x y:(float)y w:(float)w h:(float)h defaultValue:(nullable NSString*)defaultValue error:(NSError**)error;
- (BOOL)checkboxName:(NSString*)name x:(float)x y:(float)y w:(float)w h:(float)h checked:(BOOL)checked error:(NSError**)error;
- (BOOL)comboBoxName:(NSString*)name x:(float)x y:(float)y w:(float)w h:(float)h options:(NSArray<NSString*>*)options selected:(nullable NSString*)selected error:(NSError**)error;
- (BOOL)radioGroupName:(NSString*)name values:(NSArray<NSString*>*)values xs:(NSArray<NSNumber*>*)xs ys:(NSArray<NSNumber*>*)ys ws:(NSArray<NSNumber*>*)ws hs:(NSArray<NSNumber*>*)hs selected:(nullable NSString*)selected error:(NSError**)error;
- (BOOL)pushButtonName:(NSString*)name x:(float)x y:(float)y w:(float)w h:(float)h caption:(NSString*)caption error:(NSError**)error;
- (BOOL)signatureFieldName:(NSString*)name x:(float)x y:(float)y w:(float)w h:(float)h error:(NSError**)error;
Додати текстові поля, прапорці, спадні списки, групи перемикачів, кнопки та поля підпису.
Штрихкоди
- (BOOL)barcode1d:(int32_t)barcodeType data:(NSString*)data x:(float)x y:(float)y w:(float)w h:(float)h error:(NSError**)error;
- (BOOL)barcodeQrData:(NSString*)data x:(float)x y:(float)y size:(float)size error:(NSError**)error;
Намалювати 1D-штрихкод або QR-код безпосередньо на сторінці.
Зображення
- (BOOL)image:(NSData*)bytes x:(float)x y:(float)y w:(float)w h:(float)h error:(NSError**)error;
- (BOOL)imageWithAlt:(NSData*)bytes x:(float)x y:(float)y w:(float)w h:(float)h altText:(NSString*)altText error:(NSError**)error;
- (BOOL)imageArtifact:(NSData*)bytes x:(float)x y:(float)y w:(float)w h:(float)h error:(NSError**)error;
Розмістити зображення, зображення з альтернативним текстом для доступності, або артефактне (декоративне) зображення.
Векторна графіка
- (BOOL)rectX:(float)x y:(float)y w:(float)w h:(float)h error:(NSError**)error;
- (BOOL)filledRectX:(float)x y:(float)y w:(float)w h:(float)h r:(float)r g:(float)g b:(float)b error:(NSError**)error;
- (BOOL)lineX1:(float)x1 y1:(float)y1 x2:(float)x2 y2:(float)y2 error:(NSError**)error;
- (BOOL)strokeRectX:(float)x y:(float)y w:(float)w h:(float)h width:(float)width r:(float)r g:(float)g b:(float)b error:(NSError**)error;
- (BOOL)strokeLineX1:(float)x1 y1:(float)y1 x2:(float)x2 y2:(float)y2 width:(float)width r:(float)r g:(float)g b:(float)b error:(NSError**)error;
- (BOOL)strokeRectDashedX:(float)x y:(float)y w:(float)w h:(float)h width:(float)width r:(float)r g:(float)g b:(float)b dashArray:(NSArray<NSNumber*>*)dashArray phase:(float)phase error:(NSError**)error;
- (BOOL)strokeLineDashedX1:(float)x1 y1:(float)y1 x2:(float)x2 y2:(float)y2 width:(float)width r:(float)r g:(float)g b:(float)b dashArray:(NSArray<NSNumber*>*)dashArray phase:(float)phase error:(NSError**)error;
Намалювати прямокутники (контур / заливка / обведення / пунктир) та лінії (звичайні / обведені / пунктирні).
Таблиці
- (BOOL)tableColumns:(NSArray<NSNumber*>*)widths aligns:(NSArray<NSNumber*>*)aligns rows:(NSArray<NSArray<NSString*>*>*)rows hasHeader:(BOOL)hasHeader error:(NSError**)error;
Відрендерити повну таблицю з шириною колонок, вирівнюванням і рядками.
Потокові таблиці
- (BOOL)streamingTableBeginHeaders:(NSArray<NSString*>*)headers widths:(NSArray<NSNumber*>*)widths aligns:(NSArray<NSNumber*>*)aligns repeatHeader:(BOOL)repeatHeader error:(NSError**)error;
- (BOOL)streamingTableBeginV2Headers:(NSArray<NSString*>*)headers widths:(NSArray<NSNumber*>*)widths aligns:(NSArray<NSNumber*>*)aligns repeatHeader:(BOOL)repeatHeader mode:(int32_t)mode sampleRows:(NSInteger)sampleRows minColWidthPt:(float)minColWidthPt maxColWidthPt:(float)maxColWidthPt maxRowspan:(NSInteger)maxRowspan error:(NSError**)error;
- (BOOL)streamingTableSetBatchSize:(NSInteger)batchSize error:(NSError**)error;
- (NSInteger)streamingTablePendingRowCount;
- (NSInteger)streamingTableBatchCount;
- (BOOL)streamingTableFlush:(NSError**)error;
- (BOOL)streamingTablePushRow:(NSArray<NSString*>*)cells error:(NSError**)error;
- (BOOL)streamingTablePushRowV2:(NSArray<NSString*>*)cells rowspans:(nullable NSArray<NSNumber*>*)rowspans error:(NSError**)error;
- (BOOL)streamingTableFinish:(NSError**)error;
Розпочати потокову таблицю (базову або з автоматичною версткою V2), налаштувати розмір пакета, додати рядки (з опціональним об’єднанням рядків), скинути буфер і завершити — для таблиць, надто великих, щоб матеріалізувати їх одразу.
Фіксація
- (BOOL)done:(NSError**)error;
- (void)close;
Зафіксувати сторінку в батьківському будівнику або відкинути її.
POXEmbeddedFont
Шрифт TTF/OTF, завантажений для вбудовування. Право власності передається будівнику після успішного виклику registerEmbeddedFont:font:.
+ (nullable instancetype)fromPath:(NSString*)path error:(NSError**)error;
+ (nullable instancetype)fromBytes:(NSData*)data name:(nullable NSString*)name error:(NSError**)error;
- (void)close;
Завантажити шрифт за шляхом або з байтів (name може бути nil, щоб використати PostScript-назву), або звільнити нативний дескриптор.
POXBarcode
Згенероване зображення штрихкоду / QR-коду.
+ (nullable instancetype)generateQrCode:(NSString*)data errorCorrection:(int32_t)errorCorrection sizePx:(int32_t)sizePx error:(NSError**)error;
+ (nullable instancetype)generateBarcode:(NSString*)data format:(int32_t)format sizePx:(int32_t)sizePx error:(NSError**)error;
Згенерувати QR-код (з рівнем корекції помилок) або 1D/2D-штрихкод заданого format.
- (nullable NSString*)dataError:(NSError**)error;
- (int32_t)formatError:(NSError**)error;
- (float)confidenceError:(NSError**)error;
- (nullable NSData*)imagePngWithSizePx:(int32_t)sizePx error:(NSError**)error;
- (nullable NSString*)svgWithSizePx:(int32_t)sizePx error:(NSError**)error;
- (void)close;
Прочитати корисне навантаження, код формату й впевненість розпізнавання; закодувати в PNG-байти або рядок SVG; або звільнити нативний дескриптор.
POXOcrEngine
Рушій OCR, що спирається на файли моделей виявлення/розпізнавання/словника.
+ (nullable instancetype)createWithDetModelPath:(NSString*)detModelPath recModelPath:(NSString*)recModelPath dictPath:(NSString*)dictPath error:(NSError**)error;
- (nullable void*)POX_engineHandle;
- (void)close;
Створити рушій зі шляхів до моделей і словника, надати сирий дескриптор рушія для ocrExtractText:engine:error:, або звільнити нативний дескриптор.
POXElementList
Список елементів макета для сторінки.
- (int32_t)count;
- (nullable NSString*)typeAtIndex:(int32_t)index error:(NSError**)error;
- (nullable NSString*)textAtIndex:(int32_t)index error:(NSError**)error;
- (POXBbox)rectAtIndex:(int32_t)index error:(NSError**)error;
- (nullable NSString*)toJsonWithError:(NSError**)error;
- (void)close;
Порахувати елементи; прочитати тип, текст та обмежувальний прямокутник кожного елемента; серіалізувати весь список у JSON; або звільнити нативний дескриптор.
POXRenderer
Окремий дескриптор рендерера (незалежний від документа).
+ (nullable instancetype)createWithDpi:(int32_t)dpi format:(int32_t)format quality:(int32_t)quality antiAlias:(BOOL)antiAlias error:(NSError**)error;
- (void)close;
Створити налаштований рендерер (DPI, формат, якість, згладжування), або звільнити нативний дескриптор.
Цифрові підписи та PKI
POXCertificate
Завантажений сертифікат для підписування / перевірки.
+ (nullable instancetype)loadFromBytes:(NSData*)data password:(NSString*)password error:(NSError**)error;
+ (nullable instancetype)loadFromPemCert:(NSString*)certPem keyPem:(NSString*)keyPem error:(NSError**)error;
Завантажити облікові дані з байтів PKCS#12 + пароля, або з PEM-сертифіката + закритого ключа.
- (nullable NSString*)subjectError:(NSError**)error;
- (nullable NSString*)issuerError:(NSError**)error;
- (nullable NSString*)serialError:(NSError**)error;
- (BOOL)validityNotBefore:(int64_t*)notBefore notAfter:(int64_t*)notAfter error:(NSError**)error;
- (int32_t)isValidError:(NSError**)error;
- (void)close;
Прочитати суб’єкта / видавця / серійний номер, вікно дійсності (у секундах Unix epoch), поточну дійсність (1/0/-1), або звільнити нативний дескриптор.
POXSignatureInfo
Інформація про підпис, прочитана з документа.
- (nullable NSString*)signerNameError:(NSError**)error;
- (nullable NSString*)signingReasonError:(NSError**)error;
- (nullable NSString*)signingLocationError:(NSError**)error;
- (int64_t)signingTimeError:(NSError**)error;
- (nullable POXCertificate*)certificateError:(NSError**)error;
- (int32_t)padesLevelError:(NSError**)error;
- (BOOL)hasTimestampError:(NSError**)error;
- (nullable POXTimestamp*)timestampError:(NSError**)error;
- (BOOL)addTimestamp:(POXTimestamp*)timestamp error:(NSError**)error;
- (int32_t)verifyError:(NSError**)error;
- (int32_t)verifyDetached:(NSData*)pdf error:(NSError**)error;
- (void)close;
Прочитати підписувача/причину/місце/час, сертифікат підписувача, базовий рівень PAdES і позначку часу; прикріпити позначку часу; виконати криптографічну перевірку (verifyError:) або наскрізну перевірку проти повних байтів PDF (verifyDetached:).
POXTimestamp
Розпарсений токен позначки часу RFC 3161.
+ (nullable instancetype)parse:(NSData*)data error:(NSError**)error;
- (nullable NSData*)tokenError:(NSError**)error;
- (nullable NSData*)messageImprintError:(NSError**)error;
- (int64_t)timeError:(NSError**)error;
- (nullable NSString*)serialError:(NSError**)error;
- (nullable NSString*)tsaNameError:(NSError**)error;
- (nullable NSString*)policyOidError:(NSError**)error;
- (int32_t)hashAlgorithmError:(NSError**)error;
- (BOOL)verifyError:(NSError**)error;
- (void)close;
Розпарсити DER-токен; прочитати сирі байти токена, відбиток повідомлення, час, серійний номер, назву TSA, OID політики та алгоритм хешування; перевірити; або звільнити нативний дескриптор.
POXTsaClient
Клієнт TSA (RFC 3161).
+ (nullable instancetype)createWithUrl:(NSString*)url username:(nullable NSString*)username password:(nullable NSString*)password timeout:(int32_t)timeout hashAlgo:(int32_t)hashAlgo useNonce:(BOOL)useNonce certReq:(BOOL)certReq error:(NSError**)error;
- (nullable POXTimestamp*)requestTimestamp:(NSData*)data error:(NSError**)error;
- (nullable POXTimestamp*)requestTimestampHash:(NSData*)hash hashAlgo:(int32_t)hashAlgo error:(NSError**)error;
- (void)close;
Створити клієнта, запросити позначку часу для даних або попередньо обчисленого хешу, або звільнити нативний дескриптор.
POXDss
Document Security Store, прочитаний з документа.
- (int32_t)certCount;
- (int32_t)crlCount;
- (int32_t)ocspCount;
- (int32_t)vriCount;
- (nullable NSData*)certAtIndex:(int32_t)index error:(NSError**)error;
- (nullable NSData*)crlAtIndex:(int32_t)index error:(NSError**)error;
- (nullable NSData*)ocspAtIndex:(int32_t)index error:(NSError**)error;
- (void)close;
Порахувати й прочитати DER-сертифікати, CRL та відповіді OCSP (а також кількість VRI) у DSS.
POXSigning
Точки входу верхнього рівня для підписування та налаштування рівня логування бібліотеки (методи класу).
+ (nullable NSData*)signBytes:(NSData*)pdf certificate:(POXCertificate*)certificate reason:(nullable NSString*)reason location:(nullable NSString*)location error:(NSError**)error;
Підписати сирі байти PDF базовим (не-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;
Підписати сирі байти PDF на базовому рівні PAdES з матеріалом відкликання.
+ (nullable NSData*)signBytesPadesOpts:(NSData*)pdf options:(POXPadesSignOptions*)options error:(NSError**)error;
Підписати сирі байти PDF, використовуючи конфігураційний об’єкт POXPadesSignOptions.
+ (void)setLogLevel:(int32_t)level;
+ (int32_t)logLevel;
Задати / отримати глобальний рівень логування (0=Off … 5=Trace).
POXPadesSignOptions
Параметри підписування PAdES (варіант з покажчиком на структуру). Усі поля — властивості:
| Властивість | Тип | Опис |
|---|---|---|
certificate |
POXCertificate* |
Сертифікат підписування |
level |
int32_t |
Базовий рівень PAdES (0=B-B, 1=B-T, 2=B-LT) |
tsaUrl |
NSString* |
URL TSA (може бути nil) |
reason |
NSString* |
Причина підписування (може бути nil) |
location |
NSString* |
Місце підписування (може бути nil) |
certs / crls / ocsps |
NSArray<NSData*>* |
DER-кодований матеріал відкликання (B-LT) |
Типи результатів перевірки відповідності
POXPdfAResults
- (BOOL)isCompliantError:(NSError**)error;
- (int32_t)errorCount;
- (int32_t)warningCount;
- (NSArray<NSString*>*)errors;
- (void)close;
Результат перевірки PDF/A: прапорець відповідності, кількість помилок/попереджень, повідомлення про помилки.
POXUaResults
- (BOOL)isAccessibleError:(NSError**)error;
- (int32_t)errorCount;
- (int32_t)warningCount;
- (NSArray<NSString*>*)errors;
- (NSArray<NSString*>*)warnings;
- (BOOL)stats:(POXUaStats*)stats error:(NSError**)error;
- (void)close;
Результат перевірки доступності PDF/UA: прапорець доступності, кількість і повідомлення помилок/попереджень та структура POXUaStats з кількістю елементів.
POXPdfXResults
- (BOOL)isCompliantError:(NSError**)error;
- (int32_t)errorCount;
- (NSArray<NSString*>*)errors;
- (void)close;
Результат перевірки PDF/X: прапорець відповідності, кількість помилок, повідомлення про помилки.
Утиліти верхнього рівня
POXTools
+ (nullable NSData*)merge:(NSArray<NSString*>*)paths error:(NSError**)error;
+ (nullable NSData*)addTimestamp:(NSData*)pdfData sigIndex:(int32_t)sigIndex tsaUrl:(NSString*)tsaUrl error:(NSError**)error;
Об’єднати PDF за заданими шляхами в один PDF у пам’яті; додати документну позначку часу RFC 3161 до підпису.
POXCrypto
+ (nullable NSString*)activeProviderWithError:(NSError**)error;
+ (nullable NSString*)cbomWithError:(NSError**)error;
+ (nullable NSString*)inventoryWithError:(NSError**)error;
+ (nullable NSString*)policyWithError:(NSError**)error;
+ (int32_t)fipsAvailable;
+ (int32_t)useFips;
+ (int32_t)setPolicy:(NSString*)spec;
Інтроспекція криптопровайдера (активний провайдер, CycloneDX CBOM, інвентар, політика) і керування політикою FIPS.
POXModels
+ (nullable NSString*)manifestWithError:(NSError**)error;
+ (int32_t)prefetchAvailable;
+ (nullable NSString*)prefetchModels:(NSString*)languagesCsv error:(NSError**)error;
Прочитати вбудований маніфест моделей, перевірити доступність попереднього завантаження та попередньо завантажити ML-моделі для заданих мовних кодів.
POXConfig
+ (int64_t)setMaxOpsPerStream:(int64_t)limit;
+ (int32_t)setPreserveUnmappedGlyphs:(int32_t)preserve;
Глобальні для процесу налаштування: обмежити кількість операторів, що декодуються на потік вмісту, та перемикач збереження невідображених гліфів у видобутому тексті. Кожен метод повертає попереднє значення.
Типи значень
Ці доступні лише для читання типи NSObject повертаються методами видобування вище.
POXChar
| Властивість | Тип | Опис |
|---|---|---|
character |
uint32_t |
Кодова точка Unicode |
bbox |
POXBbox |
Обмежувальний прямокутник |
fontName |
NSString* |
PostScript-назва шрифту |
fontSize |
float |
Розмір шрифту в точках |
POXWord
| Властивість | Тип | Опис |
|---|---|---|
text |
NSString* |
Текст слова |
bbox |
POXBbox |
Обмежувальний прямокутник |
fontName |
NSString* |
PostScript-назва шрифту |
fontSize |
float |
Розмір шрифту в точках |
bold |
BOOL |
Чи є слово жирним |
POXTextLine
| Властивість | Тип | Опис |
|---|---|---|
text |
NSString* |
Текст рядка |
bbox |
POXBbox |
Обмежувальний прямокутник |
wordCount |
NSInteger |
Кількість слів у рядку |
- (nullable NSString*)cellTextAtRow:(NSInteger)row col:(NSInteger)col; // POXTable
POXTable
| Властивість / метод | Тип | Опис |
|---|---|---|
rowCount |
NSInteger |
Кількість рядків |
colCount |
NSInteger |
Кількість стовпців |
hasHeader |
BOOL |
Чи має таблиця рядок заголовка |
cellTextAtRow:col: |
NSString* |
Текст комірки за (row, col) (nil, якщо поза межами) |
POXFont
| Властивість | Тип | Опис |
|---|---|---|
name |
NSString* |
Назва шрифту |
type |
NSString* |
Тип шрифту (напр., TrueType, Type1) |
encoding |
NSString* |
Кодування шрифту |
embedded |
BOOL |
Чи вбудований шрифт |
subset |
BOOL |
Чи є шрифт підмножиною (subset) |
size |
float |
Номінальний розмір у точках (0, якщо невідомо) |
POXImage
| Властивість | Тип | Опис |
|---|---|---|
width / height |
NSInteger |
Розміри в пікселях |
bitsPerComponent |
NSInteger |
Біт на колірний компонент |
format |
NSString* |
Формат зображення |
colorspace |
NSString* |
Колірний простір |
data |
NSData* |
Закодовані байти зображення |
POXAnnotation
| Властивість | Тип | Опис |
|---|---|---|
type / subtype |
NSString* |
Тип і підтип анотації |
content / author |
NSString* |
Вміст та автор |
rect |
POXBbox |
Прямокутник анотації |
borderWidth |
float |
Ширина рамки |
color |
uint32_t |
Колір, упакований як 0xAARRGGBB (0, якщо відсутній) |
creationDate / modificationDate |
int64_t |
Секунди Unix epoch (0, якщо відсутні) |
hidden / markedDeleted / printable / readOnly |
BOOL |
Прапорці |
linkUri |
NSString* |
Цільовий URI для анотацій Link (може бути nil) |
iconName |
NSString* |
Назва іконки для анотацій Text/note (може бути nil) |
quadPoints |
NSArray<NSArray<NSNumber*>*>* |
Точки квадрата для анотацій Highlight |
POXFormField
| Властивість | Тип | Опис |
|---|---|---|
name |
NSString* |
Назва поля |
value |
NSString* |
Поточне значення |
type |
NSString* |
Тип поля |
readonly |
BOOL |
Чи доступне поле лише для читання |
required |
BOOL |
Чи є поле обов’язковим |
POXPath
| Властивість | Тип | Опис |
|---|---|---|
bbox |
POXBbox |
Обмежувальний прямокутник |
strokeWidth |
float |
Ширина обведення |
hasStroke / hasFill |
BOOL |
Чи має шлях обведення / заливку |
operationCount |
NSInteger |
Кількість операцій шляху |
POXSearchResult
| Властивість | Тип | Опис |
|---|---|---|
text |
NSString* |
Знайдений текст |
page |
NSInteger |
Індекс сторінки з нуля |
bbox |
POXBbox |
Обмежувальний прямокутник збігу |
POXRenderedImage
| Властивість / метод | Тип | Опис |
|---|---|---|
width / height |
NSInteger |
Розміри в пікселях |
data |
NSData* |
Закодовані байти зображення (напр., PNG) |
saveToPath:error: |
BOOL |
Записати відрендероване зображення у файл |
close |
void |
Звільнити нативний дескриптор |
Обробка помилок
Невдалі операції повертають nil / NO / від’ємний статус і заповнюють вихідний параметр NSError** помилкою в домені POXErrorDomain:
NSError* error = nil;
POXDocument* doc = [POXDocument openPath:@"input.pdf" error:&error];
if (!doc) {
NSLog(@"Open failed: %@", error.localizedDescription);
return;
}
NSString* text = [doc extractText:0 error:&error];
if (!text) {
NSLog(@"Extraction failed: %@", error.localizedDescription);
}
[doc close];
Повний приклад
#import <PdfOxide/POXPdfOxide.h>
NSError* error = nil;
// --- Extraction ---
POXDocument* doc = [POXDocument openPath:@"input.pdf" error:&error];
NSInteger pages = [doc pageCountError:&error];
for (NSInteger i = 0; i < pages; i++) {
NSString* md = [doc toMarkdown:i error:&error];
NSLog(@"Page %ld: %lu chars", (long)i, (unsigned long)md.length);
}
// Render page 0 to PNG
POXRenderedImage* img = [doc renderPage:0 format:0 error:&error];
[img saveToPath:@"page0.png" error:&error];
[doc close];
// --- Creation ---
POXDocumentBuilder* builder = [POXDocumentBuilder createWithError:&error];
[builder setTitle:@"Report" error:&error];
POXPageBuilder* page = [builder letterPageWithError:&error];
[page heading:1 text:@"Report" error:&error];
[page paragraph:@"Generated by PDF Oxide." error:&error];
[page done:&error];
[builder saveToPath:@"report.pdf" error:&error];
// --- Editing ---
POXDocumentEditor* editor = [POXDocumentEditor openEditor:@"document.pdf" error:&error];
[editor rotateAllPages:90 error:&error];
[editor setFormField:@"name" value:@"John Doe" error:&error];
[editor saveToPath:@"output.pdf" error:&error];
[editor close];
Other Language Bindings
PDF Oxide надає нативні прив’язки для всіх основних екосистем: Rust, Python, Node.js, WASM, C#, Golang, Java, PHP, Ruby, C++, Swift, Kotlin, Dart, R, Julia, Zig, Scala, Clojure та Elixir.
Наступні кроки
- Типи та переліки — усі спільні типи та переліки
- Довідник API сторінки — узгоджена ітерація по сторінках для всіх прив’язок
- Початок роботи з Objective-C — посібник