THPDFHeadlessDocument

HPDFHeadlessDocument dostarcza konsolowe API dokumentów dla natywnego Linux i Windows, używając istniejącego parsera obiektów HotPDF, helperów Direct File, dekoderów fontów, interpretatora zawartości, dekoderów filtrów i writera xref

Wczytywanie dokumentu przyjmuje klasyczne tablice odwołań krzyżowych, strumienie xref, hybrydowe sekcje xref, łańcuchy przyrostowe Prev, obiekty bezpośrednie i skompresowane, dziedziczone zasoby stron, tablice zawartości, Form XObjects i drzewa pól AcroForm

Boczne strumienie hybrydowe mają pierwszeństwo przed towarzyszącą tabelą, a nowsze rewizje przed starszymi; członkowie object-stream są dekodowani i parsowani leniwie przez współdzielony parser obiektów

Cykl życia i własność

Create używa THPDFHeadlessDocumentOptions.Default, podczas gdy przeciążenie z opcjami przyjmuje jawne budżety i token anulowania wywołującego

LoadFromFile zamyka poprzedni dokument, otwiera źródło tylko do odczytu, wczytuje bieżący graf obiektów i zamyka stan częściowy przy niepowodzeniu; Close zwalnia źródło i wszystkie wczytane obiekty

LoadFromFile(FileName, Password) uwierzytelnia dokumenty Standard AES-256 R5 albo R6 przez THPDFHeadlessAES256Security; oryginalne przeciążenie z jednym argumentem używa pustego hasła

Hasła użytkownika muszą udzielać uprawnienia ekstrakcji tekstu albo wypełniania formularzy przed wykonaniem tych operacji, podczas gdy hasła właściciela omijają ograniczenia uprawnień użytkownika; błędne hasła, niedopasowania uwierzytelnionego Perms, odmowane operacje i zniekształcone ładunki szyfrow mają odrębne diagnostyki dokumentu

Bezpośrednie łańcuchy i strumienie są deszyfrowane współdzielonym kodem kryptograficznym, skompresowani członkowie są deszyfrowani tylko ze swoim kontenerem, a zaszyfrowane przyrostowe podmiany pozostają zaszyfrowane pod oryginalnymi kluczami i polityką uprawnień

Hasła używają bajtów UTF-8 obcinanych do 127 bajtów bez normalizacji SASLprep; nieobsługiwane handlery, jawne filtry Crypt i polityki PDF MAC są diagnozowane, a nie ignorowane

Zakodowane klucze słowników i nazwy zasobów są dekodowane przed użyciem, wielkość liter pozostaje znacząca, a zduplikowane zdekodowane klucze są odrzucane; flagi pól i MaxLen muszą mieścić się we wspieranym niedodatnim zakresie 32-bitowym

Instancje nie są bezpieczne dla wątków; używaj jednej instancji na worker i utrzymuj jej token anulowania żywy do zniszczenia instancji

Strony i tekst

PageCount raportuje liczbę liści drzewa stron; ExtractPageText(PageIndex) przyjmuje indeks od zera i zwraca tekst Unicode złożony ze współdzielonego interpretatora glifów

ExtractPageTextBounded stosuje tymczasowe limity glifów i strumieni przed przygotowaniem tekstu i przywraca wszystkie oryginalne opcje zasobów po sukcesie, niepowodzeniu albo anulowaniu

GetObjectAccess wystawia pożzyczony dostęp tylko do odczytu do katalogu, informacji i obiektów z ograniczoną alokacją indeksu dla natywnego porównania strukturalnego i pełnego

Dekodowanie tekstu podąża za kodowaniami fontów, różnicami kodowań, osadzonymi CMap ToUnicode, jawnymi szerokościami i dostawcą metryk standardowych fontów; zagnieżdżone Form XObjects stosują swoje macierze i używają własnych albo dziedziczonych słowników zasobów

Fallback standardowych fontów Linux wymaga Fontconfig i zainstalowanych fontów TrueType; złożone fonty dokumentu muszą dostarczać wspieraną strategię dekodowania, a brakujące zasoby fontów produkują diagnostykę

AppendPageText dodaje widoczny albo dopasowany niewidzialny tekst Unicode, zachowując oryginalną zawartość stron i zaszyfrowane polityki bezpieczeństwa

AppendImportedPages klonuje wybrane grafy zasobów stron, dziedziczoną geometrię i widoczne wyglądy normal, zachowując istniejące rewizje celu i uwierzytelnioną politykę szyfrowania

