Создание PDF, соответствующего PDF/3-A, и добавление счета ZUGFeRD в Java
Присоединение ZUGFeRD к PDF
Мы рекомендуем следующие шаги для присоединения ZUGFeRD к PDF:
-
Определите переменную пути, указывающую на папку, где находятся входные и выходные PDF-файлы.
-
Определите строковую переменную path, которая хранит путь к PDF-файлу, который будет обработан. Используйте метод
Paths.get
для объединения частей полного пути. -
Создайте блок try-with-resources, который гарантирует, что объект Document, созданный из переменной пути, будет автоматически закрыт после завершения блока. Объект Document представляет PDF-документ, который будет изменен и сохранен.
-
Создайте объект FileSpecification, предоставив путь и описание другого файла, который содержит метаданные счета, соответствующие стандарту ZUGFeRD.
-
Добавьте свойства в объект спецификации файла, такие как описание, MIME-тип и AFrelationship. AFrelationship указывает, как встроенный файл соотносится с PDF-документом. В данном случае он установлен как “Alternative”, что означает, что встроенный файл является альтернативным представлением содержимого PDF.
-
Добавьте объект спецификации файла в коллекцию встроенных файлов документа. Имя файла должно соответствовать стандарту ZUGFeRD, например, “factor-x.xml”.
-
Преобразуйте документ в формат PDF/A-3U, подмножество PDF, которое обеспечивает долгосрочное сохранение электронных документов. PDF/A-3U позволяет встраивать файлы любого формата в PDF-документы.
-
Сохраните преобразованный документ как новый PDF-файл (например, “ZUGFeRD-res.pdf”).
-
Закройте блок try-with-resources и освободите объект Document.
String _dataDir = "/home/aspose/pdf-examples/Samples/";
String path = Paths.get(_dataDir, "ZUGFeRD", "ZUGFeRD-test.pdf").toString();
try (Document document = new Document(path)) {
String description = "Метаданные счета, соответствующие стандарту ZUGFeRD";
path = Paths.get(_dataDir, "ZUGFeRD", "factur-x.xml").toString();
FileSpecification fileSpecification = new FileSpecification(path.toString(), description);
fileSpecification.setMIMEType("text/xml");
fileSpecification.setAFRelationship(com.aspose.pdf.AFRelationship.Alternative);
// Добавьте вложение в коллекцию вложений документа
document.getEmbeddedFiles().add(fileSpecification);
path = Paths.get(_dataDir, "ZUGFeRD", "log.xml").toString();
document.convert(path, PdfFormat.PDF_A_3A, ConvertErrorAction.Delete);
path = Paths.get(_dataDir, "ZUGFeRD", "ZUGFeRD-res.pdf").toString();
document.save(path);
}