Wymiana XFDF adnotacji w Windows
Joby plikowe Windows i hpdf_document_execute_json_v1 eksportują zmapowane adnotacje i doklejają adnotacje XFDF przez uwierzytelniony most transakcji Windows
Zmapowane typy i właściwości są współdzielone z natywnym XFDF adnotacji, włącznie z ograniczonymi strumieniami załączników/dźwięków binarnych, zawartością rich Unicode, obiektami popup i przekazywaniem odpowiedzi
Joby plikowe
{
"schemaVersion": 1, "type": "annotations.import", "format": "xfdf",
"input": "source.pdf", "annotationInput": "annotations.xfdf",
"output": "annotated.pdf", "password": "owner",
"annotationLimits": {"maxBytes": 1048576, "maxAnnotations": 1000},
"budget": {"memoryBytes": 268435456, "outputBytes": 134217728,
"timeMilliseconds": 60000, "resultBytes": 16777216}
}
annotations.export używa tego samego formatu, wejścia, wyjścia i opcjonalnego hasła, zapisując XFDF UTF-8 zamiast PDF; import wymaga annotationInput
Wyjście nie może być aliasem wejścia PDF, wejścia XFDF ani dostarczonych plików zaufania/dowodów, włącznie z istniejącym twardym dowiązaniem; publikacja rezerwuje wyłączny tymczasowy plik siostrzany, waliduje ograniczone wyniki, flushuje i zamyka kandydata, po czym atomowo podmienia cel
Niepowodzenie i anulowanie zachowują istniejący kompletny cel i usuwają plik tymczasowy operacji
Oryginalne callbacki V1
Użyj niezmienionych hpdf_operation_v1 i hpdf_io_v1 z hotpdf_abi.h; wymiana adnotacji nie wymaga rozszerzenia fontów
Najpierw wczytaj PDF celu przez hpdf_document_load_from_io; import czyta XFDF z InputIO, zapisuje kandydata PDF do OutputIO i zapisuje ograniczony JSON do ResultIO; eksport czyta aktywny posiadany PDF i zapisuje XFDF do OutputIO
Dla zaszyfrowanego wejścia powtórz hasło operacji użyte do uwierzytelnienia wczytanego PDF; ta operacja nie zachowuje niejawnego hasła z wcześniejszego wywołania wczytania
Tylko udane callbacki PDF i wyniku, po których następuje finalny checkpoint anulowania, adoptują nowy dokument i posiadaną rewizję; nieudane callbacki wejścia, wyjścia albo wyniku, zniekształcony XML, wyczerpane limity i anulowanie zachowują poprzedni kontekst
Callbacki mogą otrzymać bajty kandydata przed późniejszym niepowodzeniem; publikuj należący do wywołującego cel dopiero po zwrocie HPDF_STATUS_OK
Polityka, limity i wyniki
Import uwierzytelnia istniejącą integralność podpisów i wiązanie podpisującego ESS; certyfikacja P1 i P2 odrzuca zmiany adnotacji, podczas gdy P3 pozwala na rewizję adnotacji zachowującą oryginalne podpisane bajty
Importy AES-256 R5/R6 zachowują parametry szyfrowania i oryginalny prefiks rewizji; pusty import uwierzytelnia politykę i zachowuje dokładne bieżące bajty
signaturePolicy przyjmuje istniejące Boolean wymagania zaufania/znacznika czasu/odwołań i jawne ścieżki zaufania opisane w wymianie danych formularzy Windows
annotationLimits może obniżyć maxBytes, maxAnnotations, maxNodes, maxDepth i maxWorkingBytes; wartości są dodatnimi liczbami JSON i nie mogą podnieść wyliczonych domyślnych wartości
Budżety robocze, wyjścia, wyniku, obiektów i stron również obowiązują; operacje callback przyjmują elapsedMilliseconds jako dodatkowo ciaśniejszy deadline
Eksport raportuje annotationCount, skippedAnnotationCount, decodedAttachmentBytes i outputBytes; import raportuje updated, outputBytes i annotationProfile równe mapped-annotations-v1
Granice
Możliwości deklarują wymianę adnotacji przez file-job i execute-json-v1, z importem tylko doklejającym, ogólnym appearanceImport=false i zakresowanym stampAppearanceImport=true
Transport wyglądów standardowych stampów zachowuje rzeczywiste strumienie Form i ograniczone acykliczne zasoby fontów, obrazów i grafiki przez typowany XML base64
Ogólny transport AP, podmiana/usuwanie adnotacji, szersze akcje i dane adnotacji FDF pozostają osobną pracą; zdalne akcje GoToR i lokalne destynacje używają swoich istniejących ograniczonych profilów
Ogólny ExecuteLoadedOperation i starszy rekord callbacka uchwytu joba to osobne punkty wejścia; wywołujący Pascal mogą użyć jawnej klasy transakcji
Binarna wymiana FDF
Ten sam joby plikowe i callbacki V1 akceptują format="fdf"; importy plikowe czytają binarny FDF z annotationInput, a eksporty zapisują binarny FDF do wybranego wyjścia
Profil grafu obiektów FDF zachowuje dostarczone zasoby wyglądów i współdzielone obiekty pośrednie oraz wspiera podmianę przez pasującą niepustą NM adnotacji na tej samej stronie
Import FDF zwraca annotationProfile="pdf-object-graph-v1"; updated liczy rzeczywiste zmiany adnotacji, a równoważny import zachowuje dokładną bieżącą rewizję
FDF dodaje maxObjects do dodatnich całkowitych kontroli annotationLimits i używa istniejącej uwierzytelnionej polityki, ograniczonej publikacji kandydata i reguł własności callbacków
Wywołujący Pascal mogą użyć THPDFWindowsFormDataTransaction.ExportAnnotationsFDF i ImportAnnotationsFDF; ChangedAnnotations raportuje rzeczywiste zmiany dla tego profilu
Niepuste FDF Fields i osadzone Differences wymagają osobnej obsługi i zawodzą operacje tylko-dla-adnotacji przed publikacją
Usuwanie adnotacji Windows dostarcza osobną przygotowaną transakcję i job JSON dla dokładnych tożsamości strona-i-NM bez zmieniania semantyki doklejania zmapowanego XFDF