Preflight tarifleri

Bu tarif kitabı, preflight API'lerini ve örnekleri göreve yönelik tarifler hâlinde gruplar. Kesin imzalara ihtiyacınız olduğunda API başvurusunu kullanın; bir uygulama, derleme betiği veya CI işi için çalışan bir yola ihtiyacınız olduğunda bu sayfayı kullanın.

Bir çıktı biçimi 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 dostudur. JSON; hattı beslemeye uygundur ve her denetim, ipucu ve uyarıya, mantıksal kapsam, yol, PDF anahtarı ile mümkün olduğunda kesin nesne, sayfa veya bayt koordinatları içeren yapısal bir location ile birlikte kararlı ad alanlı bir ruleId kazandırır. HTML aynı tanımlayıcıları ve konumları gösterir; CSV ise hesap tablosu ve toplu rapor iş akışları için kararlı sütunlarını korur

PDF/VT belgelerini doğrula

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 kimlik tespiti ve belge parçası yapısına odaklanır: öğe metni veya RDF öznitelik 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üzeyi DPart kapsamı.

Bir 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ış denetimleri, uyarıları veya tüm ipuçlarını bastırır. Bayat bir adı sessizce yok saymak, hata hâlinde kapanmaktan daha önemli değilse kullanıcı yazımı bir profili uygulamadan önce ValidatePreflightProfile kullanın.

Bir hazır ayardan 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 projeye özgü adlarla 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 birlikte 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şaretinin ardından okunabilir bir yorum bloğu ekler. XMP yolu, üst veri paketlerini tarayan arşiv iş akışları için RDF biçimli bir yük ekler.

Gömülü bir 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 taze 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.

Temkinli bir 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ı bilinçli olarak dar kapsamlı kalır. Son EOF işaretinden sonraki baytları ve eksik EOF işaretlerini işler; ama çapraz başvuru tablolarını yeniden kurmaz ya da stream'leri yeniden yazmaz.

Birden çok raporu birleştirin

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

Toplu çıktı, PDF başına bir durum satırı ve işlenen raporlar, hatalar ve uyarılar için toplamlar listeler; ayrıntılı raporlar girdi dosyası başına tutulsa bile bir hattın tek özet gerektirdiği durumlarda 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ı aynalar: tek dosya veya özyinelemeli dizin girdisi, metin / JSON / HTML çıktısı, isteğe bağlı parola, isteğe bağlı profil, yerleşik hazır ayar, ayrıntılı ilerleme ve toplu özet.

Statik bir pano oluşturun

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

Pano demosu bir index.html ve dosya başına HTML raporları yazar. Web sunucusu gerekmez; böylece çıktı statik bir artefakt olarak yayımlanabilir.

veraPDF tarzı JSON tüketicilerine uyarlanın

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

Bağdaştırıcı, veraPDF benzeri JSON'u hâlihazırda tüketen araçlar için hataları tanıdık bir doğrulama sonucu yapısına dönüştürürken HotPDF semantiğini korur. İhlalleri, yerel JSON raporuyla aynı kararlı ruleId ve yapısal location değerlerini taşır

İlgili konular