Wartości text AcroForm

FormFieldCount, GetFormField(FieldIndex) i FindFormField(Name) wyliczają pola terminalne pełni kwalifikowanymi nazwami i dziedziczonymi typami pól, flagami, maksymalnymi długościami i wartościami; indeksy są od zera, a brakująca nazwa zwraca -1

SetTextFieldValue(FieldIndex, Text) przyjmuje zapisywalne pola Tx, zapisuje łańcuch PDF UTF-16BE i ustawia NeedAppearances=true na słowniku AcroForm

Ta metoda tylko wartości polega na regeneracji przez przeglądarkę; przeglądarki nieodtwarzające wyglądów mogą nadal wyświetlać stary wygląd albo pusty widget

SetTextFieldValueWithAppearance generuje jawne wyglądy Unicode dla każdego istniejącego widgetu, używając dostarczonego przez wywołującego fontu TrueType, rzeczywistych metryk glifów, kodowania Identity-H, ToUnicode i pełnego osadzania FontFile2

Profil wyglądów wspiera tekst jednowierszowy i wielowierszowy, zawijanie, komórki comb, obroty o ćwierć obrotu, stały rozmiar albo auto-dopasowanie, wyrównanie i opcjonalne natywne złożone shapowanie HarfBuzz/FriBidi

SetChoiceFieldValuesWithAppearance obsługuje listy wielokrotnego wyboru, dziedziczone opcje, posortowane tablice export i każdy widoczny zaznaczony wiersz; helper pojedynczej wartości wspiera tež etykiety export/display combo

GetChoiceFieldValues odczytuje kompletną zaznaczoną tablicę export; SetButtonFieldValueWithAppearance i SetPushButtonAppearance generują rzeczywiste stany przycisków i podpisy

Nowe obiekty i strumienie wyglądów są ograniczane przed zmianami pól i pozostają zaszyfrowane pod oryginalną polityką bezpieczeństwa AES przy zapisie; natywny Cairo Linux i niezależne czytniki konsumują te same wygenerowane obiekty

Pola tylko do odczytu, wartości dłuższe niż MaxLen w jednostkach kodu UTF-16, pola nietekstowe, formularze XFA, pola podpisane i uprawnienia dokumentów certyfikowanych są odrzucane dla edycji

Podpisane dokumenty używają uwierzytelnionych polityk DocMDP i FieldMDP: dozwolone aktualizacje formularzy zachowują istniejące podpisane rewizje, podczas gdy zablokowane pola, ograniczenia P1 i próby nadpisania podpisanych pól podpisu są odrzucane

Zwalidowane dowody DSS/VRI dodają uwierzytelnione dane certyfikatów i odwołań do rewizji przyrostowej bez zmieniania istniejących podpisów ByteRange

Weryfikacja podpisów

SignatureCount wylicza podpisane pola podpisów AcroForm, a VerifySignature(SignatureIndex, Options) waliduje podpisy od zera przez współdzielony parser i streamingowego dostawcę CMS OpenSSL 3

Profil PDF przyjmuje adbe.pkcs7.detached i automatycznie rozpoznawane ETSI.CAdES.detached z zawartością szesnastkową albo standardową literałową; CAdES zawsze uwierzytelnia wiązanie certyfikatu podpisującego ESS, podczas gdy jawne ustawienia CA ewaluują zaufanie osobno

DocTimeStamp z ETSI.RFC3161 automatycznie uwierzytelnia prawdziwe zamknięte TSTInfo, ESS, cel TSA i nazwę podpisującego oraz dokładny imprint PDF; skonfigurowane korzenie i CRL znaczników czasu osobno ewaluują zaufanie TSA

Weryfikacja waliduje dokładną niepodpisaną przerwę łącznie z jej ogranicznikami i binduje swoje zdekodowane bajty do bieżącego słownika podpisu przed weryfikacją kryptograficzną

Wynik rozróżnia integralność, jawnie ewaluowane zaufanie CA i bajty niepodpisane po uwierzytelnionej rewizji; nieobsługiwane profile podpisów PDF produkują typowaną diagnostykę

Zobacz HPDFVerifyHeadlessCMS dla wymagań runtime i THPDFHeadlessCMSOptions dla budżetów i ustawień zaufania

Przyrostowe podpisy zatwierdzenia

