Buku Resep Preflight

Buku resep ini mengelompokkan API dan demo preflight ke dalam resep yang berorientasi tugas. Gunakan referensi API saat Anda memerlukan signature yang tepat; gunakan halaman ini saat Anda memerlukan jalur kerja untuk aplikasi, build script, atau job CI

Pilih format output

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;

Output teks stabil secara byte dan ramah diff. JSON cocok untuk ingest pipeline. HTML mandiri dan dapat dibuka langsung atau disimpan sebagai artefak CI. CSV memakai kolom stabil untuk alur kerja spreadsheet dan laporan batch

Validasi dokumen PDF/VT

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;

Laporan PDF/VT berfokus pada identifikasi ISO 16612-2 dan struktur document-part: XMP GTS_PDFVTVersion dalam bentuk teks elemen atau atribut RDF, pencocokan tanggal modifikasi, penanda dasar PDF/X, output intent, DPartRoot, DPartRootNode, NodeNameList, dan cakupan DPart tingkat halaman

Terapkan profil

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;

Profil menyembunyikan pemeriksaan bernama, peringatan, atau semua hint. Gunakan ValidatePreflightProfile sebelum menerapkan profil buatan pengguna ketika gagal tertutup lebih penting daripada diam-diam mengabaikan nama yang sudah usang

Buat profil yang dapat dipakai ulang dari preset

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;

Gunakan MergePreflightProfiles untuk menggabungkan preset dengan nama khusus proyek. Gunakan DiffPreflightProfiles untuk meninjau drift profil sebelum memperbarui file konfigurasi bersama

Arsipkan laporan bersama PDF

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

Jalur penyematan teks menambahkan blok komentar yang bisa dibaca setelah penanda EOF terakhir. Jalur XMP menambahkan payload berbentuk RDF untuk alur kerja arsip yang memindai paket metadata

Validasi laporan tertanam

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

Jalur validasi membandingkan fingerprint tertanam dengan run preflight baru atas byte sumber. Helper diff berbasis baris dan disetel untuk laporan preflight HotPDF

Jalankan repair pass konservatif

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

Helper repair sengaja tetap sempit. Ia menangani byte sisa setelah penanda EOF terakhir dan penanda EOF yang hilang, tetapi tidak membangun ulang tabel cross-reference atau menulis ulang stream

Agregasikan banyak laporan

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

Output agregat menampilkan satu baris status per PDF dan total untuk laporan yang diproses, kegagalan, dan peringatan. Ini berguna ketika pipeline memerlukan satu ringkasan meskipun laporan detail disimpan per file input

Gunakan alat command-line

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

CLI meniru alur kerja library: satu file atau input direktori rekursif, output teks / JSON / HTML, password opsional, profil opsional, preset bawaan, progress verbos, dan ringkasan agregat

Buat dashboard statis

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

Demo dashboard menulis index.html plus laporan HTML per file. Tidak diperlukan web server, jadi output dapat dipublikasikan sebagai artefak statis

Adaptasi ke konsumen JSON gaya veraPDF

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

Adaptor ini mempertahankan semantik HotPDF sambil membentuk ulang kegagalan menjadi struktur hasil validasi yang familier untuk tooling yang sudah mengonsumsi JSON mirip veraPDF

Topik terkait