Preflight tarifleri

Bu tarif sayfası, preflight API'lerini ve demolarını görev odaklı tarifler halinde gruplar. Kesin imzalar gerektiğinde API başvurusunu kullanın; bir uygulama, build script veya CI işi için çalışan bir yol gerektiğinde bu sayfayı kullanın.

Çıktı formatı seçin

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;

Metin çıktısı bayt kararlıdır ve diff için uygundur. JSON, pipeline alımı için uygundur. HTML kendi kendine yeterlidir ve doğrudan açılabilir veya CI artifact olarak kaydedilebilir. CSV, spreadsheet ve toplu rapor iş akışları için kararlı sütunlar kullanır.

PDF/VT belgelerini doğrulayın

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 raporu ISO 16612-2 kimliğine ve belge parçası yapısına odaklanır: element metninde veya RDF özniteliği biçiminde XMP GTS_PDFVTVersion, değişiklik tarihi eşleşmesi, PDF/X temel işaretçisi, output intent, DPartRoot, DPartRootNode, NodeNameList ve sayfa düzeyinde DPart kapsamı.

Profil uygulayı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;

Profiller adlandırılmış kontrolleri, uyarıları veya tüm ipuçlarını bastırır. Kullanıcı tarafından yazılmış bir profili uygulamadan önce, eski bir adı sessizce yok saymaktansa güvenli biçimde durmak daha önemliyse ValidatePreflightProfile kullanın.

Preset'ten yeniden kullanılabilir profil oluşturun

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;

Bir preset'i proje özel adlarıyla birleştirmek için MergePreflightProfiles kullanın. Paylaşılan bir yapılandırma dosyasını güncellemeden önce profil sapmasını gözden geçirmek için DiffPreflightProfiles kullanın.

Raporu PDF ile arşivleyin

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

Metin gömme yolu son EOF işaretinden sonra okunabilir bir yorum bloğu ekler. XMP yolu, metadata paketlerini tarayan arşiv iş akışları için RDF biçimli bir yük ekler.

Gömülü raporu doğrulayın

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

Doğrulama yolu gömülü parmak izini kaynak baytlar üzerinde yeni bir preflight çalıştırmasıyla karşılaştırır. Diff yardımcısı satır yönelimlidir ve HotPDF preflight raporları için ayarlanmıştır.

Koruyucu onarım geçişi çalıştırın

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

Onarım yardımcısı bilerek dar tutulur. Son EOF işaretinden sonraki artık baytları ve eksik EOF işaretlerini işler, ancak cross-reference tablolarını yeniden oluşturmaz veya stream'leri yeniden yazmaz.

Birçok raporu toplayın

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

Toplam çıktı PDF başına bir durum satırı ve işlenen raporlar, hatalar ile uyarılar için toplamlar listeler. Ayrıntılı raporlar her girdi dosyası için saklansa bile pipeline tek bir özet gerektirdiğinde kullanışlıdır.

Komut satırı aracını kullanın

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 kitaplık iş akışını yansıtır: tek dosya veya özyinelemeli dizin girdisi, text / JSON / HTML çıktısı, isteğe bağlı parola, isteğe bağlı profil, yerleşik preset, ayrıntılı ilerleme ve toplam özet.

Statik dashboard oluşturun

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

Dashboard demosu bir index.html ve dosya başına HTML raporları yazar. Web sunucusu gerekmez, bu nedenle çıktı statik artifact olarak yayımlanabilir.

veraPDF tarzı JSON tüketicilerine uyarlayın

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

Adapter HotPDF semantiğini korurken hataları, zaten veraPDF benzeri JSON tüketen araçlar için tanıdık bir doğrulama sonucu yapısına yeniden biçimlendirir.

İlgili konular