|
کتابچه راهنمای Preflight
این کتابچه راهنما، رابطهای برنامهنویسی (API) و نمونههای Preflight را در قالب دستورالعملهای وظیفهمحور گروهبندی میکند؛ هنگامی که به امضاهای دقیق متدها نیاز دارید، به مرجع API مراجعه کنید و زمانی که به یک مسیر عملی برای برنامه، اسکریپت بیلد یا کار CI نیاز دارید، از این صفحه استفاده کنید
یک فرمت خروجی انتخاب کنید
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;
خروجی متنی (Text) بایتمحور و مناسب برای ابزارهای diff است؛ فرمت JSON برای استفاده در خط لوله (pipeline) مناسب است؛ فرمت HTML خودمحور است و میتوان آن را مستقیماً باز کرد یا به عنوان یک آرتفکت CI ذخیره کرد؛ فرمت CSV از ستونهای ثابت برای گردشکارهای صفحهگسترده و گزارشهای دستهای (batch) استفاده میکند
اسناد 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;
گزارش PDF/VT بر روی شناسایی ISO 16612-2 و ساختار بخش سند تمرکز دارد: متادیتاهای XMP GTS_PDFVTVersion در متن عنصر یا به شکل ویژگی RDF، مطابقت تاریخ اصلاح، نشانگر پایه PDF/X، هدف خروجی (output intent)، پوشش DPartRoot، DPartRootNode، NodeNameList و DPart در سطح صفحه
یک پروفایل اعمال کنید
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;
پروفایلها بررسیها، هشدارها یا تمام راهنماییهای نامگذاریشده را سرکوب میکنند؛ زمانی که متوقف کردن برنامه در صورت خرابی (failing closed) مهمتر از نادیده گرفتن بیصدا یک نام منسوخشده است، قبل از اعمال یک پروفایل نوشتهشده توسط کاربر، از ValidatePreflightProfile استفاده کنید
یک پروفایل با قابلیت استفاده مجدد از یک پیشتنظیم ایجاد کنید
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;
برای ترکیب یک پیشتنظیم با نامهای خاص پروژه، از MergePreflightProfiles استفاده کنید؛ برای بررسی انحراف پروفایل قبل از بهروزرسانی فایل پیکربندی مشترک، از DiffPreflightProfiles استفاده کنید
گزارش را همراه با PDF بایگانی کنید
PDF.EmbedPreflightReportInPDF('Input.pdf', 'Input-with-report.pdf');
PDF.EmbedPreflightReportAsXMP('Input.pdf', 'Input-with-xmp-report.pdf');
مسیر جاسازی متنی، یک بلوک کامنت خوانا را بعد از آخرین نشانگر EOF اضافه میکند؛ مسیر XMP یک داده با ساختار RDF را برای گردشکارهای بایگانی که بستههای متاداده را اسکن میکنند، اضافه میکند
یک گزارش جاسازیشده را اعتبارسنجی کنید
var
OriginalReport: AnsiString;
CurrentReport: AnsiString;
begin
if not PDF.LoadAndValidatePreflightReport(
'Input-with-report.pdf', OriginalReport, CurrentReport) then
WriteLn(string(PDF.ComparePreflightReports(OriginalReport, CurrentReport)));
end;
مسیر اعتبارسنجی، اثر انگشت جاسازیشده را با یک اجرای تازه از preflight روی بایتهای منبع مقایسه میکند؛ کمککننده diff خطمحور است و برای گزارشهای preflight مربوط به HotPDF بهینه شده است
یک مرحله تعمیر محافظهکارانه را اجرا کنید
var
RepairsApplied: AnsiString;
begin
if PDF.RepairPDFFromPreflightReport(
'Broken.pdf', 'Broken-repaired.pdf', RepairsApplied) then
WriteLn(string(RepairsApplied));
end;
کمککننده تعمیر عمداً محدود میماند؛ این ابزار بایتهای اضافی بعد از آخرین نشانگر EOF و نشانگرهای گمشده EOF را مدیریت میکند، اما جداول cross-reference را بازسازی نمیکند یا جریانها را بازنویسی نمیکند
گزارشهای زیادی را تجمیع کنید
Reports[0] := PDF.CreatePreflightReport('A.pdf');
Reports[1] := PDF.CreatePreflightReport('B.pdf');
Summary := PDF.AggregatePreflightReports(Reports);
خروجی تجمیعشده یک خط وضعیت به ازای هر PDF و مجموع گزارشهای پردازششده، خرابیها و هشدارها را فهرست میکند؛ زمانی که یک خط لوله به یک خلاصه نیاز دارد، حتی اگر گزارشهای دقیق به ازای هر فایل ورودی نگهداری شوند، این ویژگی مفید است
از ابزار خط فرمان استفاده کنید
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) گردش کار کتابخانه را آینهسازی میکند: ورودی تک فایل یا دایرکتوری بازگشتی، خروجی متنی / JSON / HTML، رمز عبور اختیاری، پروفایل اختیاری، پیشتنظیم داخلی، پیشرفت دقیق و خلاصه تجمیعشده
یک داشبورد استاتیک بسازید
PreflightDashboard C:\Archive C:\Archive\preflight-dashboard
نمونه داشبورد یک فایل index.html به همراه گزارشهای HTML به ازای هر فایل مینویسد؛ به وبسرور نیازی نیست، بنابراین خروجی میتواند به عنوان یک آرتفکت استاتیک منتشر شود
با مصرفکنندگان JSON به سبک veraPDF سازگار شوید
Report := PDF.CreatePreflightReport('Input.pdf');
JSON := PDF.ConvertPreflightReportToVeraPDFStyle(Report);
آداپتور معنای HotPDF را حفظ میکند در حالی که خرابیها را به یک ساختار نتیجه اعتبارسنجی آشناتر برای ابزارهایی که از JSONهای شبیه به veraPDF استفاده میکنند، تغییر شکل میدهد
موضوعات مرتبط
|