THotPDF.ValidatePDFA4 Method
מאמתת גרף אובייקטים שנוצר או נטען מול פרופיל PDF/A-4 הבסיסי, PDF/A-4e ההנדסי או PDF/A-4f לקבצים משויכים הנתמכים, ומחזירה אבחון מובנה ויציב
הצהרה
function ValidatePDFA4(
const Options: THPDFPDFA4ValidationOptions;
out Issues: THPDFPDFA4ValidationIssues): boolean; overload;
function ValidatePDFA4(
const Options: THPDFPDFA4ValidationOptions;
out Findings: THPDFComplianceFindings): boolean; overload;
יחידה
HPDFDoc
טיפוסי פרופיל וחומרה
THPDFPDFA4Profile = (
p4pAutomatic,
p4pBase,
p4pEngineering,
p4pAssociatedFiles
);
THPDFPDFA4IssueSeverity = (
p4isWarning,
p4isError
);
THPDFPDFA4Profile בוחר בין הסקת מטא-דאטה לבין פרופיל תאימות מפורש, ו-THPDFPDFA4IssueSeverity מבדיל אבחון מייעץ משגיאות אימות
Options
| שדה | מטרה |
|---|---|
Profile | בוחר אימות מבוסס מטא-דאטה אוטומטי, בסיסי, הנדסי או של קבצים משויכים |
MaxObjects | מתחם מעבר איטרטיבי על גרף האובייקטים, עם ברירת מחדל של 1,000,000 אובייקטים |
MaxIssues | מתחם אבחון שנשמר, עם ברירת מחדל של 1,024 בעיות |
MaxDecodedBytes | מתחם בייטים מצטברים של מטא-דאטה, ICC וזרמי תוכן שפוענחו, עם ברירת מחדל של 64 MiB |
MaxContentTokens | מתחם tokens מצטברים של זרמי תוכן, עם ברירת מחדל של 4,000,000 tokens |
CheckEmbeddedFonts | בודק גופני רינדור מול תוכנית גופן מוטמעת |
CheckAnnotationAppearances | בודק דגלי הערות וזרמי הופעה רגילים |
CheckOptionalContent | בודק שמות תצורה של optional content ואת הייחודיות שלהם |
CheckColourSpaces | בודק צבע התקן מצויר, פרופילי ICC, output intents, ברירות מחדל, תמונות, shadings, טפסים וקבוצות שקיפות |
CheckTransparency | בודק alpha מצויר, מסכות רכות, מצבי blend וכיסוי מרחבי blending ברמת עמוד |
CheckCompositeFonts | בודק צאצאי Type 0, CIDSystemInfo, תאימות CMap ואילוצי CIDToGIDMap |
CheckMetadataPackets | בודק כל זרם מטא-דאטה מול אילוצי UTF-8, כותרת packet, מעטפת RDF וזיהוי PDF/A |
Diagnostics
כל THPDFPDFA4ValidationIssue מדווח על חומרה, קוד יציב עם מרחב שמות, סעיף ISO 19005-4 הרלוונטי, נתיב אובייקט, מספר אובייקט, אינדקס עמוד מאפס כשידוע והודעה קריאה לאדם
ה-overload של THPDFComplianceFindings חושף את אותו מעבר דרך מודל הממצאים המשותף הקריא למכונה, עם פרופיל PDF/A-4 ומצב תיקון crsNotAttempted
ה-validator מכסה זיהוי PDF 2.0, מצב trailer ID והצפנה, כל packet של מטא-דאטה, הגבלות Info, כותרות ICC ומספרי ערוצים, output intents של מסמך ועמוד, צבע התקן מצויר, מצב גרפיקה בירושה על פני מערכי זרמי תוכן ו-Form XObjects מקוננים, מסכות תמונה, shadings, שקיפות, הטמעת גופני רינדור, קשרי גומלין של גופנים מורכבים, הערות והופעות, הגבלות AcroForm, פעולות ופעולות נוספות, קבצים משויכים, optional content, הפניות חוץ וכללי 3D או קבצים מצורפים הייחודיים לפרופיל
ממצאי צבע ושקיפות מבוססים על אופרטורי ציור ולא רק על אופרטורי קביעת צבע; tokenization של תוכן ושימוש חוזר בזרמים מפוענחים נשמרים במטמון, ובכל קריאה עדיין מוערך מצב הגרפיקה בירושה עבור הקשר של העמוד או ה-Form שלה
מגבלות בייטים מפוענחים, tokens של תוכן, אובייקטים ובעיות שנשמרו נכשלות בביטחון עם ממצאי pdfa4.validation.* יציבים, לפני שעבודה בלתי מתוחמת יכולה להימשך
דוגמה
var
Options: THPDFPDFA4ValidationOptions;
Issues: THPDFPDFA4ValidationIssues;
begin
Options := THPDFPDFA4ValidationOptions.Default;
Options.Profile := p4pAutomatic;
if not PDF.ValidatePDFA4(Options, Issues) then
raise Exception.CreateFmt('%s at %s',
[String(Issues[0].Code), String(Issues[0].Path)]);
end;
התנהגות יצירה
EndDoc מריץ אוטומטית את ה-validator עבור '4', '4E' ו-'4F' וזורק חריגה לפני הסריאליזציה כשנותרת שגיאה
יצירת PDF/A-4 משמיטה את רשומת Info של ה-trailer, יצירת PDF/A-4f תמיד יוצרת את עץ השמות EmbeddedFiles הנדרש, והערות צירוף קבצים מתקבלות רק ב-PDF/A-4f שבו זרם מוטמע, Filespec, קשר גומלין AF, מערך ה-AF של ה-Catalog ועץ השמות נפלטים יחד