Ao que consta, há serviços municipalizados que só aceitam pdfs no formato pdf/a e a minha colega que estava a tratar do assunto estava com dificuldades em fazer a conversão; estava a usar serviços online mas alguns só davam uma vez e depois pediam pagamentos e outros não pediam nada mas também não convertiam em condições.

Quando ela me falou no problema, o meu primeiro passo foi ver se o Debenu PDF Tools (versão gratuita) que usamos para juntar/dividir pdfs também fazia essa conversão. Não faz.

Como não sou fã de serviços em que precisamos de enviar os nossos pdfs para a Internet, dei uma vista de olhos pelos motores de busca e pelo ChatGPT  à procura de soluções que funcionassem offline, e o único programa que encontrei foi o pdf24.  A solução funciona, mas não me pareceu suficientemente prática para a simplicidade do que era pretendido.

Como tenho a funcionar uma aplicação desenvolvida em Java com o pdfBox que manipula pdfs para fazer o arquivo digital da contabilidade achei que, usando o código que já tinha, era fácil solucionar o problema. Infelizmente, o pdfBox não tem (ou não achei) esta capacidade.

Voltei a pedir ao ChatGPT para me fazer o código, mas o malvado só me deu um pseudocódigo a dizer o que eu já sabia. bah!

Dei mais uma volta à Net e descobri uma biblioteca de Java que fazia o pretendido, a Free Spire.PDF for Java. Não foi preciso muito tempo para descobrir o código mágico que converte o pdf no sub-formato pretendido:

PdfStandardsConverter converter = new PdfStandardsConverter(filein);
converter.toPdfA3B(fileout);

Mais simples, é difícil. Juntei meia dúzia de linhas de código do meu programa de processamento de documentos de contabilidade e voilá: um programa de lê todos os pdfs de uma pasta e grava em formato pdf/a noutra. Demorei menos tempo a fazer o programa do que o tempo que perdi à procura de uma solução pré-feita que me resolvesse o programa.

Não é todos os dias, mas de vez em quando ainda justifica programar as nossas próprias soluções para problemas genéricos.

Fig. 1 Identificar que ficheiro está em pdf/a
Fig 2. pdf2pdfa em execução

Podem descarregar aqui o pdf2pdfa. É um zip que tem o ficheiro java, um script que corre o programa e um ficheiro teste. Para usar, é só descomprimir a pasta, colocar os ficheiros pretendidos na pasta pdfIn, correr o script e colher os frutos na pasta pdfOut. E claro, têm de ter um JAVA instalado.

NOTA: Foi testado com meia dúzia de ficheiros e funcionou bem, não prometo que funcione bem com todos os ficheiros.