SignToFile podpisuje istniejące zapisywalne, niepodpisane pole Sig i publikuje niezależnie przyrostowo zaktualizowany PDF używając dostarczonego przez wywołującego certyfikatu PEM i nieszyfrowanego klucza prywatnego PEM

AddSignatureField tworzy widget strony i jego linki AcroForm, włącznie z nowym AcroForm na prostym zaimportowanym PDF; SetSignatureFieldAppearance generuje jego widoczny podpis, a SignPFXToFile wczytuje tożsamość certyfikat/klucz PKCS12 z łańcuchem

CertificationPermission tworzy pierwszy podpis certyfikacji DocMDP; P2 i P3 pozwalają na kolejne podpisy zatwierdzenia w istniejących polach, podczas gdy P1 odrzuca dalsze podpisy

Oryginalne bajty źródła i wczytany graf obiektów pozostają niezmienione; późniejsze podpisy zatwierdzenia zachowują bajty wcześniejszych podpisów i ich uwierzytelnione granice rewizji

Standardowe szyfrowanie AES-256 R5 i R6, hasła, ID i uprawnienia pozostają w mocy, włącznie z zaszyfrowanymi źródłami object-stream; łańcuch Contents podpisu podąża za wyjątkiem PDF od szyfrowania

Istniejące wartości podpisów, pola tylko do odczytu, polityki dokumentów certyfikowanych, odmowane uprawnienia wypełniania formularzy, rozbieżne tokeny anulowania i wyczerpane budżety wyjścia są odrzucane bez publikacji wyjścia

Znaczniki czasu dokumentu

TimestampToFile tworzy prawdziwy znacznik czasu dokumentu RFC 3161 w istniejącym niepodpisanym polu podpisu bez klucza podpisującego aplikacji, używając transportu TSA należącego do wywołującego i jawnego zaufania TSA

Writer zachowuje oryginalne rewizje i bezpieczeństwo AES, deklaruje rozszerzenie ESIC dla wejść sprzed PDF 2.0 i atomowo publikuje dopiero po przejściu kontroli nonce, imprintu, podpisu, certyfikatu, skonfigurowanych odwołań i seed

Niezbędne uwierzytelnione zmiany znacznika czasu dokumentu są dozwolone pod DocMDP i FieldMDP; zwykłe edycje formularzy i podpisy zatwierdzenia zachowują swoje oryginalne ograniczenia

Wymiana formularzy FDF i XFDF

ExportAnnotationsFDF eksportuje ograniczone grafy obiektów adnotacji i ich współdzielone zasoby wyglądów; SaveAnnotationsFDFToFile przygotowuje nazwane podmiany i dokleja w niezależnej atomowej rewizji PDF

Binarny profil adnotacji FDF zachowuje szyfrowanie i politykę podpisów uwierzytelnionego dokumentu, wrażliwe na kontekst lokalne referencje stron GoTo oraz dokładnie niezmienioną publikację; po zapisie pozostawia wczytany dokument niezmieniony

SaveAnnotationsXFDFToFile dokleja ograniczone zmapowane adnotacje do niezależnej rewizji przyrostowej; HPDFExportHeadlessAnnotationsXFDF zwraca ich bajty XFDF

ExportFormData zwraca ograniczone dane pól Unicode, włącznie z rzeczywistymi tablicami choice i stanami export checkbox albo radio

ImportFormDataToFile regeneruje prawdziwe wyglądy na prywatnym uwierzytelnionym grafie rewizji i atomowo publikuje przyrostowy PDF, zachowując stan wczytanego źródła

ImportRichFormDataToFile importuje ograniczony profil XHTML z FDF RV albo XFDF value-richtext z rzeczywistymi programami fontów regular, bold, italic i bold-italic

SaveRichTextFieldUpdatesToFile stosuje pola skalarne i oryginalne typowane runy rich w jednej niezależnej atomowej rewizji, zachowując rzeczywiste programy fontów i precyzję numeryczną PDF; niezmienione chronione pola wymagają pasujących zdekodowanych wyglądów i rozwiązanych zasobów dla każdego widgetu

Istniejące szyfrowanie, flagi tylko do odczytu, uwierzytelnione DocMDP i FieldMDP, oryginalne podpisy, anulowanie i budżety zasobów pozostają wymuszane; zobacz Natywne dane formularzy FDF i XFDF dla wspieranej składni i granic wymiany skalarnej

Pożzyczony dostęp do renderowania

GetRenderAccess(PageIndex) dostarcza istniejący słownik strony, dziedziczone zasoby, rozwiązywacz fontów, rozwiązywanie obiektów, kontrolę uprawnień, token anulowania i ograniczone callbacki zdekodowanych strumieni przez THPDFHeadlessRenderAccess

To szeregowy pożzyczony widok tylko do odczytu; dokument musi pozostać wczytany i niezmieniony do zakończenia renderowania, a wywołujący nie mogą mutować jego wystawionego grafu obiektów

Callback RequireOutputPath widoku sprawdza prospektywne wyjście względem kanonicznej ścieżki źródła i fizycznej tożsamości pliku bez tworzenia albo modyfikowania pliku

Niezależne wyjście

ExtractPageGlyphs zwraca pozycjonowane glify przez ograniczonego przechodnia zagnieżdżonej zawartości; AnalyzePageSemanticText dostarcza semantyczny tekst i geometrię źródła dla natywnego porównywania umów

SaveToFile(FileName) kopiuje oryginalne bajty i dokleja podmieniane wartości obiektów, klasyczną tabelę xref i trailer związany przez Prev; członkowie obiektów skompresowanych są materializowani jako obiekty bezpośrednie w doklejanej rewizji, a oryginalne bajty strumieni są zachowywane

Publikacja plikowa Windows używa wyłącznie utworzonego pliku staging w katalogu docelowym, flushuje go i publikuje przez atomową zmianę nazwy

Niepowodzenia budżetu, anulowania albo serializacji zachowują istniejący cel i usuwają niepublikowany plik staging; źródło pozostaje tylko do odczytu

Natywny PDF przeglądu z adnotacjami eksportuje rzeczywiste podświetlenia Unicode i widoczne wyglądy z uwierzytelnionymi uprawnieniami adnotacji, zachowując oryginalny wczytany dokument i rewizje podpisów

Granice formatu

Bieżący profil wspiera szyfrowanie Standard AES-256 R5 i R6, jawnie diagnozuje nieobsługiwane handlery bezpieczeństwa i filtry strumieni i odrzuca wycofane generacje obiektów wolnych, których jego writer nie może reprezentować

Strumienie xref bootstrap wymagają bezpośrednich wartości słownika i bezpośredniego ograniczonego Length; zniekształcone szerokości, nakładanie podsekcji, offsety bez znaku ponad Int64, niedopasowania członków skompresowanych, cykle referencji i skonfigurowane limity produkują typowane diagnostyki

Zdekodowana zawartość wspiera filtry Flate, ASCIIHex, ASCII85 i LZW ze wspieranymi predyktorami i pośrednimi długościami strumieni; ładunki obrazów nie są dekodowane dla ekstrakcji tekstu

Natywne workflow podpisywania obejmują pola podpisów, widoczne wyglądy i certyfikację; uwierzytelnione polityki podpisanych formularzy, API znaczników czasu i walidacji długoterminowej zachowują swoje jawne opcje integralności i zaufania

Akceptacja

Nazwane rodziny fontów rich dodają wiele rzeczywistych dostarczonych rodzin przez SetRichTextFieldValueWithFamilies i ImportRichFormDataWithFamiliesToFile, z istniejącymi politykami pól, bezpieczeństwa i transakcji

Natywne pola rich-text dostarczają typowane stylowane runy, rzeczywiste wyglądy osadzonych fontów stylów, zsynchronizowane wartości V i RV, zaszyfrowane wyjście przyrostowe i ograniczone transakcyjne edycje; GetRichTextFieldValue odczytuje przechowywany albo dziedziczony XHTML

Tests/Linux/Run-HeadlessDocumentTests.sh buduje natywny plik wykonywalny ELF z wyczyszczonymi zmiennymi pulpitu i sprawdza zależności bibliotek GUI; Run-HeadlessDocumentTests-Windows.cmd Win32 i Win64 ćwiczą to samo współdzielone API dokumentów

Zobacz THPDFHeadlessFormField, EHPDFHeadlessDocumentError i THPDFHeadlessDiagnosticCode dla zwracanych wartości i typowanych diagnostyk

Usuwanie adnotacji

Usuwaj adnotacje stron po dokładnej tożsamości strony i nazwy Unicode przez SaveAnnotationRemovalsToFile, z kaskadami popupów i odpowiedzi, ograniczonym przygotowaniem i atomowym osobnym wyjściem

Wczytany dokument pozostaje niezmieniony; niezmieniony wybór kopiuje dokładną bieżącą rewizję, a przyrostowe usuwanie zachowuje historyczne bajty