Ich habe die Mission, eine PDF/A-Konformität zu erstellen, und um dies zu tun, verwende ich nach viel Arbeit Fnfe-mpe.org Validator. Fehler < /p>
Mein Problem ist: < /p>
ISO 19005-3:2012 clause 6.8 test 4
The additional information provided for associated files as well as the usage requirements for associated files indicate the relationship between the embedded file and the PDF document or the part of the PDF document with which it is associated.
Level: CosFileSpecification
Context:
root/EmbeddedFiles[0]
root/indirectObjects[10](46 0)/directObject[0]
< /code>
Und dies ist mein Code, um einen PDF neu zu erstellen, damit es < /p>
entspricht ">var doc = new PdfADocument(new PdfReader(srcfs), new PdfWriter(srcDes));
// I tried some stuff to correct this issue
PdfDictionary dic = new PdfDictionary();
PdfDictionary inDic = new PdfDictionary();
inDic.Put(PdfName.F, new PdfStream(File.ReadAllBytes(file.Item1)));
dic.Put(PdfName.EF, inDic);
var spec = PdfFileSpec.CreateEmbeddedFileSpec(doc, File.ReadAllBytes(file.Item1), Path.GetFileName(file.Item2), Path.GetFileName(file.Item2), new PdfName("text/xml"), dic, PdfName.Data);
doc.AddFileAttachment(Path.GetFileName(file.Item2), spec);
// Setup for xmp confirmity
XMPMeta metadata = doc.GetXmpMetadata(true);
XMPMetaFactory.GetSchemaRegistry().DeleteNamespace("urn:ferd:pdfa:CrossIndustryDocument:invoice:1p0#");
string zugferdNamespace = "urn:factur-x:pdfa:CrossIndustryDocument:invoice:1p0#";
XMPMetaFactory.GetSchemaRegistry().RegisterNamespace("http://www.aiim.org/pdfa/ns/extension/", "pdfaExtension");
XMPMetaFactory.GetSchemaRegistry().RegisterNamespace("http://www.aiim.org/pdfa/ns/schema#", "pdfaSchema");
XMPMetaFactory.GetSchemaRegistry().RegisterNamespace("http://www.aiim.org/pdfa/ns/property#", "pdfaProperty");
XMPMetaFactory.GetSchemaRegistry().RegisterNamespace(zugferdNamespace, "fx");
// Value for metadata
metadata.SetProperty(zugferdNamespace, "DocumentType", "INVOICE", new PropertyOptions(PropertyOptions.SEPARATE_NODE));
metadata.SetProperty(zugferdNamespace, "Version", "1.0", new PropertyOptions(PropertyOptions.SEPARATE_NODE));
metadata.SetProperty(zugferdNamespace, "ConformanceLevel", "EXTENDED", new PropertyOptions(PropertyOptions.SEPARATE_NODE));
metadata.SetProperty(zugferdNamespace, "DocumentFileName", "factur-x.xml", new PropertyOptions(PropertyOptions.SEPARATE_NODE));
PropertyOptions bagOptions = new PropertyOptions(PropertyOptions.ARRAY);
metadata.SetProperty(XMPConst.NS_PDFA_EXTENSION, "schemas", null, bagOptions);
string bagPath = "pdfaExtension:schemas";
int newItemIndex = metadata.CountArrayItems(XMPConst.NS_PDFA_EXTENSION, bagPath) + 1;
string newItemPath = bagPath + "[" + newItemIndex + "]";
PropertyOptions structOptions = new PropertyOptions(PropertyOptions.STRUCT);
metadata.SetProperty(XMPConst.NS_PDFA_EXTENSION, newItemPath, null, structOptions);
metadata.SetStructField(XMPConst.NS_PDFA_EXTENSION, newItemPath, XMPConst.NS_PDFA_SCHEMA, "schema", "Factur-X PDFA Extension Schema");
metadata.SetStructField(XMPConst.NS_PDFA_EXTENSION, newItemPath, XMPConst.NS_PDFA_SCHEMA, "namespaceURI", zugferdNamespace);
metadata.SetStructField(XMPConst.NS_PDFA_EXTENSION, newItemPath, XMPConst.NS_PDFA_SCHEMA, "prefix", "fx");
// Information about metadata
string seqPath = newItemPath + "/pdfaSchema:property";
PropertyOptions seqOptions = new PropertyOptions(PropertyOptions.ARRAY_ORDERED);
metadata.SetProperty(XMPConst.NS_PDFA_EXTENSION, seqPath, null, seqOptions);
string firstSeqItemPath = seqPath + "[1]";
string secondSeqItemPath = seqPath + "[2]";
string thirdSeqItemPath = seqPath + "[3]";
string fourthSeqItemPath = seqPath + "[4]";
metadata.SetProperty(XMPConst.NS_PDFA_EXTENSION, firstSeqItemPath, null, structOptions);
metadata.SetStructField(XMPConst.NS_PDFA_EXTENSION, firstSeqItemPath, XMPConst.NS_PDFA_PROPERTY, "name", "DocumentFileName");
metadata.SetStructField(XMPConst.NS_PDFA_EXTENSION, firstSeqItemPath, XMPConst.NS_PDFA_PROPERTY, "valueType", "Text");
metadata.SetStructField(XMPConst.NS_PDFA_EXTENSION, firstSeqItemPath, XMPConst.NS_PDFA_PROPERTY, "category", "external");
metadata.SetStructField(XMPConst.NS_PDFA_EXTENSION, firstSeqItemPath, XMPConst.NS_PDFA_PROPERTY, "description", "The name of the embedded XML document");
metadata.SetProperty(XMPConst.NS_PDFA_EXTENSION, secondSeqItemPath, null, structOptions);
metadata.SetStructField(XMPConst.NS_PDFA_EXTENSION, secondSeqItemPath, XMPConst.NS_PDFA_PROPERTY, "name", "DocumentType");
metadata.SetStructField(XMPConst.NS_PDFA_EXTENSION, secondSeqItemPath, XMPConst.NS_PDFA_PROPERTY, "valueType", "Text");
metadata.SetStructField(XMPConst.NS_PDFA_EXTENSION, secondSeqItemPath, XMPConst.NS_PDFA_PROPERTY, "category", "external");
metadata.SetStructField(XMPConst.NS_PDFA_EXTENSION, secondSeqItemPath, XMPConst.NS_PDFA_PROPERTY, "description", "The type of the hybrid document in capital letters, e.g. INVOICE or ORDER");
metadata.SetProperty(XMPConst.NS_PDFA_EXTENSION, thirdSeqItemPath, null, structOptions);
metadata.SetStructField(XMPConst.NS_PDFA_EXTENSION, thirdSeqItemPath, XMPConst.NS_PDFA_PROPERTY, "name", "Version");
metadata.SetStructField(XMPConst.NS_PDFA_EXTENSION, thirdSeqItemPath, XMPConst.NS_PDFA_PROPERTY, "valueType", "Text");
metadata.SetStructField(XMPConst.NS_PDFA_EXTENSION, thirdSeqItemPath, XMPConst.NS_PDFA_PROPERTY, "category", "external");
metadata.SetStructField(XMPConst.NS_PDFA_EXTENSION, thirdSeqItemPath, XMPConst.NS_PDFA_PROPERTY, "description", "The actual version of the standard applying to the embedded XML document");
metadata.SetProperty(XMPConst.NS_PDFA_EXTENSION, fourthSeqItemPath, null, structOptions);
metadata.SetStructField(XMPConst.NS_PDFA_EXTENSION, fourthSeqItemPath, XMPConst.NS_PDFA_PROPERTY, "name", "ConformanceLevel");
metadata.SetStructField(XMPConst.NS_PDFA_EXTENSION, fourthSeqItemPath, XMPConst.NS_PDFA_PROPERTY, "valueType", "Text");
metadata.SetStructField(XMPConst.NS_PDFA_EXTENSION, fourthSeqItemPath, XMPConst.NS_PDFA_PROPERTY, "category", "external");
metadata.SetStructField(XMPConst.NS_PDFA_EXTENSION, fourthSeqItemPath, XMPConst.NS_PDFA_PROPERTY, "description", "The conformance level of the embedded XML document");
// Metadata ready to go
doc.SetXmpMetadata(metadata, new SerializeOptions(SerializeOptions.OMIT_PACKET_WRAPPER));
< /code>
Was fehlt mir? Welche Informationen vermisse ich?>
Ich kann nicht erreichen, dass ich meine PDF Factur-X an PDF/A-3 mit ITEXT (ISO 19005-3: 2012-Klausel 6.8 Test 4) anpass ⇐ C#
-
- Similar Topics
- Replies
- Views
- Last post