Розширені методи робочого процесу THotPDF

Ця сторінка об'єднує розширені public методи THotPDF, що підтримують ремонт завантажених документів, перезапис через файл, parsing xref stream, конформний вивід і shaping workflows

Для звичайного коду застосунків надавайте перевагу сторінкам, орієнтованим на завдання, таким як методи операцій зі сторінками, методи завантажених полів форми, utility methods і ShapingFeatures

Розв'язання завантажених документів

Метод Використання
DoPageOperationProgressНадсилає прогрес виконання операцій зі сторінками через налаштовану подію прогресу
ResolveLoadedObjectРозв'язує посилання на завантажений об'єкт до об'єкта, який операції зі сторінками можуть перевіряти або копіювати
ResolveLoadedDictionaryРозв'язує посилання на завантажений об'єкт і повертає його як словник, якщо це можливо
ResolveLoadedArrayРозв'язує посилання на завантажений об'єкт і повертає його як масив, якщо це можливо
EnsureLoadedRootIndexЗабезпечує, що індекс завантаженого каталогу відомий перед продовженням операцій з графом об'єктів
MaterializeLazyStreamsЗавантажує відкладені дані потоку перед повним перезаписом або операцією копіювання на рівні об'єктів
FindLoadedFormFieldByIndexПовертає словник завантаженого поля AcroForm за індексом поля та повідомляє його дійсне ім'я
FindLoadedFormFieldByNameПовертає словник завантаженого поля AcroForm за повним ім'ям поля
ConfigurePDFVersionЗастосовує можливості вибраної версії PDF до налаштувань виведення документа
RecoverReloadFEKFromBytesВідновлює ключ шифрування файлу для повторно завантаженого зашифрованого документа, якщо наданий пароль збігається
LoadedEncryptVersionПовідомляє версію шифрування поточного завантаженого документа
IsObjStmMemberObjectПовідомляє, чи походить об'єкт з члена потоку об'єктів і чи потребує він обробки з урахуванням потоку об'єктів
SyncMaxObjNumFromLoadedObjectsПовторно сканує завантажені об'єкти, щоб нововиділені номери об'єктів не збігалися з існуючими номерами

Прямий стан файлу та перезапис

Метод Використання
ClearDirectFileStateОчищає запис стану прямого файлу перед повторним використанням або звільненням дескриптора
GetDirectFileIndexВідображає дескриптор прямого файлу на слот стану, який використовується Direct File API
DAFindReplacementIndexЗнаходить відповідний запис заміни для номера об'єкта в записі стану прямого файлу
DAReadObjectSourceЗчитує збережені вихідні байти об'єкта та дані генерації зі стану прямого файлу
DAStoreObjectSourceЗберігає вихідні байти об'єкта в стані прямого файлу для подальшого перезапису
DAAppendObjectSourceInternalДодає нове тіло об'єкта до стану прямого файлу та повертає виділений для нього номер об'єкта
DATryBuildCompressedFileStateБудує стан прямого файлу для файлів, які використовують стиснуті потоки об'єктів, якщо це підтримується
DADirectLoadObjectFromBodyПарсить тіло об'єкта прямого файлу в екземпляр завантаженого об'єкта
DARecoverAES256FileKeyВідновлює файл-ключ AES-256 зі словника шифрування та пароля
DADirectPrepareObjectForAES256EncryptГотує словники об'єктів та потоки перед шифруванням прямого файлу AES-256
DADirectDecryptObjectAES256Дешифрує розпарсений об'єкт прямого файлу за допомогою активного ключа файлу AES-256
DAWriteDirectAES256RewriteЗаписує перезапис шифрування або дешифрування прямого файлу AES-256 у цільовий файл
DADirectEncryptFileAES256Шифрує існуючий файл за допомогою AES-256 через шлях перезапису прямого файлу
DADirectDecryptFileAES256Дешифрує існуючий файл AES-256 через шлях перезапису прямого файлу
DAWriteFullRewriteЗаписує повний перезапис прямого файлу, використовуючи поточну таблицю стану

Потік XRef та парсинг об'єктів

