0 Daumen
840 Aufrufe

Wie kann man pdfs in Bilder umwandeln (mit einem Programm das man sich selbst schreibt?)

Avatar von

1 Antwort

0 Daumen

Mit der Library Ghost4J kannst du einen SimpleRenderer benutzen, um ein PDF in ein Bild mit Java umzuwandeln:

// PDF oder PS Datei laden
PDFDocument document = new PDFDocument();
document.load(new File("input.pdf"));

// Renderer erstellen
SimpleRenderer renderer = new SimpleRenderer();

// Auflösung in DPI
renderer.setResolution(300);

// Render
List<Image> images = renderer.render(document);

// images dann als PNG umwandeln
for (int i = 0; i < images.size(); i++)
{
ImageIO.write((RenderedImage) images.get(i), "png", new File((i + 1) + ".png"));
}

Alternative:

Die Apache PDF Box kann PDFs in die Formate jpg, bmp, wbmp, png und gif konvertieren. Die Library kann auch per Command-Line genutzt werden, Befehl: PDFToImage().

java -jar pdfbox-app-2.y.z.jar Decrypt [OPTIONS] <inputfile> [outputfile]

Und im Java-Programm:

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.ImageType;
import org.apache.pdfbox.rendering.PDFRenderer;
import org.apache.pdfbox.tools.imageio.ImageIOUtil;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

public class PdfToImage {

  private static final String OUTPUT_DIR = "/tmp/";

  public static void main(String[] args) throws Exception{

      try (final PDDocument document = PDDocument.load(new File("/tmp/bookmark.pdf"))){
          PDFRenderer pdfRenderer = new PDFRenderer(document);
          for (int page = 0; page < document.getNumberOfPages(); ++page)
          {
              BufferedImage bim = pdfRenderer.renderImageWithDPI(page, 300, ImageType.RGB);
              String fileName = OUTPUT_DIR + "image-" + page + ".png";
              ImageIOUtil.writeImage(bim, fileName, 300);
          }
          document.close();
      } catch (IOException e){
          System.err.println("Exception while trying to create pdf document - " + e);
      }
  }

}

Credits:
https://stackoverflow.com/q/4886042/1066234
https://memorynotfound.com/apache-pdfbox-convert-pdf-image-java/

Avatar von

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community