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