У меня возникла проблема с обработкой метаданных XMP при создании счета ZUGFeRD в формате PDF/A 3b. Прежде всего, я должен сказать, что я никогда раньше не имел дела с метаданными XMP, так что это действительно очень новая тема для меня.
Я использую версию 8.0.5 пакета iText, .NET Framework 4.7.2. с C#.
Это мой текущий код для установки метаданных XMP для документа PDF/A, но на самом деле этот код не работает, потому что я постоянно получаю ошибки, которые
< цитата>
iText.Kernel.XMP.XMPException: 'URI пространства имен схемы и префикс
несоответствие'
например, в этой строке код:
xmpMeta.SetStructField(extensionNamespace, schemaArrayItemPath, schemaNamespace, "schema", "Factur-X PDF/A Extension Schema");
У меня уже есть рабочий пример, в котором код не сталкивается с исключениями, но когда я проверяю документ PDF/A с помощью veraPDF, он сообщает мне много ошибок, что PDF /A не соответствует требованиям.
Нет ли примера установки действительных метаданных XMP для счетов-фактур ZUGFeRD? Я уже много искал, но безуспешно. Любая помощь будет очень признательна.
Это мой текущий код:
byte[] xmpBytes = pdfaDoc.GetXmpMetadata();
XMPMeta xmpMeta;
if (xmpBytes != null && xmpBytes.Length > 0)
{
xmpMeta = XMPMetaFactory.ParseFromBuffer(xmpBytes);
}
else
{
xmpMeta = XMPMetaFactory.Create();
}
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("urn:factur-x:pdfa:CrossIndustryDocument:invoice:1p0#", "fx");
PropertyOptions arrayOptions = new PropertyOptions(PropertyOptions.ARRAY | PropertyOptions.ARRAY_ORDERED);
PropertyOptions structOptions = new PropertyOptions(PropertyOptions.STRUCT);
string extensionNamespace = "http://www.aiim.org/pdfa/ns/extension/";
string schemaNamespace = "http://www.aiim.org/pdfa/ns/schema#";
string propertyNamespace = "http://www.aiim.org/pdfa/ns/property#";
string zugferdNamespace = "urn:factur-x:pdfa:CrossIndustryDocument:invoice:1p0#";
xmpMeta.AppendArrayItem(extensionNamespace, "schemas", arrayOptions, null, null);
string schemaArrayItemPath = extensionNamespace + "schemas[1]";
xmpMeta.SetStructField(extensionNamespace, schemaArrayItemPath, schemaNamespace, "schema", "Factur-X PDF/A Extension Schema");
xmpMeta.SetStructField(extensionNamespace, schemaArrayItemPath, schemaNamespace, "namespaceURI", zugferdNamespace);
xmpMeta.SetStructField(extensionNamespace, schemaArrayItemPath, schemaNamespace, "prefix", "fx");
xmpMeta.SetStructField(extensionNamespace, schemaArrayItemPath, schemaNamespace, "property", null, arrayOptions);
string propertyArrayItemPath = schemaArrayItemPath + "/property[1]";
xmpMeta.AppendArrayItem(propertyNamespace, schemaArrayItemPath + "/property", structOptions, null, null);
xmpMeta.SetStructField(propertyNamespace, propertyArrayItemPath, propertyNamespace, "name", "ConformanceLevel");
xmpMeta.SetStructField(propertyNamespace, propertyArrayItemPath, propertyNamespace, "valueType", "Text");
xmpMeta.SetStructField(propertyNamespace, propertyArrayItemPath, propertyNamespace, "category", "external");
xmpMeta.SetStructField(propertyNamespace, propertyArrayItemPath, propertyNamespace, "description", "Conformance level of the invoice.");
xmpMeta.AppendArrayItem(propertyNamespace, schemaArrayItemPath + "/property", structOptions, null, null);
string secondPropertyPath = schemaArrayItemPath + "/property[2]";
xmpMeta.SetStructField(propertyNamespace, secondPropertyPath, propertyNamespace, "name", "DocumentType");
xmpMeta.SetStructField(propertyNamespace, secondPropertyPath, propertyNamespace, "valueType", "Text");
xmpMeta.SetStructField(propertyNamespace, secondPropertyPath, propertyNamespace, "category", "external");
xmpMeta.SetStructField(propertyNamespace, secondPropertyPath, propertyNamespace, "description", "Type of the document.");
Подробнее здесь: https://stackoverflow.com/questions/792 ... rd-invoice
IText – PDF/A – Установка метаданных XMP для счета-фактуры ZUGFeRD ⇐ C#
Место общения программистов C#
-
Anonymous
1732713010
Anonymous
У меня возникла проблема с обработкой метаданных XMP при создании счета ZUGFeRD в формате PDF/A 3b. Прежде всего, я должен сказать, что я никогда раньше не имел дела с метаданными XMP, так что это действительно очень новая тема для меня.
Я использую версию 8.0.5 пакета iText, .NET Framework 4.7.2. с C#.
Это мой текущий код для установки метаданных XMP для документа PDF/A, но на самом деле этот код не работает, потому что я постоянно получаю ошибки, которые
< цитата>
iText.Kernel.XMP.XMPException: 'URI пространства имен схемы и префикс
несоответствие'
например, в этой строке код:
xmpMeta.SetStructField(extensionNamespace, schemaArrayItemPath, schemaNamespace, "schema", "Factur-X PDF/A Extension Schema");
У меня уже есть рабочий пример, в котором код не сталкивается с исключениями, но когда я проверяю документ PDF/A с помощью veraPDF, он сообщает мне много ошибок, что PDF /A не соответствует требованиям.
Нет ли примера установки действительных метаданных XMP для счетов-фактур ZUGFeRD? Я уже много искал, но безуспешно. Любая помощь будет очень признательна.
Это мой текущий код:
byte[] xmpBytes = pdfaDoc.GetXmpMetadata();
XMPMeta xmpMeta;
if (xmpBytes != null && xmpBytes.Length > 0)
{
xmpMeta = XMPMetaFactory.ParseFromBuffer(xmpBytes);
}
else
{
xmpMeta = XMPMetaFactory.Create();
}
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("urn:factur-x:pdfa:CrossIndustryDocument:invoice:1p0#", "fx");
PropertyOptions arrayOptions = new PropertyOptions(PropertyOptions.ARRAY | PropertyOptions.ARRAY_ORDERED);
PropertyOptions structOptions = new PropertyOptions(PropertyOptions.STRUCT);
string extensionNamespace = "http://www.aiim.org/pdfa/ns/extension/";
string schemaNamespace = "http://www.aiim.org/pdfa/ns/schema#";
string propertyNamespace = "http://www.aiim.org/pdfa/ns/property#";
string zugferdNamespace = "urn:factur-x:pdfa:CrossIndustryDocument:invoice:1p0#";
xmpMeta.AppendArrayItem(extensionNamespace, "schemas", arrayOptions, null, null);
string schemaArrayItemPath = extensionNamespace + "schemas[1]";
xmpMeta.SetStructField(extensionNamespace, schemaArrayItemPath, schemaNamespace, "schema", "Factur-X PDF/A Extension Schema");
xmpMeta.SetStructField(extensionNamespace, schemaArrayItemPath, schemaNamespace, "namespaceURI", zugferdNamespace);
xmpMeta.SetStructField(extensionNamespace, schemaArrayItemPath, schemaNamespace, "prefix", "fx");
xmpMeta.SetStructField(extensionNamespace, schemaArrayItemPath, schemaNamespace, "property", null, arrayOptions);
string propertyArrayItemPath = schemaArrayItemPath + "/property[1]";
xmpMeta.AppendArrayItem(propertyNamespace, schemaArrayItemPath + "/property", structOptions, null, null);
xmpMeta.SetStructField(propertyNamespace, propertyArrayItemPath, propertyNamespace, "name", "ConformanceLevel");
xmpMeta.SetStructField(propertyNamespace, propertyArrayItemPath, propertyNamespace, "valueType", "Text");
xmpMeta.SetStructField(propertyNamespace, propertyArrayItemPath, propertyNamespace, "category", "external");
xmpMeta.SetStructField(propertyNamespace, propertyArrayItemPath, propertyNamespace, "description", "Conformance level of the invoice.");
xmpMeta.AppendArrayItem(propertyNamespace, schemaArrayItemPath + "/property", structOptions, null, null);
string secondPropertyPath = schemaArrayItemPath + "/property[2]";
xmpMeta.SetStructField(propertyNamespace, secondPropertyPath, propertyNamespace, "name", "DocumentType");
xmpMeta.SetStructField(propertyNamespace, secondPropertyPath, propertyNamespace, "valueType", "Text");
xmpMeta.SetStructField(propertyNamespace, secondPropertyPath, propertyNamespace, "category", "external");
xmpMeta.SetStructField(propertyNamespace, secondPropertyPath, propertyNamespace, "description", "Type of the document.");
Подробнее здесь: [url]https://stackoverflow.com/questions/79229526/itext-pdf-a-set-xmp-metadata-for-zugferd-invoice[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия