PDFium Component Docs

FPdfPdfvtMime-enhet

Unit: FPdfPdfvtMime
Bygger og validerer enkeltfils PDF/VT-2s MIME-partstrømmer som bærer et innebygd PDF/VT-dokument, dets gjenbrukbare vedleggsnyttelast og ICC-profilen som én multipart-beholder

Syntax

TVt2sChunkKind = (vtckInlinePdf, vtckAttachmentPdf, vtckIccProfile);

TPdfVT2sChunk = record
  Kind: TVt2sChunkKind;
  Bytes: TBytes;
  FileName: AnsiString;
end;

TPdfVT2sChunks = array of TPdfVT2sChunk;

TAnsiStrings = array of AnsiString;

TPdfVT2sValidationResult = record
  Issues: TPdfVT2sValidationIssues;
  function IsCompliant: Boolean;
end;

TPdfVTPrintingConditionSource = (vtpcsNone, vtpcsEmbeddedProfile, vtpcsMimeProfile);

TPdfVTPrintingConditionEvidence = record
  PartIndex: Integer;
  Conformance: TPdfVTConformance;
  PdfXVersion: AnsiString;
  OutputIntentObjectNumber: Integer;
  OutputConditionIdentifier: AnsiString;
  RegistryName: AnsiString;
  Source: TPdfVTPrintingConditionSource;
  ProfileFileName: AnsiString;
  ProfileName: AnsiString;
  ProfileColorSpace: AnsiString;
  ProfileByteSize: Int64;
  ProfileMd5: string;
  ProfileSha256: string;
  ProfileVersion: string;
  ProfileDeviceClass: string;
  ProfilePcs: string;
  ProfileComponentCount: Integer;
  Resolved: Boolean;
  ProfileValid: Boolean;
  DPart: TPdfVTDPartEvidence;
end;

TPdfVT2sValidationReport = record
  Validation: TPdfVT2sValidationResult;
  PrintingConditions: TPdfVTPrintingConditionEvidenceArray;
end;

procedure BuildPdfVT2sStream(const Chunks: TPdfVT2sChunks; Dest: TStream);
function ValidatePdfVT2sStream(Source: TStream): TPdfVT2sValidationResult;
function InspectPdfVT2sStream(Source: TStream): TPdfVT2sValidationReport;

Description

FPdfPdfvtMime implementerer PDF/VT-2s-transporten definert i ISO 16612-2 Anneks, der et PDF/VT-dokument pluss dets refererte gjenbrukbare PDF-innhold og ICC-profil pakkes som én enkelt MIME multipart-strøm

I motsetning til TPdf.SaveAsPdfVT-stien som skriver en frittstående PDF/VT-1-fil, arbeider denne enheten rent på bytestrømmer og laster aldri pdfium.dll, så den kan kjøre i headless-tjenere og batchpipelines

BuildPdfVT2sStream setter sammen delene i rekkefølge og sender ut StreamVersion-headeren, delgrensene og Content-Type / Content-Disposition-headere per del; ValidatePdfVT2sStream parser en eksisterende strøm tilbake og rapporterer strukturelle avvik, avvik i utskriftsbetingelser og ICC-avvik som et typet problemsett

InspectPdfVT2sStream returnerer det samme kompatibilitetsresultatet pluss bevis for hver PDF/VT-del, inkludert PDF/VT-samsvar, PDF/X-basis, OutputIntent-identitet, profilopprinnelse, MD5 og SHA-256, rå ICC-metadata og DPart-side- og mottakerposttellere

Hver PDF-del klassifiseres først med ValidatePdfVTCompliance; kun-PDF/X gjenbrukbare vedlegg forblir gyldige referansemål, men ekskluderes fra PDF/VT-hierarki- og utskriftsbetingelsessammenligninger

Profilpakkingen følger filbasisen: PDF/VT-1 med PDF/X-4 og PDF/VT-2 med PDF/X-5g bruker en innebygd DestOutputProfile, mens PDF/VT-2 med PDF/X-4p eller PDF/X-5pg bruker DestOutputProfileRef løst til en tidligere ICC MIME-del

Chunk kinds

ValueMIME role
vtckInlinePdfEt PDF/VT-dokument båret som en innebygd application/pdf-del; minst én kreves
vtckAttachmentPdfEn gjenbrukbar PDF-innholdsdel referert av det innebygde dokumentet, båret som et attachment med et filnavn
vtckIccProfileEn ICC-profildel (application/vnd.iccprofile) levert som et vedlegg med et filnavn

Supporting types

TypePurpose
TPdfVT2sChunksDynamisk array av ordnede MIME-deler levert til BuildPdfVT2sStream
TAnsiStringsDynamisk filnavnarray brukt ved validering av eksterne filreferanser i det innebygde PDF-dokumentet
TPdfVT2sValidationIssuesMengde av TPdfVT2sValidationIssue-funn returnert av valideringen
TPdfVTPrintingConditionSourceOpprinnelsen til profilbeviset: vtpcsNone når uløst, vtpcsEmbeddedProfile for en innebygd DestOutputProfile-strøm, vtpcsMimeProfile for en DestOutputProfileRef løst fra en ICC MIME-del
TPdfVTPrintingConditionEvidencePer del: PDF/VT- og PDF/X-klassifisering, OutputIntent, profilkilde, identitet, digest, ICC-header og DPart-fakta
TPdfVT2sValidationReportDetaljert resultat returnert av InspectPdfVT2sStream uten å endre det tidligere resultatoppsettet

Validation issues

ValueReported when
vtmviNotMultipartStrømmen er ikke en multipart MIME-beholder
vtmviMissingStreamVersionDen påkrevde PDF/VT StreamVersion-headeren mangler
vtmviStreamVersionValueStreamVersion-verdien er ikke den forventede 1
vtmviStreamVersionAfterCtStreamVersion vises etter Content-Type-linjen i stedet for før den
vtmviMissingBoundaryContent-Type boundary-parameteren mangler
vtmviNoInlinePdfIngen innebygd PDF/VT-del finnes
vtmviInlinePdfNotPdfVTDen innebygde delen er ikke deklarert som PDF/VT
vtmviIccProfileBadDispositionEn ICC-profildel er ikke et vedlegg
vtmviAttachmentMissingFilenameEn vedleggsdel mangler det påkrevde filnavnet
vtmviInlineHasFilenameDen innebygde PDF-delen bærer et filnavn, som ikke er tillatt
vtmviNodeNameListMismatchTo PDF/VT-filer i strømmen eksponerer ulike NodeNameList-verdier
vtmviRecordLevelMismatchDPart-postnivåer er inkonsistente på tvers av beholderen
vtmviForwardReferenceEt vedlegg refereres før det vises i strømmen
vtmviBoundaryInvalidCharGrensestrengen inneholder tegn som ikke tillates av RFC 2046
vtmviDuplicateFilenameTo MIME-vedlegg eksponerer det samme filnavnet, med skille på store og små bokstaver
vtmviOutputIntentAmbiguousEn PDF-del har null eller flere autoritative GTS_PDFX OutputIntents
vtmviOutputProfilePackagingMismatchOutputIntenten har begge profilformene, ingen av formene, eller en form som er uforenlig med PDF/X-4-, PDF/X-4p-, PDF/X-5g- eller PDF/X-5pg-basisen
vtmviOutputProfileReferenceInvalidEn DestOutputProfileRef utelater påkrevd metadata eller en URL-filspesifikasjon, eller bruker en forbudt ColorantTable
vtmviReferencedPartWrongTypeDet refererte filnavnet løses til en MIME-del som ikke er en ICC-profil
vtmviIccProfileInvalidICC-headeren, deklarert størrelse, signatur, tag-tabell eller støttet prosessfargerom er ugyldig
vtmviIccChecksumMismatchDen dekodede 16-byte CheckSum avviker fra MD5 av hele ICC-filen
vtmviIccVersionMismatchDe deklarerte fire ICCVersion-bytene avviker fra ICC-header-bytene 8 til 11
vtmviIccColorSpaceMismatchProfileCS avviker fra ICC-header-bytene 16 til 19, eller er ikke GRAY, RGB eller CMYK
vtmviIccProfileNameMismatchProfileName matcher ingen gyldig profileDescriptionTag-locale-verdi
vtmviPrintingConditionUnresolvedDen autoritative OutputIntenten, identifikatoren eller den eksterne ICC-avhengigheten kan ikke løses
vtmviPrintingConditionMismatchPDF/VT-deler er uenige om OutputConditionIdentifier, RegistryName-tilstedeværelse eller verdi, eller prosessfargerom
vtmviIccDeviceClassMismatchEn innebygd eller ekstern målsprofil er ikke en utdataenhets-prtr-profil

Remarks

Example

var Chunks: TPdfVT2sChunks;
begin
  SetLength(Chunks, 2);
  Chunks[0].Kind := vtckIccProfile;
  Chunks[0].FileName := 'profile.icc';
  Chunks[0].Bytes := IccBytes;
  Chunks[1].Kind := vtckInlinePdf;
  Chunks[1].Bytes := InlinePdfBytes;
  BuildPdfVT2sStream(Chunks, MimeStream);
end;

See Also

FPdfAsn1