Mengubah File PDF ke PDF/A

Aspose.PDF memungkinkan Anda untuk mengubah file PDF menjadi file PDF yang sesuai dengan PDF/A. Sebelum melakukannya, file harus divalidasi. Artikel ini menjelaskan caranya.

Harap dicatat bahwa kami mengikuti Adobe Preflight untuk memvalidasi kesesuaian PDF/A. Semua alat di pasaran memiliki “representasi” mereka sendiri tentang kesesuaian PDF/A. Silakan periksa artikel ini tentang alat validasi PDF/A sebagai referensi. Kami memilih produk Adobe untuk memverifikasi bagaimana Aspose.PDF menghasilkan file PDF karena Adobe berada di pusat dari semua yang terkait dengan PDF.

Sebelum mengubah PDF menjadi file yang sesuai dengan PDF/A, validasi PDF menggunakan metode validate. Hasil validasi disimpan dalam file XML dan kemudian hasil ini juga diteruskan ke metode konversi. Anda juga dapat menentukan tindakan untuk elemen-elemen yang tidak dapat dikonversi menggunakan enumerasi ConvertErrorAction.

Konversi PDF ke PDF/A_1b

Cuplikan kode berikut menunjukkan cara mengonversi file PDF menjadi PDF yang sesuai dengan PDF/A-1b.

public void convertPDFtoPDFa1b() {
        // Buka dokumen
        try {
            document = new Document(inputStream);
        } catch (Exception e) {
            resultMessage.setText(e.getMessage());
            return;
        }

        // Konversi ke dokumen sesuai PDF/A
        // Selama proses konversi, validasi juga dilakukan
        File logFileName = new File(fileStorage,"PDF-to-PDFA-log.xml");
        File pdfaFileName = new File(fileStorage,"PDF-to-PDFA.pdf");
        document.convert(logFileName.toString(), PdfFormat.PDF_A_1B, ConvertErrorAction.Delete);

        // Simpan dokumen keluaran
        document.save(pdfaFileName.toString());
    }

Untuk melakukan validasi saja, gunakan baris kode berikut:

public void ValidatePDF_A_1B() {
        // Buka dokumen
        try {
            document = new Document(inputStream);
        } catch (Exception e) {
            resultMessage.setText(e.getMessage());
            return;
        }

        // Validasi ke dokumen yang sesuai dengan PDF/A

        File logFileName = new File(fileStorage,"PDF-to-PDFA-log.xml");
        if (document.validate(logFileName.toString(), PdfFormat.PDF_A_1B)){
            resultMessage.setText("Dokumen valid");
        }
        else {
            resultMessage.setText("Dokumen tidak valid");
        }
    }

Konversi PDF ke PDF/A_3b

    public void convertPDFtoPDFa3b() {
        // Buka dokumen
        try {
            document = new Document(inputStream);
        } catch (Exception e) {
            resultMessage.setText(e.getMessage());
            return;
        }

        // Konversi ke dokumen yang sesuai dengan PDF/A
        // Selama proses konversi, validasi juga dilakukan
        File logFileName = new File(fileStorage,"PDF-to-PDFA-log.xml");
        File pdfaFileName = new File(fileStorage,"PDF-to-PDFA.pdf");

        document.convert(logFileName.toString(), PdfFormat.PDF_A_3B, ConvertErrorAction.Delete);

        // Simpan dokumen keluaran
        try {
            document.save(pdfaFileName.toString());
        }
        catch (Exception e) {
            resultMessage.setText(e.getMessage());
            return;
        }
        resultMessage.setText(R.string.success_message);
    }

Konversi PDF ke PDF/A_3a

public void convertPDFtoPDFa3a() {
        // Buka dokumen
        try {
            document = new Document(inputStream);
        } catch (Exception e) {
            resultMessage.setText(e.getMessage());
            return;
        }

        // Konversi ke dokumen yang sesuai dengan PDF/A
        // Selama proses konversi, validasi juga dilakukan
        File logFileName = new File(fileStorage,"PDF-to-PDFA-log.xml");
        File pdfaFileName = new File(fileStorage,"PDF-to-PDFA.pdf");

        document.convert(logFileName.toString(), PdfFormat.PDF_A_3A, ConvertErrorAction.Delete);

        // Simpan dokumen keluaran
        try {
            document.save(pdfaFileName.toString());
        }
        catch (Exception e) {
            resultMessage.setText(e.getMessage());
            return;
        }
        resultMessage.setText(R.string.success_message);
    }

