|
Preflight Cookbook
ספר מתכונים זה מקבץ את ממשקי ה-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;
פלט טקסט הוא יציב ברמת הבתים וידידותי להשוואות (diff). JSON מתאים לקליטה בצינורות נתונים. HTML הוא עצמאי וניתן לפתוח אותו ישירות או לשמור אותו כארטיפקט של CI. CSV משתמש בעמודות יציבות עבור תהליכי עבודה של גיליונות אלקטרוניים ודוחות אצווה
אמת מסמכי 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, כוונת פלט, 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;
פרופילים מדכאים בדיקות ספציפיות, אזהרות או את כל הרמזים. השתמש ב-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, סיסמה אופציונלית, פרופיל אופציונלי, הגדרה מראש מובנית, התקדמות מפורטת וסיכום מאוגד
בנה לוח בקרה (dashboard) סטטי
PreflightDashboard C:\Archive C:\Archive\preflight-dashboard
הדגמת לוח הבקרה כותבת קובץ index.html פלוס דוחות HTML לכל קובץ. אין צורך בשרת אינטרנט, כך שניתן לפרסם את הפלט כארטיפקט סטטי
התאם לצרכני JSON בסגנון veraPDF
Report := PDF.CreatePreflightReport('Input.pdf');
JSON := PDF.ConvertPreflightReportToVeraPDFStyle(Report);
המתאם שומר על הסמנטיקה של HotPDF תוך עיצוב מחדש של הכשלים למבנה מוכר של תוצאת אימות עבור כלים שכבר צורכים JSON דמוי veraPDF
נושאים קשורים
|