Windows FDF/XFDF Exchange
Zadania plikowe Windows i hpdf_document_execute_json_v1 implementują forms.export i forms.import dla fdf i xfdf przy użyciu natywnych kodeków skalarnych i ograniczonego XHTML/CSS rich
File jobs
{
"schemaVersion": 1, "type": "forms.import", "format": "xfdf",
"input": "source.pdf", "output": "filled.pdf", "password": "owner",
"formDataInput": "values.xfdf",
"fonts": {
"regular": "DejaVuSans.ttf", "bold": "DejaVuSans-Bold.ttf",
"italic": "DejaVuSans-Oblique.ttf", "boldItalic": "DejaVuSans-BoldOblique.ttf"
},
"budget": {"memoryBytes": 268435456, "outputBytes": 134217728,
"timeMilliseconds": 60000, "resultBytes": 16777216}
}
forms.export używa input, output, format i opcjonalnego password; nie wymaga formDataInput ani fonts; zadania plikowe rezerwują wyłącznego kandydata obok celu, flushują i zamykają go, walidują ograniczony JSON wyniku, a potem atomowo zamieniają cel
Brakujące fonty, wadliwe wejście, awarie uwierzytelniania albo polityki, wyczerpane limity i nieudana publikacja zachowują istniejący kompletny cel; wyjście nie może być aliasem wejścia PDF ani form-data, łącznie z hard linkiem
Named font families
forms.import akceptuje fontFamilies u korzenia operacji jako tablicę od jednej do szesnastu etykiet; nieobecność zachowuje oryginalny profil pojedynczej rodziny i etykietę callbacka fontFamily
"fontFamilies": ["DejaVu Sans", "DejaVu Serif Condensed"],
"fonts": {
"DejaVu Sans": {
"regular": "DejaVuSans.ttf", "bold": "DejaVuSans-Bold.ttf",
"italic": "DejaVuSans-Oblique.ttf", "boldItalic": "DejaVuSans-BoldOblique.ttf"
},
"DejaVu Serif Condensed": {
"regular": "DejaVuSerifCondensed.ttf", "bold": "DejaVuSerifCondensed-Bold.ttf",
"italic": "DejaVuSerifCondensed-Italic.ttf", "boldItalic": "DejaVuSerifCondensed-BoldItalic.ttf"
}
}
Dla zadań plikowych fonts zawiera obiekty kluczowane dokładnymi skonfigurowanymi etykietami; bez fontFamilies zachowuje oryginalny obiekt bezpośrednich ścieżek stylów; czytaj wyłącznie rzeczywiste programy rodziny/stylu, przy czym wszystkie wybrane bajty fontów dzielą budżet operacji
Dla callbacków Windows V1 istniejący callback fontu otrzymuje każdą rzeczywistą kanoniczną etykietę UTF-8 i wybrany styl; dwie rodziny używające wszystkich czterech stylów dają osiem rzeczywistych żądań programów bez zmieniania rekordu callbacka
Litery ASCII etykiet porównują bez wielkości, a inne znaki Unicode porównują dokładnie; etykiety są odrębne, niepuste i co najwyżej 128 jednostek kodowych UTF-16, bez otaczających białych znaków, kontrolek, niedobitych surrogate i interpunkcji cudzysłowów/separatorów CSS
Pierwsza skonfigurowana rodzina jest domyślna dla tekstu skalarnego i dziedziczonych stylów rich; domyślnie listy CSS font-family używają wyboru pierwszej znanej rodziny natywnego kodeku
Opt-in fallbackFontFamilies=true zachowuje uporządkowanych inline kandydatów font-family CSS i ładuje rzeczywiste skonfigurowane programy krój/styl dla fallbacku całych grafemów; zobacz Windows supplied-family rich font fallback po typowanych kandydatów, ładowanie callbacków i scope rich-only
Zastosowany wynik raportuje richXMLProfile inline-xhtml-font-families-v1, skonfigurowaną tablicę fontFamilies i rzeczywiste obiekty fontFamilyStyles zawierające rodzinę, styl i bajty; fontStyles zachowuje oryginalny typ obiektu-tablicy i podsumowuje liczby bajtów według stylu; fontBytes liczy wszystkie rzeczywiste programy
Bez tablicy richXMLProfile to inline-xhtml-v1; mieszane skalarne i oryginalne typowane-rich forms.fill używa odrębnego powiązania original-typed-runs-v1 opisanego niżej; starsze rozszerzenie callbacka fontu zadań pozostaje odrębną pracą
Versioned Windows C callbacks
Dołącz hotpdf_abi_form_data.h; wypełnij hpdf_form_data_operation_v1, ustaw operation.struct_size na jego kompletny rozmiar i przekaż niezmieniony prefiks operacji do hpdf_document_execute_json_v1
Opcjonalny callback fontu otrzymuje bajty rodziny UTF-8 i styl 0 regular, 1 bold, 2 italic albo 3 boldItalic i zwraca kompletną tabelę odczytu hpdf_io_v1 dla rzeczywistego programu fontu; dostarcz wszystkie cztery programy, gdy dane rich używają wszystkich czterech stylów
Dane skalarne żądają programu regular; fontFamily defaultowo DejaVu Sans; dostarczone callbacki IO fontów i user data muszą pozostać poprawne do powrotu operacji; niezerowe statusy callbacków są lepkie i propagują się bez ponowienia fallbacku
Dla forms.import, InputIO dostarcza FDF/XFDF, a cel musi być już załadowany; OutputIO otrzymuje kandydata PDF, a ResultIO ograniczony JSON; forms.export używa oryginalnego rekordu V1 i pisze FDF/XFDF do OutputIO
Windows hpdf_document_load_from_io kopiuje kompletny wejście do niemutowalnego posiadanego źródła przed powrotem; zewnętrzne zastąpienie albo doklejenie nie może zmienić aktywnej załadowanej rewizji ani jej późniejszego wyjścia form-data
Posiadane źródła używają odrębnego zsynchronizowanego handle dla tła odczytów dostępu losowego, więc prefetch nie może przesunąć sekwencyjnego kursora publikacji; dokument kandydata zwalnia swoich czytelników tła przed zniszczeniem źródła
Aktywny kontekst zmienia się dopiero po sukcesie obu callbacków wyjścia i wyniku oraz przejściu finalnego checkpointu anulowania; awaria callbacka albo anulowanie odrzuca kandydata i zachowuje poprzedni dokument i posiadane źródło
Callback mógł otrzymać bajty kandydata przed awarią późniejszego callbacka; wywołujący muszą zacommitować własny cel wyjścia dopiero po zwróceniu HPDF_STATUS_OK przez funkcję execute
Oryginalne layouty rekordów V1 i eksportowane symbole są niezmienione; to rozszerzenie Windows jest odrębne od opublikowanego rozszerzenia callbacków natywnego Linuksa
Związanymi wejściami są procesor zadań plikowych i hpdf_document_execute_json_v1; starszy rekord callbacków HPDFDocRunJob i generyczny ExecuteLoadedOperation nie nabywają rozszerzenia fontów na tym etapie; wywołujący Pascal mogą użyć jawnej klasy transakcji
Fields, rich text and policy
Obsługiwane wartości obejmują zagnieżdżone nazwy tekstu Unicode, nazwy eksportu checkbox i radio, tablice multi-select i niezmienione wartości read-only; /V, /RV i rzeczywiste zasoby AP są zapisywane razem; nieznane pola i wymagane ograniczenia pól zawodzą transakcję
Wymiana rich używa udokumentowanego ograniczonego profilu XHTML/CSS i rzeczywistych dostarczonych fontów stylów; nie deklaruje obsługi dowolnego HTML, całego CSS ani nieograniczonego XML rich
Podpisane aktualizacje AES R5/R6 zachowują kompletny oryginalny prefiks, parametry szyfrowania, trwały identyfikator szyfrowania i istniejący podpis CMS; niezmienione importy skalarne albo rich są byte-identyczne z bieżącą zacommitowaną rewizją
Istniejąca integralność CMS i powiązanie podpisującego ESS są uwierzytelniane przed podpisanymi aktualizacjami formularzy; wypełnianie P2/P3 jest dozwolone wyłącznie w rzeczywistych ograniczeniach; P1, blokady FieldMDP i zmienione pola read-only odmawiają publikacji
signaturePolicy akceptuje Boolean requireCAdES, requireTimestamp, requireAdobeRevocationInfo i requireTimestampRevocation; trustedCAFile, timestampCAFile, timestampCRLFile i revocationCAFile muszą być ciągami bez NUL i wybierają jawne zaufanie wywołującego dla żądanych sprawdzeń
Opcje callbacków C też ograniczają podpisane dowody przez maxEvidenceBytes i maxEvidenceObjects; walidacja zaufania jest odrębna od domyślnego checku integralności podpisu
formData może obniżać maxBytes, maxFields, maxObjects, maxDepth, maxValues, maxValueCodeUnits i maxTotalCodeUnits; te dokładne dodatnie liczby całkowite są dodatkowo przycinane pojemnością roboczą; budżetowe objectCount i pageCount ograniczają dokumenty kandydata
budget.timeMilliseconds ustawia deadline operacji; callbacki C Windows też akceptują elapsedMilliseconds jako dodatkowe ciaśniejsze ograniczenie; anulowanie jest odpytywane podczas przygotowania bieżącego grafu, dekodowania formularzy, czytania fontów, sprawdzeń CMS, ładowania kandydata i publikacji
Zdolności raportują rzeczywiste formaty, style, niezmienne wejście i transakcyjne zachowanie callbacków; zmapowana wymiana XFDF adnotacji jest zaimplementowana oddzielnie, podczas gdy osadzone pliki FDF, szersze akcje i przyrostowe dokumenty FDF pozostają niedokończone
Related topics
Mieszane wypełnianie skalarne i oryginalne typowane rich używa tego samego uwierzytelnionego cyklu życia kandydata Windows przez zadania plikowe i execute-json-v1
Klasa transakcji, Przygotowanie bieżącego grafu, Natywne dane formularzy
Wewnętrzne arkusze stylów stosują ograniczone selektory, important, specyficzność i kolejność źródłową do rzeczywiście zaimportowanych wartości rich i zapisanych wyglądów; powtórzone równoważne importy i nieudana publikacja zachowują istniejące gwarancje transakcji
richTextResources dostarcza linkowany i importowany CSS dla rzeczywistych jobów plikowych Windows i importów execute-json-v1, przy użyciu istniejącej transakcji i wiązań fontów