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