Konversi PDF ke PDF/A_2a

public void convertPDFtoPDFa2a() {
        // Buka dokumen
        try {
            document = new Document(inputStream);
        } catch (Exception e) {
            resultMessage.setText(e.getMessage());
            return;
        }

        // Konversi ke dokumen yang sesuai dengan PDF/A
        // Selama proses konversi, validasi juga dilakukan
        File logFileName = new File(fileStorage,"PDF-to-PDFA-log.xml");
        File pdfaFileName = new File(fileStorage,"PDF-to-PDFA.pdf");

        document.convert(logFileName.toString(), PdfFormat.PDF_A_2A, ConvertErrorAction.Delete);

        // Simpan dokumen keluaran
        try {
            document.save(pdfaFileName.toString());
        }
        catch (Exception e) {
            resultMessage.setText(e.getMessage());
            return;
        }
        resultMessage.setText(R.string.success_message);
    }

Konversi PDF ke PDF/A_3U

 public void convertPDFtoPDFa3u() {
        // Buka dokumen
        try {
            document = new Document(inputStream);
        } catch (Exception e) {
            resultMessage.setText(e.getMessage());
            return;
        }

        // Konversi ke dokumen yang sesuai dengan PDF/A
        // Selama proses konversi, validasi juga dilakukan
        File logFileName = new File(fileStorage,"PDF-to-PDFA-log.xml");
        File pdfaFileName = new File(fileStorage,"PDF-to-PDFA.pdf");

        document.convert(logFileName.toString(), PdfFormat.PDF_A_3U, ConvertErrorAction.Delete);

        // Simpan dokumen keluaran
        try {
            document.save(pdfaFileName.toString());
        }
        catch (Exception e) {
            resultMessage.setText(e.getMessage());
            return;
        }
        resultMessage.setText(R.string.success_message);
    }

Buat PDF/A-3 dan lampirkan file XML

Aspose.PDF untuk Android melalui Java menawarkan fitur untuk mengonversi file PDF ke format PDF/A dan juga mendukung kemampuan menambahkan file sebagai lampiran ke dokumen PDF. Jika Anda memiliki persyaratan untuk melampirkan file ke format kepatuhan PDF/A, maka kami merekomendasikan menggunakan nilai PDF_A_3A dari enumerasi com.aspose.pdf.PdfFormat, PDF/A_3a adalah format yang menyediakan fitur untuk melampirkan format file apapun sebagai lampiran ke file yang sesuai dengan PDF/A. Namun, setelah file dilampirkan, Anda harus mengonversinya lagi ke format Pdf-3a, untuk memperbaiki metadata. Silakan lihat potongan kode berikut.

 public void convertPDFtoPDFa3u_attachXML() {
        // Buka dokumen
        try {
            document = new Document(inputStream);
        } catch (Exception e) {
            resultMessage.setText(e.getMessage());
            return;
        }

        // Konversi ke dokumen yang sesuai dengan PDF/A
        // Selama proses konversi, validasi juga dilakukan
        File logFileName = new File(fileStorage,"PDF-to-PDFA-log.xml");
        File pdfaFileName = new File(fileStorage,"PDF-to-PDFA.pdf");
        File attachment = new File(fileStorage,"sample.xml");

        // Simpan dokumen keluaran
        try {
            // muat file XML
            FileSpecification fileSpecification = new FileSpecification(attachment.toString(), "Contoh file xml");
            // Tambahkan lampiran ke koleksi lampiran dokumen
            document.getEmbeddedFiles().add(fileSpecification);
            document.convert(logFileName.toString(), PdfFormat.PDF_A_3B, ConvertErrorAction.Delete);
            document.save(pdfaFileName.toString());
        }
        catch (Exception e) {
            resultMessage.setText(e.getMessage());
            return;
        }
        resultMessage.setText(R.string.success_message);
    }