Automatic XFA native PDF creation

Unit: HPDFXFAHeadless

HPDFXFAWriteHeadlessPDF tworzy świeży natywny PDF bezpośrednio z bajtów XDP i dostarczonego przez aplikację fontu TrueType, bez wejściowego PDF i przygotowanych slotów pól

Adapter konsumuje istniejące callbacki layoutu wiązania XFA, powtarzalnych instancji i paginacji i buduje natywne grafy obiektów stron i AcroForm z rzeczywistymi strumieniami wyglądów osadzonych fontów

Pola text, numeric, date i password, przyciski push, wybory combo i list, grupy checkbox i radio, statyczny tekst, drawy prostokąta, linii, łuku i inline PNG albo JPEG są konsumowane; podpisy i dodatkowi konsumenci draw wymagają dalszej integracji adaptera

Tworzenie choice i boolean zachowuje osobne wartości display i export, zachowanie editable i multi-select, natywne stany wyglądów i niezależne powtarzalne grupy radio

Style i podpisy Boolean konsumuje rzeczywiste wektorowe znaczniki, rozmiar, kolory i grubość konturu, regiony podpisów Unicode i trzecie stany checkboxa

Natywna grafika i obrazy konsumuje rzeczywiste ścieżki wektorowe, formaty próbek PNG i transparentność, JPEG baseline albo progressive, fizyczny współczynnik kształtu i umiejscowienie afiniczne

Hasła używają maskowanego wyglądu, zachowując natywną wartość pola; dokumentowe Editable i efektywny dostęp readOnly XFA określają natywne flagi pól

Współrzędne punktów XFA używają początku w lewym górnym rogu i są konwertowane raz na natywne prostokąty widgetów i translacje drawów; oddzielne powtarzalne wystąpienia dostają odrębnych natywnych nazw pól od silnika layoutu

Natywne zasoby /AP, /DR i /DA są generowane z dostarczonym fontem i efektywnym rozmiarem, kolorem i wyrównaniem; dostarczony krój jest używany dla każdego pola, więc wybór typeface i wiele krójów stylów pozostają odpowiedzialnością aplikacji na tym etapie

Użyj TXFAWidgetRuntime, aby wykonać zdarzenia cyklu życia albo interakcji i zapisać wynikowe XDP przed tworzeniem, gdy dokument ich wymaga; ScriptOptions adaptera sterują przetwarzaniem calculate i validate silnika flatten

Preparation and limits

TXFAHeadlessPDFOptions ogranicza bajty XDP i fontów, bajty wyjścia i obiektów, liczby obiektów i stron, pola i zagregowane jednostki glifów UTF-16

Budżety obiektów, stron i glifów są sprawdzane przed odpowiadającymi alokacjami; sprawdzenia osadzania ograniczają zagregowane strumienie fontów i obrazów, dekodery obrazów ograniczają swoje bufory robocze, a natywna serializacja wymusza limity bajtów obiektów i kompletnego kandydata

Anulowanie jest sprawdzane w całym tworzeniu grafu, generowaniu wyglądów i serializacji; wszystkie awarie przygotowania pozostawiają pozycję, długość i istniejące bajty strumienia docelowego niezmienione

Kompletny kandydat jest przygotowywany w pamięci przed jednym wywołaniem WriteBuffer do celu; błędy I/O celu propagują się i mogą zostawić częściowe zapisy według zachowania strumienia wywołującego

Wyjście to nowy niepodpisany dokument; zachowywanie zaimportowanego szyfrowania, istniejących podpisów i rewizji źródła należy do API natywnego importu i rewizji dokumentów

Acceptance

Tests/Linux/XFAHeadlessCreationTests.pas produkuje rzeczywiste dokumenty powtarzalne, stronicowane i globalnie read-only, dokument zapisanego-XDP zmutowany zdarzeniem i dokument drawów Unicode ze stylami bez otwierania UI czytnika

Tests/Linux/Verify-XFAHeadlessCreation.py niezależnie weryfikuje natywne wartości, flagi pól, własność stron, zasoby /AP i osadzonych fontów pypdf, oraz rzeczywisty tekst i piksele wyrenderowanych wyglądów MuPDF

Tests/Linux/XFAHeadlessChoiceTests.pas i Verify-XFAHeadlessChoice.py dodają rzeczywiste wartości i flagi choice, rodziców radio i tożsamości powtarzalnego scope, zarezerwowane stany eksportu, runtime zapis/przeładowanie i rollback oraz piksele wyrenderowanych wyborów

TXFAHeadlessPDFResult raportuje rzeczywisty natywny graf i liczby serializacji