Ciąg Base64 pokazuje dane w formacie ASCII. Jest popularny do osadzania obrazów wbudowanych i innych informacji na stronach internetowych lub arkuszach stylów HTML. W tym artykule nauczymy się, jak przekonwertować ciąg znaków Base64 na PDF, JPG i PNG przy użyciu Javy.

Java Base64 to PDF Converter API — instalacja

Możesz pobrać pliki JAR API Aspose.PDF for Java z sekcji Releases lub korzystając z następujących konfiguracji Mavena:

Magazyn:

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

Zależność:

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

Skonfigurowano więc Aspose.PDF for Java API. Zanim przejdziemy do konwersji ciągu Base64, spójrzmy na przykładowe dane:

Przykładowy ciąg znaków do konwersji Base64

Możesz pobrać ciąg znaków Base64 z tutaj.

Podgląd przykładowego ciągu Base64

Base64 do PNG JPG

Przejdźmy teraz do następujących scenariuszy konwersji łańcuchów Base64:

Konwertuj ciąg znaków Base64 na obraz JPG lub PNG za pomocą języka Java

JPG, PNG i inne rodzaje obrazów są czasami kodowane do łańcucha Base64 w celu bezpiecznej i niezawodnej komunikacji i przesyłania danych. Co więcej, zanim zajmiemy się konwersją plików PDF, musimy dowiedzieć się, jak konwertować ciąg znaków Base64 na obrazy JPG lub PNG przy użyciu języka Java. Dlatego musisz wykonać następujące kroki w celu konwersji:

  1. Zapisz dane w pliku TXT ze względu na długi ciąg znaków
  2. Przeczytaj wartość ciągu
  3. Wymień przedrostki
  4. Zapisz ciąg Base64 do obrazu JPG lub PNG

Poniższy fragment kodu pokazuje, jak przekonwertować ciąg znaków Base64 na obraz JPG lub PNG za pomocą języka Java:

// Zapisz łańcuch base64 w pliku TXT, ponieważ łańcuch jest długi
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);

// Konwertuj Base64 na obraz JPG lub 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();
}

Konwertuj Base64 na PDF za pomocą Java

Dowiedzieliśmy się o konwersji obrazów Base64 na PNG lub JPG. W rzeczywistości jest to pośredni krok konwersji Base64 do pliku PDF. Pójdźmy o krok dalej. Po zapisaniu ciągu jako obrazu rastrowego można go łatwo przekonwertować do formatu PDF. Możesz wykonać poniższe kroki, aby przekonwertować ciąg Base64 na PDF:

  1. Usuń prefiksy ciągu Base64
  2. Konwertuj ciąg Base64 na obraz PNG lub JPG
  3. Następnie przekonwertuj obraz wyjściowy do formatu PDF

Poniższy fragment kodu pokazuje, jak przekonwertować ciąg znaków Base64 na PDF przy użyciu języka Java:

// Zapisz łańcuch base64 w pliku TXT, ponieważ łańcuch jest długi
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";

// Konwertuj Base64 na obraz PNG lub 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;
}

Wniosek

Podsumowując, zbadaliśmy, jak przekonwertować ciąg znaków Base64 na obrazy PDF, PNG i JPG. korzystanie z języka Java Co więcej, wygenerowanie pliku PDF otworzy znacznie więcej możliwości dalszej konwersji. Podobnie jak plik PDF, można go przekonwertować na SVG, XPS, DOCX i wiele innych formatów. Chcesz poznać inne możliwości? Nie wahaj się przedyskutować tego z nami za pośrednictwem bezpłatnych forów pomocy technicznej.

Zobacz też