Метод Використання
LoadXRefStreamDocumentЗавантажує документ, чий startxref вказує на потік xref
LoadXRefStreamDocumentFromFileЗавантажує документ із потоком xref з файлу та повертає ключові діагностичні дані розташування об'єкта
LoadXRefStreamDocumentEncFromFileЗавантажує захищений паролем документ із потоком xref з файлу
XRefProbeObjCountПовідомляє, скільки об'єктів зареєстрував завантажувач потоку xref
XRefProbeObjNumПовертає номер об'єкта за діагностичним індексом з відліком від нуля
XRefProbeCompactCountПовідомляє, скільки стиснутих об'єктів було матеріалізовано з потоків об'єктів
XRefProbeType2MismatchesПовідомляє про невідповідності заголовків потоку об'єктів, виявлені під час завантаження записів xref типу 2
XRefProbeObjHasKeyПеревіряє, чи містить словник завантаженого діагностичного об'єкта іменований ключ
XRefProbeObjNameValПовертає значення імені із словника завантаженого діагностичного об'єкта
XRefProbeCompactObjNumПовертає номер об'єкта діагностичного запису компактного об'єкта
XRefProbeType2EncryptedSkippedПовідомляє про зашифровані потоки об'єктів, пропущені завантажувачем потоку об'єктів типу 2
XRefProbeCountReplacementCharsПідраховує символи заміни Unicode у завантаженій діагностиці рядків
XRefProbeObjStringValПовертає рядкове значення із словника завантаженого діагностичного об'єкта
XRefProbeDecryptObjStmSkipsПовідомляє про пропуски розшифрування членів потоку об'єктів для запобігання подвійному розшифруванню
TryParseModernPDFНамагається використовувати сучасний шлях парсингу PDF для документів з потоками xref та потоками об'єктів
CreateBasicPageContentСтворює мінімальні об'єкти вмісту сторінки для завантаженої або синтезованої сторінки
CreatePDF16PageReferenceСтворює посилання на сторінку PDF 1.6 за допомогою завантаженого графа об'єктів
CreateBasicResourcesСтворює мінімальний словник ресурсів для реконструкції сторінки
CreatePDF16ResourcesСтворює словник ресурсів PDF 1.6 для реконструкції сторінки
ParseSimplePageObjectПарсить простий об'єкт сторінки в представлення завантаженої сторінки
ParseRealPageContentПарсить оригінальний потік вмісту сторінки для завантаженої сторінки
ProcessObjectStreamsForDecompressionОбробляє потоки об'єктів перед перевіркою або копіюванням розпакованих об'єктів
ScanAndLoadReferencedObjectsСканує словники сторінок та ресурсів і завантажує реферовані об'єкти
ForceLoadMissingReferencedObjectsПримусово завантажує посилання, які не були матеріалізовані під час першого проходу парсингу
FindAllObjectStreamsЗнаходить потоки об'єктів у завантаженому графі документа
ExtractStreamParametersВитягує значення довжини, кількості та зміщення першого об'єкта потоку об'єктів
ProcessFlateDecodeОбробляє байти потоку об'єктів, стиснуті за допомогою FlateDecode
AnalyzePageObjectАналізує тіло об'єкта сторінки та оновлює бухгалтерію завантаженої сторінки
ExtendPageArrДодає непрямий об'єкт сторінки до масиву завантажених сторінок
ParseSimpleDictionaryParses a dictionary body into a THPDFDictionaryObject
ParseSimpleArrayParses an array body into a THPDFArrayObject
ParseSimpleStreamParses a stream body into a THPDFStreamObject
FindAndProcessObjectStreamЗнаходить потік об'єктів за номером об'єкта та обробляє його члени
ExtractObjectFromStreamВитягує розпарсений об'єкт словника з члена потоку об'єктів
ExtractRawObjectFromStreamВитягує необроблені байти об'єкта з члена потоку об'єктів
IsObjectInStreamПовідомляє, чи належить номер об'єкта до потоку об'єктів
GetObjectFromStreamПовертає розпарсений член потоку об'єктів як об'єкт словника
ParseModernPageObjectПарсить об'єкт сторінки, знайдений через сучасний шлях потоку об'єктів
IntelligentDecompressНамагається виконати декомпресію з альтернативною логікою, що враховує формат
DecompressFlateDecodeРозпаковує байти потоку FlateDecode
ParseObjectStreamПарсить заголовок потоку об'єктів та таблицю членів
ReorderPageArrByPagesTreeПеревпорядковує завантажені сторінки відповідно до дерева сторінок
GetCorrectPageOrderFromPagesTreeБудує порядок сторінок на основі завантаженого дерева сторінок
GetPageObjectIdПовертає номер об'єкта для завантаженого індексу сторінки
GetPageArrIndexForObjectNumberПовертає індекс масиву завантажених сторінок для номера об'єкта сторінки
ExtractNumericValueВитягує ціле значення після іменованого ключа в необробленому вмісті об'єкта
ParseDecompressedObjectsПарсить розпаковані члени потоку об'єктів та повертає ключові номери об'єктів
LoadCompressedXrefStreamЗавантажує стиснуті дані потоку xref для сучасного парсингу документів
LoadObjectStreamsDirectlyЗавантажує потоки об'єктів безпосередньо з поточного вихідного документа
ParseXrefStreamDataПарсить декодовані дані таблиці потоку xref
ProcessObjectStreamObjectsОбробляє розпаковані об'єкти потоку об'єктів з номера об'єкта потоку

