|
THotPDF metode za preflight izveštaj Sintaksa
Opis CreatePreflightReport čita ulazni PDF i vraća tekstualni izveštaj sa lakim strukturnim proverama Overload-i sa lozinkom koriste postojeći put učitavanja sa podrškom za lozinku za podržane šifrovane PDF-ove SavePreflightReport upisuje isti izveštaj u ciljnu tekstualnu datoteku ValidatePDFVT pokreće fokusirani PDF/VT validation prolaz i vraća True samo kada su prisutni potrebni markeri i strukture Vraćeni tekstualni izveštaj proverava pdfvtid:GTS_PDFVTVersion XMP tvrdnju, PDF/VT namespace metapodataka, poklapanje datuma izmene PDF/VT i xmp:ModifyDate, osnovni PDF/X marker, odsustvo enkripcije, PDF/X output intent, catalog DPartRoot, DPartRootNode, NodeNameList, prisustvo document part-a, broj stranica koje se mogu učitati i DPart pokrivenost na nivou stranice PDF/VT i XMP svojstva datuma mogu biti upisana kao tekst elementa ili kao RDF atributi na rdf:Description elementu Izveštaj proverava PDF zaglavlje, EOF marker, da li je završni %%EOF marker blizu kraja datoteke, poslednji startxref odmak, da li taj odmak cilja xref tabelu ili xref strim, brojanje %%EOF i startxref markera, balans revizijskih markera i redosled završnih markera, trailer ili XRef strim marker, broj čitljivih stranica, stanje enkripcije, catalog, stablo stranica, marker objekta stranice, MediaBox, referencu informacionog rečnika, root referencu, broj indirektnih objekata, broj definisanih indirektnih objekata, najveći broj objekta, broj dupliranih brojeva objekata, jedinstvenost brojeva objekata, broj catalog objekata, broj elemenata stabla stranica, broj objekata stranica, usklađenost deklarisanog i čitljivog broja stranica, usklađenost stabla i objekte stranica, balans strim i endstrim sekvenci, pokrivenost stavki /Length u strimovima, broj xref tabela, broj xref pododeljaka, broj unosa xref tabela, broj slobodnih i zauzetih xref unosa, broj neispravnih xref redova, ispravnost xref redova, pokrivenost xref-a u odnosu na broj objekata, broj xref strimova, broj objektnih strimova, broj trailer-a, /Size u traileru, da li trailer /Size pokriva najveći broj objekata, trailer /Root i /Info indirektne reference, da li su referencirani objekti definisani, da li trailer /Root cilja catalog objekat, broj elemenata i raspored niza /ID u traileru, prisustvo trailer /Root, /Info, /ID i /Encrypt, procenjeni broj inkrementalnih ažuriranja, status linearizacije, učitane kutije stranica, broj form polja, broj rečnika resursa, broj font resursa, broj ugrađenih font programa (/FontFile, /FontFile2, /FontFile3), broj image XObject-a, broj form XObject-a, broj ColorSpace resursa, broj anotacija i podskupova widget/link anotacija, broj korišćenja lanaca filtera za FlateDecode, DCTDecode, CCITTFaxDecode, JBIG2Decode, LZWDecode, ASCIIHexDecode, ASCII85Decode, RunLengthDecode i JPXDecode, pokrivenost ugrađenih fontova, usklađenost broja anotacija, PDF/A / PDF/X / PDF/UA / Tagged PDF smernice za transparentnost, izabrane zastavice mogućnosti, upozorenja JavaScript-a ili akcija (pokriva ceo skup PDF 1.7 sec 12.6.4 akcija: GoTo*, Thread, URI, Sound, Movie, Hide, Named, SubmitForm, ResetForm, ImportData, SetOCGState, Rendition, Trans i GoTo3DView, kao i starije JavaScript provere / Launch / OpenAction / AdditionalActions / EmbeddedFile / RichMedia i upozorenja PDF/A međusobnog isključivanja), ukupan broj upozorenja i rezime uspešno/nespešno. Ovi pomoćnici namenjeni su za brzu in-proces proveru pre prosleđivanja datoteka spoljnim validacionim alatima i nisu zamena za puni PDF/A, PDF/X, PDF/UA ili ISO 32000 preflight motor The Svaki unos checks, hints i warnings nosi opciono polje spec koje navodi ISO klauzulu koju dijagnostika cilja (na primer ISO 32000-1 sec 7.5.5 za provere vezane za trailer, ISO 19005-1 sec 6.6.2 za upozorenje o međusobnom isključivanju PDF/A i JavaScript-a) Mapiranje pokriva svaku proveru, svaki hint i svako upozorenje koje izveštaj emituje do v2.122.0 Formalna JSON Schema specifikacija (draft 2020-12) koja opisuje strukturu pfJSON izlaza objavljena je na Docs/preflight-schema.json tako da nizvodni potrošači mogu da validiraju izlaz pre parsiranja EmbedPreflightReportInPDF upisuje kopiju izvornog PDF-a u TargetFile sa nasleđenim preflight izveštajem u tekstualnom obliku iza poslednjeg %%EOF kao PDF-style comment linije gde svaki red počinje sa % . PDF čitači ignorišu prikačene bajtove jer su izvan grafa objekata, ali arhivski tokovi rada, tekstualni editori i grep-style alati i dalje mogu da prikažu ugrađeni izveštaj radi naknadne provere. Originalni object graph, tabela unakrsnih referenci i trailer ostaju nepromenjeni LoadAndValidatePreflightReport izdvaja izveštaj koji je EmbedPreflightReportInPDF ranije prikačio, ponovo pokreće trenutni preflight algoritam nad izvornim bajtovima koji prethode ugrađenom comment bloku i poredi InputFingerprint vrednosti Funkcija vraća True kada se oba otiska poklapaju, što znači da ugrađeni izveštaj i dalje opisuje fajl onako kako postoji na disku Kada validacija padne, pozivaoci mogu da pregledaju OriginalReport i CurrentReport da bi uporedili šta se promenilo
RepairPDFFromPreflightReport primenjuje konzervativni podskup bajt-nivo popravki na oštećeni PDF: odbacuje završne bajtove koji slede iza poslednjeg %%EOF markera i dodaje nedostajući %%EOF kada ga nigde nema Funkcija vraća True kada je primenjena makar jedna popravka; RepairsApplied navodi popravke kao jednu liniju po promeni Popravke grafa objekata (obnova xref tabela, krpljenje dužina tokova, popravljanje trailer rečnika) namerno su van opsega zato što takve popravke mogu da učine delimično oporavljiv fajl manje oporavljivim; za dublja oštećenja koristite namenski PDF recovery alat AggregatePreflightReports uzima niz izveštaja po fajlu i proizvodi jedan zbirni pregled Svaki unos u nizu se parsira za polja Input, Size i Summary; agregat emituje jednu liniju po fajlu plus ukupne vrednosti za broj uspešnih, neuspešnih i upozoravajućih izveštaja, ukupan broj skeniranih bajtova i ukupne brojke rezultata Korisno za CI cevovode i shell petlje koje obrađuju direktorijum PDF-ova i žele jedan sažet rezime na kraju LoadPreflightProfile i ApplyPreflightProfile omogućavaju pozivaocima da prilagode izlaz izveštaja bez ponovnog pokretanja analize Profil fajl koristi INI-stil format sa tri opciona odeljka: [disable-checks] navodi imena provera koje treba potisnuti; [disable-warnings] navodi imena upozorenja koje treba potisnuti; a [options] prihvata hints=false da bi se potisnula svaka Hint linija Nakon filtriranja, Summary linija se ponovo računa tako da potisnuti unosi više ne doprinose ukupnim Failed i Warnings vrednostima; ostatak izveštaja prolazi neizmenjen ValidatePreflightProfile prolazi kroz DisableChecks i DisableWarnings liste učitanog profila i prijavljuje svako ime koje trenutna preflight implementacija ne prepoznaje Korisno za otkrivanje profil fajlova izrađenih prema novijoj ili starijoj HotPDF verziji koji bi inače tiho ne bi onemogućili ništa jer imena ne odgovaraju nijednoj emitovanoj proveri ili upozorenju GetBuiltInPreflightProfile vraća profile spremne za upotrebu za uobičajene tokove rada Prepoznata imena (case-insensitive): default / '' vraća prazan profil; compact isključuje svaku Hint liniju radi kraćih izveštaja; silent-actions isključuje svako PDF 1.7 sec 12.6.4 action upozorenje plus EmbeddedFile i RichMedia, namenjeno tokovima rada koji namerno ugrađuju multimediju ili interaktivne akcije i ne žele da ih preflight izveštaj označi Nepoznata imena takođe vraćaju prazan profil SavePreflightProfile upisuje THPDFPreflightProfile zapis nazad u INI fajl u istom formatu koji LoadPreflightProfile čita Ove dve funkcije su tačni inverzi za dobro oblikovane profile, tako da pozivaoci mogu da izgrade tok rada 'učitaj preset, dotegni, sačuvaj': P := GetBuiltInPreflightProfile('compact'), izmenite P.DisableChecks, zatim SavePreflightProfile(P, 'tuned.ini') za kasniju ponovnu upotrebu CreatePreflightReportWithProfile je praktični omotač na jednom mestu koji sastavlja postojeće CreatePreflightReport, LoadPreflightProfile, ApplyPreflightProfile i format konvertere tako da pozivalac koji već ima izvorni PDF, opcionu lozinku, profil fajl i ciljni format može da pozove jednu funkciju umesto da lančano zove četiri Prosleđivanje praznog ProfileFile preskače korak profila MergePreflightProfiles vraća deduplikovani unija dva profila: DisableChecks i DisableWarnings skupljaju imena iz oba ulaza, DisableHints je logički OR Korisno za slaganje preseta preko projektnim podešavanja DiffPreflightProfiles prijavljuje strukturnu razliku između dva profila Vraća True kada su ekvivalentni; inače False sa OnlyInA i OnlyInB popunjenim newline-separated linijama oblika check:<name>, warn:<name> ili option:hints=false koje opisuju koji su unosi ekskluzivni za svaku stranu
ConvertPreflightReportToVeraPDFStyle oblikuje HotPDF preflight izveštaj u JSON dokument koji prati široki okvir veraPDF validacionog izlaza, sa top-level profile poljem, jobs nizom koji sadrži itemDetails / taskResult / validationResult i ruleViolations nizom unutar validationResult.details HotPDF-styled, a ne wire-compatible sa veraPDF; cilj je da se alatima nizvodno koji već konzumiraju veraPDF JSON omogući prilagođavanje HotPDF izlazu uz minimalno preslikavanje imena polja umesto učenja potpuno drugačijeg rasporeda podataka Primer
Vidi i
|