Skip to content

Instantly share code, notes, and snippets.

@thekalinga
Created August 22, 2019 11:27
Show Gist options
  • Save thekalinga/e5070aa3c454b23581bf812d39f2db6c to your computer and use it in GitHub Desktop.
Save thekalinga/e5070aa3c454b23581bf812d39f2db6c to your computer and use it in GitHub Desktop.
Creating image version pdf from text pdf using Apache Box
  void saveAsImagePdfFromTextPdf() throws IOException {
    final Path originalPdfPath = Paths.get("<source pdf path>");
    final Path imagePdfPath = Paths.get("<destination pdf path>");
    try(PDDocument document = PDDocument.load(originalPdfPath.toFile()); PDDocument imageDoc = new PDDocument()) {
      PDFRenderer pdfRenderer = new PDFRenderer(document);
      for (int pageNum = 0; pageNum < document.getNumberOfPages(); ++pageNum) {
        final BufferedImage bufferedImage = pdfRenderer.renderImageWithDPI(pageNum, 300, ImageType.RGB);
        PDPage page = new PDPage(new PDRectangle(bufferedImage.getWidth(), bufferedImage.getHeight()));
        imageDoc.addPage(page);

        final PDImageXObject imageXObject = LosslessFactory.createFromImage(imageDoc, bufferedImage);
        try (PDPageContentStream contents = new PDPageContentStream(imageDoc, page)) {
          contents.drawImage(imageXObject, 0, 0);
        }
      }
      imageDoc.save(imagePdfPath.toFile());
    }
  }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment