A string Base64 mostra os dados no formato ASCII. É popular para incorporar imagens embutidas e outras informações em páginas da Web em HTML ou folhas de estilo. Neste artigo, aprenderemos como converter a string Base64 para PDF, JPG e PNG usando Java.

Java Base64 para API do Conversor de PDF - Instalação

Você pode baixar os arquivos JAR da API Aspose.PDF for Java da seção Releases, ou usando as seguintes configurações do Maven:

Repositório:

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository

Dependência:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-pdf</artifactId>
    <version>20.7</version>
</dependency>

Então Aspose.PDF para Java API foi configurado. Antes de prosseguir para a conversão de uma string Base64, vamos dar uma olhada nos dados de exemplo:

String de exemplo para conversão Base64

Você pode baixar a string Base64 de aqui.

Visualização da string de exemplo Base64

Base64 para PNG JPG

Agora, vamos prosseguir para os seguintes cenários de conversão de string Base64:

Converter String Base64 para imagem JPG ou PNG usando Java

JPG, PNG e outros tipos de imagens às vezes são codificados na string Base64 para comunicação segura e confiável e transferência de dados. Além disso, antes de explorarmos a conversão de PDF, precisamos aprender sobre a conversão de uma string Base64 para imagens JPG ou PNG usando Java. Portanto, você precisa seguir estas etapas para a conversão:

  1. Salve os dados em um arquivo TXT devido a uma longa string
  2. Leia o valor da string
  3. Substitua os prefixos
  4. Salvar string Base64 em imagem JPG ou PNG

O trecho de código a seguir mostra como converter a string Base64 em uma imagem JPG ou PNG usando Java:

// Salve a string base64 no arquivo TXT porque a string é longa
FileInputStream fis = new FileInputStream(dataDir + "base64.txt");
String base64 = IOUtils.toString(fis, "UTF-8");
String base64ImageString = base64.replace("data:image/png;base64,", "");
byte[] imageBytes = javax.xml.bind.DatatypeConverter.parseBase64Binary(base64ImageString);

// Converter Base64 para imagem JPG ou PNG
FileOutputStream fos = new FileOutputStream(dataDir + "Base64 to Image.jpg");
//FileOutputStream fos = new FileOutputStream(dataDir + "Base64 to Image.png");
try {
    fos.write(imageBytes);
}
finally {
    fos.close();
}

Converter Base64 para PDF usando Java

Aprendemos sobre como converter as imagens Base64 em PNG ou JPG. Esta é realmente uma etapa intermediária de conversão de arquivo Base64 para PDF. Vamos avançar mais um passo. Depois que a string for salva como uma imagem raster, você poderá convertê-la facilmente em PDF. Você pode seguir as etapas abaixo para converter a string Base64 em PDF:

  1. Remova os prefixos da String Base64
  2. Converter string Base64 em imagem PNG ou JPG
  3. Em seguida, converta a imagem de saída em PDF

Portanto, o trecho de código abaixo mostra como converter String Base64 em PDF usando a linguagem Java:

// Salve a string base64 no arquivo TXT porque a string é longa
FileInputStream fis = new FileInputStream(dataDir + "base64.txt");
String base64 = IOUtils.toString(fis, "UTF-8");
String base64ImageString = base64.replace("data:image/png;base64,", "");
byte[] imageBytes = javax.xml.bind.DatatypeConverter.parseBase64Binary(base64ImageString);
String path = dataDir + "Base64 to Image.png";

// Converter Base64 para imagem PNG ou JPG
FileOutputStream fos = new FileOutputStream(path);
try {
    fos.write(imageBytes);
}
finally {
    fos.close();
}

BufferedImage readImage = null;
try {
	readImage = ImageIO.read(new File(path));
	int h = readImage.getHeight();
	int w = readImage.getWidth();
		
	com.aspose.pdf.Document doc = new com.aspose.pdf.Document();
	com.aspose.pdf.Page page = doc.getPages().add();
	com.aspose.pdf.Image image = new com.aspose.pdf.Image();
	image.setFile(path);
	page.getPageInfo().setHeight(h);
	page.getPageInfo().setWidth(w);
	page.getPageInfo().getMargin().setBottom(0);
	page.getPageInfo().getMargin().setTop(0);
	page.getPageInfo().getMargin().setRight(0);
	page.getPageInfo().getMargin().setLeft(0);
	page.getParagraphs().add(image);
	doc.save(dataDir + "Base64-to-PDF.pdf");
} catch (Exception e) {
	readImage = null;
}

Conclusão

Para resumir, exploramos como converter a string Base64 em imagens PDF, PNG e JPG. usando Java Além disso, gerar um arquivo PDF abrirá muito mais opções para conversão posterior. Como um arquivo PDF pode ser convertido para SVG, XPS, DOCX e muitos outros formatos. Interessado em explorar outras possibilidades? Não hesite em discutir isso conosco através dos Fóruns de Suporte Gratuito.

Veja também