Converter Arquivo PDF para PDF/A
Aspose.PDF permite que você converta um arquivo PDF em um arquivo PDF compatível com PDF/A. Antes de fazer isso, o arquivo deve ser validado. Este artigo explica como.
Por favor, note que seguimos o Adobe Preflight para validar a conformidade com PDF/A. Todas as ferramentas no mercado têm sua própria “representação” da conformidade com PDF/A. Por favor, consulte este artigo sobre ferramentas de validação PDF/A para referência. Escolhemos os produtos Adobe para verificar como o Aspose.PDF produz arquivos PDF porque a Adobe está no centro de tudo o que está relacionado ao PDF.
Antes de converter o PDF para um arquivo compatível com PDF/A, valide o PDF usando o método de validação. O resultado da validação é armazenado em um arquivo XML e então esse resultado também é passado para o método de conversão. Você também pode especificar a ação para os elementos que não podem ser convertidos usando a enumeração ConvertErrorAction.
Conversão de PDF para PDF/A_1b
O trecho de código a seguir mostra como converter arquivos PDF para PDF compatível com PDF/A-1b.
public void convertPDFtoPDFa1b() {
// Abrir documento
try {
document = new Document(inputStream);
} catch (Exception e) {
resultMessage.setText(e.getMessage());
return;
}
// Converter para documento compatível com PDF/A
// Durante o processo de conversão, a validação também é realizada
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);
// Salvar documento de saída
document.save(pdfaFileName.toString());
}
Para realizar apenas a validação, use a seguinte linha de código:
public void ValidatePDF_A_1B() {
// Abrir documento
try {
document = new Document(inputStream);
} catch (Exception e) {
resultMessage.setText(e.getMessage());
return;
}
// Validar para documento compatível com PDF/A
File logFileName = new File(fileStorage,"PDF-to-PDFA-log.xml");
if (document.validate(logFileName.toString(), PdfFormat.PDF_A_1B)){
resultMessage.setText("Documento é válido");
}
else {
resultMessage.setText("Documento não é válido");
}
}
Conversão de PDF para PDF/A_3b
public void convertPDFtoPDFa3b() {
// Abrir documento
try {
document = new Document(inputStream);
} catch (Exception e) {
resultMessage.setText(e.getMessage());
return;
}
// Converter para documento compatível com PDF/A
// Durante o processo de conversão, a validação também é realizada
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);
// Salvar documento de saída
try {
document.save(pdfaFileName.toString());
}
catch (Exception e) {
resultMessage.setText(e.getMessage());
return;
}
resultMessage.setText(R.string.success_message);
}
Conversão de PDF para PDF/A_3a
public void convertPDFtoPDFa3a() {
// Abrir documento
try {
document = new Document(inputStream);
} catch (Exception e) {
resultMessage.setText(e.getMessage());
return;
}
// Converter para documento compatível com PDF/A
// Durante o processo de conversão, a validação também é realizada
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);
// Salvar documento de saída
try {
document.save(pdfaFileName.toString());
}
catch (Exception e) {
resultMessage.setText(e.getMessage());
return;
}
resultMessage.setText(R.string.success_message);
}
Conversão de PDF para PDF/A_2a
public void convertPDFtoPDFa2a() {
// Abrir documento
try {
document = new Document(inputStream);
} catch (Exception e) {
resultMessage.setText(e.getMessage());
return;
}
// Converter para documento compatível com PDF/A
// Durante o processo de conversão, a validação também é realizada
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);
// Salvar documento de saída
try {
document.save(pdfaFileName.toString());
}
catch (Exception e) {
resultMessage.setText(e.getMessage());
return;
}
resultMessage.setText(R.string.success_message);
}
Conversão de PDF para PDF/A_3U
public void convertPDFtoPDFa3u() {
// Abrir documento
try {
document = new Document(inputStream);
} catch (Exception e) {
resultMessage.setText(e.getMessage());
return;
}
// Converter para documento compatível com PDF/A
// Durante o processo de conversão, a validação também é realizada
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);
// Salvar documento de saída
try {
document.save(pdfaFileName.toString());
}
catch (Exception e) {
resultMessage.setText(e.getMessage());
return;
}
resultMessage.setText(R.string.success_message);
}
Criar PDF/A-3 e anexar arquivo XML
Aspose.PDF para Android via Java oferece a funcionalidade de converter arquivos PDF para o formato PDF/A e também suporta as capacidades de adicionar arquivos como anexos ao documento PDF. No caso de você ter um requisito para anexar arquivos ao formato de conformidade PDF/A, recomendamos usar o valor PDF_A_3A da enumeração com.aspose.pdf.PdfFormat. O PDF/A_3a é o formato que fornece a funcionalidade de anexar qualquer formato de arquivo como um anexo a um arquivo compatível com PDF/A. No entanto, uma vez que o arquivo está anexado, você deve convertê-lo novamente para o formato Pdf-3a, a fim de corrigir os metadados. Por favor, veja o trecho de código a seguir.
public void convertPDFtoPDFa3u_attachXML() {
// Abrir documento
try {
document = new Document(inputStream);
} catch (Exception e) {
resultMessage.setText(e.getMessage());
return;
}
// Converter para documento compatível com PDF/A
// Durante o processo de conversão, a validação também é realizada
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");
// Salvar documento de saída
try {
// carregar arquivo XML
FileSpecification fileSpecification = new FileSpecification(attachment.toString(), "Arquivo xml de exemplo");
// Adicionar anexo à coleção de anexos do documento
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);
}