THPDFHeadlessDocument
HPDFHeadlessDocument, native Linux ve Windows için mevcut HotPDF object parser'ını, Direct File helper'larını, yazı tipi decoder'larını, content interpreter'ı, filter decoder'larını ve xref writer'ı kullanarak bir console belge API sağlar
Belge loader'ı, klasik cross-reference tablolarını, xref stream'lerini, hibrit xref bölümlerini, incremental Prev zincirlerini, doğrudan ve sıkıştırılmış object'leri, kalıtılan sayfa kaynaklarını, content array'lerini, Form XObject'leri ve AcroForm field ağaçlarını kabul eder
Hibrit yan-stream'ler, eşlik eden tabloya üstünlük verir; daha yeni revizyonlar daha eskilere üstünlük verir; object-stream üyeleri, paylaşılan object parser'ı üzerinden tembel decode edilir ve parse edilir
Lifecycle ve ownership
Create, THPDFHeadlessDocumentOptions.Default kullanır; options overload'ı ise açık bütçeler ve çağıranın-sahip olduğu bir cancellation token kabul eder
LoadFromFile, önceki belgeyi kapatır, kaynağı read-only açar, mevcut object grafiğini yükler ve başarısızlıkta kısmi state'i kapatır; Close, kaynağı ve tüm yüklenmiş object'leri serbest bırakır
LoadFromFile(FileName, Password), THPDFHeadlessAES256Security üzerinden Standard AES-256 R5 veya R6 belgelerini doğrular; orijinal tek-argümanlı overload boş bir password kullanır
User password'ları, o operation'lar yürütülmeden önce metin extraction'ı veya form doldurma vermeli; owner password'ları ise user izin kısıtlarını aşar; yanlış password'lar, authenticated Perms uyumsuzlukları, reddedilen operation'lar ve bozuk cipher payload'ları ayrı belge diagnostic'larına sahiptir
Doğrudan string'ler ve stream'ler paylaşılan kriptografik kodla decrypt edilir; sıkıştırılmış üyeler yalnızca kendi container'larıyla decrypt edilir ve şifreli incremental replacement'lar, orijinal key'ler ve izin politikası altında şifreli kalır
Password'lar, SASLprep normalizasyonu olmadan 127 baytta kırpılan UTF-8 baytlar kullanır; desteklenmeyen handler'lar, açık Crypt filter'ları ve PDF MAC politikaları yok sayılmak yerine teşhis edilir
Kodlanmış dictionary key'leri ve kaynak adları kullanımdan önce decode edilir, büyük-küçük harf önemli kalır ve duplicate decoded key'ler reddedilir; field flag'leri ve MaxLen, desteklenen negatif-olmayan 32-bit aralığına sığmalıdır
Instance'lar thread-safe değildir; worker başına bir instance kullanın ve onun cancellation token'ını instance yok edilene kadar canlı tutun
Sayfalar ve metin
PageCount, sayfa-ağacı yapraklarının sayısını raporlar; ExtractPageText(PageIndex), zero-based bir indeks kabul eder ve paylaşılan glyph interpreter'ından birleştirilmiş Unicode metni döndürür
ExtractPageTextBounded, metin hazırlığından önce geçici glyph ve stream limitleri uygular ve başarı, başarısızlık veya cancellation sonrasında tüm orijinal kaynak option'larını geri alır
GetObjectAccess, native yapısal ve tam karşılaştırma için sınırlı indeks tahsisiyle read-only ödünç catalog, information ve object erişimi açığa çıkarır
Metin decoding, yazı tipi encoding'lerini, encoding farklarını, gömülü ToUnicode CMap'leri, açık genişlikleri ve standart-yazı-tipi metrik provider'ını izler; iç-ice Form XObject'ler kendi matrix'lerini uygular ve kendi veya kalıtılan kaynak dictionary'lerini kullanır
Linux standart-yazı-tipi fallback'i, Fontconfig ve kurulu TrueType yazı tipleri gerektirir; karmaşık belge yazı tipleri desteklenen bir decoding stratejisi sağlamalıdır ve eksik yazı tipi kaynakları diagnostic üretir
AppendPageText, orijinal sayfa içeriğini ve şifreli güvenlik politikalarını korurken görünür veya sığdırılmış görünmez Unicode metin ekler
AppendImportedPages, mevcut hedef revizyonlarını ve authenticated encryption politikasını koruyarak seçili sayfa kaynak grafiklerini, kalıtılan geometriyi ve görünür normal görünümleri klonlar
AcroForm metin value'ları
FormFieldCount, GetFormField(FieldIndex) ve FindFormField(Name), tam-nitelikli adlar ve kalıtılan field türleri, flag'leri, maksimum uzunluklar ve value'lar kullanarak terminal field'ları numaralandırır; indeksler zero-based'dir ve eksik bir ad -1 döndürür
SetTextFieldValue(FieldIndex, Text), yazılabilir Tx field'ları kabul eder, UTF-16BE bir PDF string yazar ve AcroForm dictionary'sine NeedAppearances=true ayarlar
Bu value-only method, viewer yeniden üretimine dayanır; görünümleri yeniden üretmeyen viewer'lar, eski bir görünümü veya boş bir widget'ı göstermeye devam edebilir
SetTextFieldValueWithAppearance, çağıranın sağladığı bir TrueType yazı tipi, gerçek glyph metrikleri, Identity-H encoding, ToUnicode ve tam FontFile2 gömme kullanarak her mevcut widget için açık Unicode görünümleri üretir
Appearance profili, tek satırlı ve çok satırlı metni, wrapping'i, comb hücrelerini, çeyrek-dönüş rotasyonlarını, sabit boyutu veya otomatik-fit'i, alignment'ı ve opsiyonel native HarfBuzz/FriBidi karmaşık shaping'i destekler
SetChoiceFieldValuesWithAppearance, çok-seçimli list box'ları, kalıtılan option'ları, sıralanmış export array'lerini ve her görünür seçili satırı işler; tek-value helper ayrıca combo export/display label'larını destekler
GetChoiceFieldValues, eksiksiz seçili export array'ini okur; SetButtonFieldValueWithAppearance ve SetPushButtonAppearance, gerçek button state'leri ve caption'lar üretir
Yeni appearance object'leri ve stream'ler, field değişikliklerinden önce sınırlanır ve kaydedildiğinde orijinal AES güvenlik politikası altında şifreli kalır; native Linux Cairo ve bağımsız reader'lar aynı üretilmiş object'leri tüketir
Read-only field'lar, UTF-16 code unit'lerinde MaxLen'den uzun value'lar, metin-olmayan field'lar, XFA formları, imzalı field'lar ve sertifikalı-belge izinleri editing için reddedilir
İmzalı belgeler doğrulanmış DocMDP ve FieldMDP politikaları kullanır: izin verilen form güncellemeleri mevcut imzalı revizyonları korurken kilitli alanlar, P1 kısıtlamaları ve imzalı imza alanlarının üzerine yazma girişimleri reddedilir
Doğrulanmış DSS/VRI evidence, mevcut ByteRange signature'larını değiştirmeden authenticated certificate ve revocation data'sını incremental bir revizyona ekler
Signature verification
SignatureCount, imzalı AcroForm signature field'larını numaralandırır ve VerifySignature(SignatureIndex, Options), paylaşılan parser'ı ve streaming OpenSSL 3 CMS provider'ını kullanarak zero-based signature'ları doğrular
PDF profili, onaltılık veya standart literal Contents ile adbe.pkcs7.detached'i ve otomatik tanınan ETSI.CAdES.detached'i kabul eder; CAdES, her zaman ESS signing-certificate binding'ini doğrularken, açık CA ayarları trust'i ayrı değerlendirir
DocTimeStamp, ETSI.RFC3161 ile, gerçek kapsüllenmiş TSTInfo'yu, ESS'i, TSA amacını ve imzalayan adını ve kesin PDF imprint'ini otomatik doğrular; yapılandırılmış timestamp root'ları ve CRL'ler TSA trust'ini ayrı değerlendirir
Verification, ayırıcıları dâhil kesin imzasız boşluğu doğrular ve decoded baytlarını kriptografik doğrulamadan önce mevcut signature dictionary'sine bağlar
Result, integrity'yi, açıkça değerlendirilmiş CA trust'ini ve authenticated revizyondan sonraki imzasız baytları ayırır; desteklenmeyen PDF signature profilleri, yazılmış bir diagnostic üretir
Runtime gereksinimleri için bkz. HPDFVerifyHeadlessCMS; bütçeler ve trust ayarları için bkz. THPDFHeadlessCMSOptions
Incremental approval signature'ları
SignToFile, mevcut yazılabilir, imzasız bir Sig field'ını imzalar ve çağıranın sağladığı bir PEM certificate ve şifrelenmemiş PEM private key kullanarak bağımsız bir incrementally güncellenmiş PDF yayımlar
AddSignatureField, düz import edilmiş bir PDF'te yeni bir AcroForm dâhil bir sayfa widget'ı ve AcroForm link'leri oluşturur; SetSignatureFieldAppearance, görünür caption'ını üretir ve SignPFXToFile, PKCS12 certificate/key identity'sini kendi zinciriyle yükler
CertificationPermission, ilk DocMDP certification signature'ını oluşturur; P2 ve P3, mevcut field'larda sonraki approval signature'larına izin verirken, P1 daha fazla signature'ı reddeder
Orijinal kaynak baytları ve yüklenmiş object grafı değişmeden kalır; sonraki approval signature'ları, önceki signature baytlarını ve onların authenticated revizyon sınırlarını korur
Standard AES-256 R5 ve R6 encryption, password'lar, ID'ler ve izinler etkin kalır — şifreli object-stream kaynakları dâhil; signature Contents string'i, PDF'in encryption'dan istisnasını izler
Mevcut signature value'ları, read-only field'lar, sertifikalı-belge politikaları, reddedilen form-fill izinleri, uyumsuz cancellation token'ları ve tükenmiş output bütçeleri, output yayımlamadan reddedilir
Belge timestamp'leri
TimestampToFile, çağıranın-sahip olduğu bir TSA transport'u ve açık TSA trust kullanarak, mevcut imzasız bir signature field'ında uygulama imzalama key'i olmadan gerçek bir RFC 3161 belge timestamp'i oluşturur
Writer, orijinal revizyonları ve AES güvenliğini korur, PDF 2.0 öncesi input için ESIC uzantısını bildirir ve nonce, imprint, signature, certificate, yapılandırılmış revocation ve seed denetimleri geçtikten sonra yalnızca atomik yayımlar
Gerekli authenticated belge timestamp değişiklikleri, DocMDP ve FieldMDP altında mümkündür; sıradan form edit'leri ve approval signature'ları orijinal kısıtlarını tutar
FDF ve XFDF form interchange
ExportAnnotationsFDF, sınırlı anotasyon nesne graf'lerini ve paylaşılan appearance kaynaklarını dışa aktarır; SaveAnnotationsFDFToFile, bağımsız bir atomik PDF revizyonunda adlandırılmış değiştirmeleri ve eklemeleri hazırlar
İkili FDF anotasyon profili, kimlik doğrulamalı belgenin şifreleme ve imza politikasını, bağlama-duyarlı yerel GoTo sayfa referanslarını ve tam değişmemiş yayını korur; kayıttan sonra yüklenen belgeyi değişmeden bırakır
SaveAnnotationsXFDFToFile, bağımsız bir incremental revizyona sınırlı eşlenmiş anotasyonlar ekler; HPDFExportHeadlessAnnotationsXFDF, onların XFDF baytlarını döndürür
ExportFormData, gerçek choice array'leri ve checkbox veya radio export state'leri dâhil sınırlı Unicode field data'sı döndürür
ImportFormDataToFile, private bir authenticated revizyon grafiğinde gerçek görünümleri yeniden üretir ve yüklenmiş kaynak state'ini koruyarak incremental bir PDF'i atomik yayımlar
ImportRichFormDataToFile, gerçek regular, bold, italic ve bold-italic yazı tipi programlarıyla FDF RV veya XFDF value-richtext'ten sınırlı XHTML profilini import eder
SaveRichTextFieldUpdatesToFile, scalar field'ları ve orijinal yazılan rich run'ları tek bağımsız atomik revizyonda uygular — gerçek yazı tipi programlarını ve PDF sayısal hassasiyetini koruyarak; değişmemiş korumalı field'lar, her widget için eşleşen decoded görünümler ve çözümlenmiş kaynaklar gerektirir
Mevcut encryption, read-only flag'ler, authenticated DocMDP ve FieldMDP, orijinal signature'lar, cancellation ve kaynak bütçeleri yürüdüğünde kalır; desteklenen sözdizimi ve scalar interchange sınırları için bkz. Native FDF ve XFDF form data
Ödünç rendering erişimi
GetRenderAccess(PageIndex), mevcut sayfa dictionary'sini, kalıtılan kaynakları, yazı tipi resolver'ı, object resolution'u, izin denetimini, cancellation token'ını ve sınırlı decoded-stream callback'lerini THPDFHeadlessRenderAccess üzerinden sağlar
Bu, seri bir read-only ödünç view'ıdır; belge, renderer bitene kadar yüklenmiş ve değişmemiş kalmalıdır ve çağıranlar açığa çıkarılan object grafiğini mutasyona uğratmamalıdır
View'ın RequireOutputPath callback'i, bir olası output'u kaynağın kanonik path'ine ve fiziksel dosya identity'sine karşı — dosya oluşturmadan veya değiştirmeden — denetler
Bağımsız output
ExtractPageGlyphs, sınırlı iç-ice-content walker'ı üzerinden konumlu glyph'ler döndürür; AnalyzePageSemanticText, native contract karşılaştırması için semantik metin ve kaynak geometrisi sağlar
SaveToFile(FileName), orijinal baytları kopyalar ve replacement object value'larını, klasik bir xref tablosunu ve Prev üzerinden bağlanmış bir trailer ekler; sıkıştırılmış object üyeleri, eklenmiş revizyonda doğrudan object'ler olarak gerçekleştirilir ve orijinal stream baytları korunur
Output, kaynak path'ini veya dosya identity'sini alias etmemelidir; yazma, hedef dizinde münhasıran oluşturulmuş bir staging dosyası kullanır, onu flush eder ve atomik rename ile yayımlar
Bütçe, cancellation veya serialize etme başarısızlıkları, mevcut bir hedefi korur ve yayımlanmamış staging dosyasını siler; kaynak read-only kalır
Native anote edilmiş inceleme PDF'i, orijinal yüklenmiş belgeyi ve signature revizyonlarını koruyarak authenticated anotasyon izinleriyle gerçek Unicode highlight'ları ve görünür görünümleri export eder
Format sınırları
Mevcut profil, Standard AES-256 R5 ve R6 encryption'ı destekler, desteklenmeyen güvenlik handler'larını ve stream filter'larını açıkça teşhis eder ve kendi writer'ı tarafından temsil edilemeyen emekliliğe-ayrılmış free-object generation'ları reddeder
Bootstrap xref stream'leri, doğrudan dictionary value'ları ve doğrudan sınırlı bir Length gerektirir; bozuk genişlikler, subsection örtüşmeleri, Int64 üstü imzasız offset'ler, sıkıştırılmış-üye uyumsuzlukları, referans cycle'ları ve yapılandırılmış limitler, yazılmış diagnostic'lar üretir
Decoded içerik, desteklenen predictor'lar ve dolaylı stream uzunluklarıyla Flate, ASCIIHex, ASCII85 ve LZW filter'larını destekler; görsel payload'ları, metin extraction'ı için decode edilmez
Native imzalama workflow'ları, signature field'ları, görünür görünümleri ve certification'ı kapsar; authenticated imzalı-form politikaları, timestamp ve uzun-dönem doğrulama API'leri kendi açık integrity ve trust option'larını tutar
Kabul
Adlandırılmış rich yazı tipi family'leri, SetRichTextFieldValueWithFamilies ve ImportRichFormDataWithFamiliesToFile ile mevcut field, güvenlik ve transaction politikalarıyla birden çok gerçek sağlanan family ekler
Native rich-text field'ları, yazılan style'lı run'lar, gerçek gömülü style-yazı-tipli görünümler, eşzamanlanmış V ve RV value'ları, şifreli incremental output ve sınırlı transactional edit'ler sağlar; GetRichTextFieldValue, saklanan veya kalıtılan XHTML'i okur
Tests/Linux/Run-HeadlessDocumentTests.sh, masaüstü variable'ları temizlenmiş native bir ELF executable derler ve GUI kütüphane bağımlılıklarını denetler; Run-HeadlessDocumentTests-Windows.cmd Win32 ve Win64, aynı paylaşılan belge API'sini çalıştırır
Döndürülen value'lar ve yazılmış diagnostic'lar için bkz. THPDFHeadlessFormField, EHPDFHeadlessDocumentError ve THPDFHeadlessDiagnosticCode
Anotasyon kaldırma
Sayfa anotasyonlarını kaldırın; kesin sayfa ve Unicode NM kimliğiyle SaveAnnotationRemovalsToFile üzerinden, popup ve yanıt kaskadları, sınırlı hazırlık ve atomik ayrı çıktı ile
Yüklenen belge değişmeden kalır; değişmemiş bir seçim kesin mevcut revizyonu kopyalar ve artımlı kaldırma geçmiş baytları korur