Я не могу достичь, чтобы соответствовать своему PDF Factur-X к PDF/A-3 с использованием ITEXT (ISO 19005-3: 2012 Пункт 6C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Я не могу достичь, чтобы соответствовать своему PDF Factur-X к PDF/A-3 с использованием ITEXT (ISO 19005-3: 2012 Пункт 6

Сообщение Anonymous »

У меня есть для миссии, чтобы создать соответствие PDF/A, и для этого я использую fnfe-mpe.org vardator
После большой работы я достиг, чтобы уменьшить все свои ошибки только к одному, но я просмотрел сеть уже несколько недель, и я не могу достичь, чтобы исправить последнее
Я действительно не знаю, но я действительно не знаю, но я действительно не знаю, но я действительно не знаю, но я действительно не знаю, но я действительно не знаю, но я действительно не знаю, но я действительно не знаю, но я действительно не знаю, но я действительно не знаю. Ошибка < /p>
Моя проблема: < /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>
И это мой код для воссоздания PDF, чтобы он соответствовал < /p>
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>
Что мне не хватает? Какая информация мне не хватает?>

Подробнее здесь: https://stackoverflow.com/questions/795 ... o-19005-32
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»