Відповідність та виведення шрифтів

Метод Використання
BuildAndApplyUnicodeFontSubsetБудує активний піднабір шрифту Unicode та застосовує отриманий потік шрифту та дані відображення
EnsurePDFUATabsOnAnnotatedPagesЗабезпечує, що анотовані сторінки PDF/UA оголошують потрібний порядок вкладок
EnsurePDFAOutputIntentПеревіряє наявність наміру виведення PDF/A, коли цього вимагає вибраний профіль PDF/A
EnsurePDFAColorSpaceConsistencyПеревіряє використання колірного простору пристрою відповідно до налаштувань наміру виведення PDF/A та колірного простору за замовчуванням
EmitDocumentDefaultColorSpacesЗаписує стандартні відображення колірного простору документа, які використовуються робочими процесами PDF/A
EnsurePDFXOutputIntentПеревіряє наявність наміру виведення PDF/X перед завершенням виведення
EnsurePDFXPageBoxesПеревіряє блоки сторінок, які вимагаються профілями виведення PDF/X
_FindPAdESDSSStreamByDERЗнаходить існуючий потік DSS, чиї байти DER відповідають сертифікату, відповіді OCSP або CRL при побудові посилань PAdES VRI

Розширені допоміжні функції формування

Метод Використання
ApplyArabicGSUBPositionalЗастосовує арабські позиційні заміни GSUB та відображає сформовані ідентифікатори гліфів через синтетичні кодові точки
ArabicGSUBShapeToGIDsПовертає арабську сформовану GSUB послідовність ідентифікаторів гліфів без виведення тексту
ApplyArabicGSUBNativeShapingЗастосовує нативне арабське формування GSUB для шрифтів, які забезпечують позиційні заміни гліфів
ApplyLatinLigatureFeatureЗастосовує іменовану функцію латинської лігатури, таку як liga або clig, до прогону Unicode
ApplyLatinSingleSubstitutionFeatureЗастосовує іменовану функцію латинської поодинокої заміни до прогону Unicode
ApplyLatinFractionFeatureЗастосовує функцію frac до прогону числових дробів, коли шрифт надає необхідні заміни
ApplyArabicGSUBRefinementЗастосовує уточнення арабських лігатур GSUB після базового проходу арабського формування
_ApplyGSUBLookupAtЗастосовує один розв'язаний пошук GSUB у позиції прогону гліфа та повідомляє про оновлений діапазон
_ApplyGSUBFeatureToRunЗастосовує всі пошуки для однієї функції GSUB у прогоні гліфа в порядку списку пошуку
_ApplyGSUBFeatureAtRunPositionЗастосовує функцію GSUB в одній позиції прогону гліфа для чутливих до позиції проходів формування
_TibetanShapeSpanToGIDsФормує один тібетський діапазон в ідентифікатори гліфів перед виведенням синтетичних кодових точок
_GSUBResolveIndicScriptВибирає тег індійського скрипту OpenType, доступний у шрифті, віддаючи перевагу тегам скриптів версії 2, якщо вони присутні
_IndicShapeSyllableToGIDsЗастосовує індійський ланцюжок функцій GSUB до одного перевпорядкованого складу та повертає ідентифікатори гліфів

Див. також