Preflight Cookbook

Tämä opaskirja ryhmittelee esitarkastuksen APIt ja demot tehtäväkeskeisiin ohjeisiin. Käytä API-viitettä, kun tarvitset tarkat allekirjoitukset; käytä tätä sivua, kun tarvitset toimivan polun sovellukselle, rakennusskriptille tai CI-tehtävälle

Valitse tulostusmuoto

var
  PDF: THotPDF;
begin
  PDF := THotPDF.Create(nil);
  try
    PDF.SavePreflightReport('Input.pdf', 'Input.preflight.txt');
    PDF.SavePreflightReport('Input.pdf', 'Input.preflight.json', '', pfJSON);
    PDF.SavePreflightReport('Input.pdf', 'Input.preflight.html', '', pfHTML);
    PDF.SavePreflightReport('Input.pdf', 'Input.preflight.csv', '', pfCSV);
  finally
    PDF.Free;
  end;
end;

Tekstituloste on tavutasolla stabiili ja diff-ystävällinen. JSON soveltuu prosessiputkien käyttöön. HTML on itsenäinen ja se voidaan avata suoraan tai tallentaa CI-artefaktina. CSV käyttää pysyviä sarakkeita taulukkolaskenta- ja eräraportointityönkulkuihin

Validate PDF/VT documents

var
  PDF: THotPDF;
  Report: AnsiString;
begin
  PDF := THotPDF.Create(nil);
  try
    if not PDF.ValidatePDFVT('Input.pdf', Report) then
      WriteLn(string(Report));
  finally
    PDF.Free;
  end;
end;

PDF/VT-raportti keskittyy standardin ISO 16612-2 tunnistautumiseen ja dokumentin osarakenteeseen: XMP:n GTS_PDFVTVersion-tunniste elementtitekstissä tai RDF-attribuuttimuodossa, muokkauspäivämäärän täsmäävyys, PDF/X-perusmerkitsin, tulostustavoite, DPartRoot, DPartRootNode, NodeNameList ja sivutason DPart-kattavuus

Ota profiili käyttöön

var
  PDF: THotPDF;
  Report: AnsiString;
begin
  PDF := THotPDF.Create(nil);
  try
    Report := PDF.CreatePreflightReportWithProfile(
      'Input.pdf', '', 'project-preflight.ini', pfJSON);
  finally
    PDF.Free;
  end;
end;

Profiilit vaimentavat nimetyt tarkistukset, varoitukset tai kaikki vihjeet. Käytä ValidatePreflightProfile-metodia ennen käyttäjän luoman profiilin käyttöönottoa, kun turvallinen sulkeutuminen epäonnistumistilanteessa on tärkeämpää kuin vanhentuneen nimen hiljainen huomiotta jättäminen

Luo uudelleenkäytettävä profiili esiasetuksesta

var
  PDF: THotPDF;
  Profile: THPDFPreflightProfile;
begin
  PDF := THotPDF.Create(nil);
  try
    Profile := PDF.GetBuiltInPreflightProfile('compact');
    Profile.DisableWarnings := 'OpenAction,JavaScript,URIAction';
    PDF.SavePreflightProfile(Profile, 'compact-no-actions.ini');
  finally
    PDF.Free;
  end;
end;

Käytä metodia MergePreflightProfiles yhdistääksesi esiasetuksen projektikohtaisiin nimiin. Käytä metodia DiffPreflightProfiles tarkastellaksesi profiilin poikkeamaa ennen jaetun määritystiedoston päivittämistä

Arkistoi raportti PDF-tiedoston kanssa

PDF.EmbedPreflightReportInPDF('Input.pdf', 'Input-with-report.pdf');
PDF.EmbedPreflightReportAsXMP('Input.pdf', 'Input-with-xmp-report.pdf');

Tekstin upotuspolku lisää luettavan kommenttilohkon viimeisen EOF-merkin jälkeen. XMP-polku lisää RDF-muotoisen hyötykuorman arkistointityönkuluille, jotka skannaavat metatietopakkauksia

Vahvista upotettu raportti

var
  OriginalReport: AnsiString;
  CurrentReport: AnsiString;
begin
  if not PDF.LoadAndValidatePreflightReport(
    'Input-with-report.pdf', OriginalReport, CurrentReport) then
    WriteLn(string(PDF.ComparePreflightReports(OriginalReport, CurrentReport)));
end;

Validointipolku vertaa upotettua sormenjälkeä uuteen esitarkastusajoon lähdetavuilla. Diff-apuri on riviorientoitunut ja viritetty HotPDF-esitarkastusraporteille

Suorita varovainen korjauskierros

var
  RepairsApplied: AnsiString;
begin
  if PDF.RepairPDFFromPreflightReport(
    'Broken.pdf', 'Broken-repaired.pdf', RepairsApplied) then
    WriteLn(string(RepairsApplied));
end;

Korjausapuri pysyy tarkoituksella rajallisena. Se käsittelee viimeisen EOF-merkin jälkeiset ylimääräiset tavut ja puuttuvat EOF-merkit, mutta ei rakenna uudelleen ristiviitetaulukoita tai kirjoita uudelleen virtoja

Aggregate many reports

Reports[0] := PDF.CreatePreflightReport('A.pdf');
Reports[1] := PDF.CreatePreflightReport('B.pdf');
Summary := PDF.AggregatePreflightReports(Reports);

Koottu tuloste luettelee yhden tilarivin PDF-tiedostoa kohti sekä käsitellyt raportit, virheet ja varoitukset yhteensä. Tämä on hyödyllistä, kun prosessiputki tarvitsee yhden yhteenvedon, vaikka yksityiskohtaiset raportit säilytetään syötetiedostokohtaisesti

Käytä komentorivityökalua

HotPDFPreflight Input.pdf -f json -o reports
HotPDFPreflight Input.pdf --pdfvt -o reports
HotPDFPreflight C:\Archive -r --preset compact -f text -o reports --aggregate reports\Aggregate.txt
HotPDFPreflight C:\Archive -r --profile project-preflight.ini -f html -o reports

Komentoriviliittymä (CLI) heijastaa kirjaston työnkulkua: syötteenä yksi tiedosto tai rekursiivinen hakemisto, tulosteena teksti / JSON / HTML, valinnainen salasana, valinnainen profiili, sisäänrakennettu esiasetus, yksityiskohtainen edistyminen ja kokonaisyhteenveto

Rakenna staattinen hallintapaneeli

PreflightDashboard C:\Archive C:\Archive\preflight-dashboard

Dashboard-demo kirjoittaa index.html-tiedoston ja tiedostokohtaiset HTML-raportit. Verkkopalvelinta ei tarvita, joten tuloste voidaan julkaista staattisena artefaktina

Mukauta veraPDF-tyylisiin JSON-kuluttajiin

Report := PDF.CreatePreflightReport('Input.pdf');
JSON := PDF.ConvertPreflightReportToVeraPDFStyle(Report);

Sovitin säilyttää HotPDF-semantiikan muotoillessaan virheet tuttuun validointitulosten rakenteeseen työkaluille, jotka käyttävät jo veraPDF-tyyppistä JSON-muotoa

Related Topics