Convert PDF to PDF/A formats

Aspose.PDF for Java позволяет конвертировать PDF-файл в PDF/A совместимый PDF-файл. Перед этим файл должен быть проверен. В этой статье объясняется, как это сделать.

Обратите внимание, что мы следуем Adobe Preflight для проверки соответствия PDF/A. Все инструменты на рынке имеют свое собственное “представление” соответствия PDF/A. Пожалуйста, ознакомьтесь с этой статьей о инструментах проверки PDF/A для справки. Мы выбрали продукты Adobe для проверки того, как Aspose.PDF создает PDF-файлы, потому что Adobe находится в центре всего, что связано с PDF.

Перед конвертацией PDF в PDF/A совместимый файл, проверьте PDF, используя метод validate. Результат проверки сохраняется в XML-файл, и затем этот результат также передается в метод преобразования. Вы также можете указать действие для элементов, которые не могут быть преобразованы, используя перечисление ConvertErrorAction.

Конвертация PDF в PDF/A_1b

Следующий фрагмент кода показывает, как конвертировать PDF-файлы в PDF, совместимый с PDF/A-1b.

// Открыть документ
Document document = new Document(DATA_DIR + "PDFToPDFA.pdf");

// Преобразовать в документ, совместимый с PDF/A
// Во время процесса преобразования также выполняется валидация
document.convert(DATA_DIR + "log.xml", PdfFormat.PDF_A_1B, ConvertErrorAction.Delete);

// Сохранить выходной документ
document.save(DATA_DIR + "PDFToPDFA_out.pdf");
document.close();

Чтобы выполнить только валидацию, используйте следующую строку кода:

// Открыть документ
Document document = new Document(DATA_DIR + "ValidatePDFAStandard.pdf");

// Проверить PDF на соответствие PDF/A-1a
if (document.validate(DATA_DIR + "validation-result-A1A.xml", PdfFormat.PDF_A_1B)) {
    System.out.println("Действительный");
} else {
    System.out.println("Недействительный");
}
document.close();

PDF to PDF/A_3b Conversion

Начиная с Aspose.PDF for Java 9.3.0, API также поддерживает преобразование PDF файлов в формат PDF/A_3b.

// Открыть документ
Document document = new Document(DATA_DIR + "PDFToPDFA.pdf");

// Преобразовать в документ, соответствующий PDF/A
// В процессе преобразования также выполняется проверка
document.convert(DATA_DIR + "log.xml", PdfFormat.PDF_A_3B, ConvertErrorAction.Delete);

// Сохранить выходной документ
document.save(DATA_DIR + "PDFToPDFA_out.pdf");
document.close();

PDF to PDF/A_3a Conversion

Начиная с Aspose.PDF for Java 10.6.0, API также поддерживает преобразование PDF файлов в формат PDF/A_3a.

// Открыть документ
Document document = new Document(DATA_DIR + "PDFToPDFA.pdf");

// Преобразовать в документ, соответствующий PDF/A
// В процессе преобразования также выполняется проверка
document.convert("file.log", PdfFormat.PDF_A_3A, ConvertErrorAction.Delete);

// Сохранить выходной документ
document.save(DATA_DIR + "PDFToPDFA_out.pdf");
document.close();

PDF to PDF/A_2a Conversion

Начиная с версии Aspose.PDF for Java 10.2.0, API предлагает функцию преобразования PDF файлов в формат PDF/A3.

    public static void ConvertPDFtoPDFa2a() {
        // Открыть документ
        Document pdfDocument = new Document(_dataDir + "PDFToPDFA.pdf");

        // Преобразовать в документ, соответствующий PDF/A
        // Во время процесса преобразования также выполняется проверка
        pdfDocument.convert("file.log", PdfFormat.PDF_A_2A, ConvertErrorAction.Delete);

        // Сохранить выходной документ
        pdfDocument.save(_dataDir + "PDFToPDFA_out.pdf");
    }

PDF to PDF/A_3U Conversion

Начиная с версии Aspose.PDF for Java 17.2.0, API предлагает функцию преобразования PDF файлов в формат PDF/A_3U.

    public static void ConvertPDFtoPDFa3u() {
        // Открыть документ
        Document pdfDocument = new Document(_dataDir + "PDFToPDFA.pdf");

        // Преобразовать в документ, соответствующий PDF/A
        // Во время процесса преобразования также выполняется проверка
        pdfDocument.convert("file.log", PdfFormat.PDF_A_3U, ConvertErrorAction.Delete);

        // Сохранить выходной документ
        pdfDocument.save(_dataDir + "PDFToPDFA_out.pdf");
    }

Создание PDF/A-3 и прикрепление XML-файла

Aspose.PDF для Java предлагает возможность конвертировать PDF-файлы в формат PDF/A, а также поддерживает возможности добавления файлов в качестве вложений к PDF-документу. Если у вас есть необходимость прикрепить файлы к формату, соответствующему PDF/A, мы рекомендуем использовать значение PDF_A_3A из перечисления com.aspose.pdf.PdfFormat. PDF/A_3a - это формат, который предоставляет возможность прикреплять любой формат файла в качестве вложения к файлу, соответствующему PDF/A. Однако, как только файл прикреплен, вы должны снова конвертировать его в формат Pdf-3a, чтобы исправить метаданные. Пожалуйста, ознакомьтесь с приведенным ниже фрагментом кода.

    public static void ConvertPDFtoPDFa3u_attachXML() {
        Document doc = new Document();
        // добавить страницу в PDF-файл
        doc.getPages().add();
        // загрузить XML файл
        FileSpecification fileSpecification = new FileSpecification(_dataDir + "attachment.xml", "Пример XML файла");
        // Добавить вложение в коллекцию вложений документа
        doc.getEmbeddedFiles().add(fileSpecification);
        // выполнить преобразование в PDF/A_3a
        doc.convert(_dataDir + "log.xml", PdfFormat.PDF_A_3A/* или PDF_A_3B */, ConvertErrorAction.Delete);
        // сохранить конечный PDF файл
        doc.save(_dataDir + "attached_PDFA_3A.pdf");
    }