PDF to PDF Java Examples
These examples demonstrate common PDF to PDF API workflows in Java.
Basic examples
Multiple PDFs to PDF file
import com.pdfcrowd.*; import java.io.*; public class ApiTest { public static void main(String[] args) throws IOException, Pdfcrowd.Error { try { // Create an API client instance. Pdfcrowd.PdfToPdfClient client = new Pdfcrowd.PdfToPdfClient("demo", "demo"); // Configure the conversion. client.addPdfFile("/path/to/cover.pdf"); client.addPdfFile("/path/to/proposal.pdf"); client.addPdfFile("/path/to/price.pdf"); client.addPdfFile("/path/to/contact.pdf"); // Run the conversion and save the result to a file. client.convertToFile("offer.pdf"); } catch(Pdfcrowd.Error why) { System.err.println("PDFCrowd Error: " + why); throw why; } catch(IOException why) { System.err.println("IO Error: " + why); throw why; } } }
Multiple PDFs to in-memory PDF
import com.pdfcrowd.*; import java.io.*; public class ApiTest { public static void main(String[] args) throws Pdfcrowd.Error { try { // Create an API client instance. Pdfcrowd.PdfToPdfClient client = new Pdfcrowd.PdfToPdfClient("demo", "demo"); // Configure the conversion. client.addPdfFile("/path/to/cover.pdf"); client.addPdfFile("/path/to/proposal.pdf"); client.addPdfFile("/path/to/price.pdf"); client.addPdfFile("/path/to/contact.pdf"); // Run the conversion and store the result in the `pdf` variable. byte[] pdf = client.convert(); // at this point the "pdf" variable contains PDF raw data and // can be sent in an HTTP response, saved to a file, etc. } catch(Pdfcrowd.Error why) { System.err.println("PDFCrowd Error: " + why); throw why; } } }
Multiple PDFs to PDF stream
import com.pdfcrowd.*; import java.io.*; public class ApiTest { public static void main(String[] args) throws IOException, Pdfcrowd.Error { try { // Create an API client instance. Pdfcrowd.PdfToPdfClient client = new Pdfcrowd.PdfToPdfClient("demo", "demo"); // Configure the conversion. client.addPdfFile("/path/to/cover.pdf"); client.addPdfFile("/path/to/proposal.pdf"); client.addPdfFile("/path/to/price.pdf"); client.addPdfFile("/path/to/contact.pdf"); // Create an output stream for the conversion result FileOutputStream outputStream = new FileOutputStream("offer.pdf"); // run the conversion and write the result to the output stream. client.convertToStream(outputStream); // Close the output stream. outputStream.close(); } catch(Pdfcrowd.Error why) { System.err.println("PDFCrowd Error: " + why); throw why; } catch(IOException why) { System.err.println("IO Error: " + why); throw why; } } }
Multiple in-memory PDFs to PDF file
import com.pdfcrowd.*; import java.io.*; import java.nio.file.Files; import java.nio.file.Paths; public class ApiTest { public static void main(String[] args) throws IOException, Pdfcrowd.Error { try { // Create an API client instance. Pdfcrowd.PdfToPdfClient client = new Pdfcrowd.PdfToPdfClient("demo", "demo"); // Configure the conversion. client.addPdfRawData(Files.readAllBytes(Paths.get("/path/to/cover.pdf"))); client.addPdfRawData(Files.readAllBytes(Paths.get("/path/to/proposal.pdf"))); client.addPdfRawData(Files.readAllBytes(Paths.get("/path/to/price.pdf"))); client.addPdfRawData(Files.readAllBytes(Paths.get("/path/to/contact.pdf"))); // Run the conversion and save the result to a file. client.convertToFile("offer.pdf"); } catch(Pdfcrowd.Error why) { System.err.println("PDFCrowd Error: " + why); throw why; } catch(IOException why) { System.err.println("IO Error: " + why); throw why; } } }
Join 2 in-memory PDFs together with 2 local PDF files to PDF file
import com.pdfcrowd.*; import java.io.*; import java.nio.file.Files; import java.nio.file.Paths; public class ApiTest { public static void main(String[] args) throws IOException, Pdfcrowd.Error { try { // Create an API client instance. Pdfcrowd.PdfToPdfClient client = new Pdfcrowd.PdfToPdfClient("demo", "demo"); // Configure the conversion. client.addPdfRawData(Files.readAllBytes(Paths.get("/path/to/cover.pdf"))); client.addPdfFile("/path/to/proposal.pdf"); client.addPdfRawData(Files.readAllBytes(Paths.get("/path/to/price.pdf"))); client.addPdfFile("/path/to/contact.pdf"); // Run the conversion and save the result to a file. client.convertToFile("offer.pdf"); } catch(Pdfcrowd.Error why) { System.err.println("PDFCrowd Error: " + why); throw why; } catch(IOException why) { System.err.println("IO Error: " + why); throw why; } } }
Watermark a PDF file
import com.pdfcrowd.*; import java.io.*; public class ApiTest { public static void main(String[] args) throws IOException, Pdfcrowd.Error { try { // Create an API client instance. Pdfcrowd.PdfToPdfClient client = new Pdfcrowd.PdfToPdfClient("demo", "demo"); // Configure the conversion. client.addPdfFile("/path/to/proposal.pdf"); client.setPageWatermark("/path/to/watermark.pdf"); // Run the conversion and save the result to a file. client.convertToFile("company_offer.pdf"); } catch(Pdfcrowd.Error why) { System.err.println("PDFCrowd Error: " + why); throw why; } catch(IOException why) { System.err.println("IO Error: " + why); throw why; } } }
Linearize a PDF file
import com.pdfcrowd.*; import java.io.*; public class ApiTest { public static void main(String[] args) throws IOException, Pdfcrowd.Error { try { // Create an API client instance. Pdfcrowd.PdfToPdfClient client = new Pdfcrowd.PdfToPdfClient("demo", "demo"); // Configure the conversion. client.addPdfFile("/path/to/not_linearized.pdf"); client.setLinearize(true); // Run the conversion and save the result to a file. client.convertToFile("linearized.pdf"); } catch(Pdfcrowd.Error why) { System.err.println("PDFCrowd Error: " + why); throw why; } catch(IOException why) { System.err.println("IO Error: " + why); throw why; } } }
Get info about the current conversion
import com.pdfcrowd.*; import java.io.*; import java.nio.file.Files; import java.nio.file.Paths; public class ApiTest { public static void main(String[] args) throws IOException, Pdfcrowd.Error { try { // Create an API client instance. Pdfcrowd.PdfToPdfClient client = new Pdfcrowd.PdfToPdfClient("demo", "demo"); // Configure the conversion. client.setDebugLog(true); client.addPdfRawData(Files.readAllBytes(Paths.get("/path/to/cover.pdf"))); client.addPdfRawData(Files.readAllBytes(Paths.get("/path/to/proposal.pdf"))); // Run the conversion and save the result to a file. client.convertToFile("offer.pdf"); // print URL pointing to the debug log for this request. System.out.println("Debug log url: " + client.getDebugLogUrl()); // print number of conversion credits remaining in your account. System.out.println("Remaining credit count: " + client.getRemainingCreditCount()); // print number of credits consumed for this conversion. System.out.println("Consumed credit count: " + client.getConsumedCreditCount()); // print unique identifier assigned to this conversion job. System.out.println("Job id: " + client.getJobId()); // print total number of pages in the output document. System.out.println("Page count: " + client.getPageCount()); // print size of the output data in bytes. System.out.println("Output size: " + client.getOutputSize()); } catch(Pdfcrowd.Error why) { System.err.println("PDFCrowd Error: " + why); throw why; } catch(IOException why) { System.err.println("IO Error: " + why); throw why; } } }
PDF manipulation examples
Extract page 3 and all pages from 7 to the end from the PDF file
import com.pdfcrowd.*; import java.io.*; public class ApiTest { public static void main(String[] args) throws IOException, Pdfcrowd.Error { try { // Create an API client instance. Pdfcrowd.PdfToPdfClient client = new Pdfcrowd.PdfToPdfClient("demo", "demo"); // Configure the conversion. client.addPdfFile("/your-path-to/pdfs/13_pages.pdf"); client.setAction("extract"); client.setPageRange("3,7-"); // Run the conversion and save the result to a file. client.convertToFile("output.pdf"); } catch(Pdfcrowd.Error why) { System.err.println("PDFCrowd Error: " + why); throw why; } catch(IOException why) { System.err.println("IO Error: " + why); throw why; } } }
Delete the first 3 pages and the 10th page from the PDF file
import com.pdfcrowd.*; import java.io.*; public class ApiTest { public static void main(String[] args) throws IOException, Pdfcrowd.Error { try { // Create an API client instance. Pdfcrowd.PdfToPdfClient client = new Pdfcrowd.PdfToPdfClient("demo", "demo"); // Configure the conversion. client.addPdfFile("/your-path-to/pdfs/13_pages.pdf"); client.setAction("delete"); client.setPageRange("1-3,10"); // Run the conversion and save the result to a file. client.convertToFile("output.pdf"); } catch(Pdfcrowd.Error why) { System.err.println("PDFCrowd Error: " + why); throw why; } catch(IOException why) { System.err.println("IO Error: " + why); throw why; } } }
Split the PDF file into two separate files at the 10th page
import com.pdfcrowd.*; import java.io.*; public class ApiTest { public static void main(String[] args) throws IOException, Pdfcrowd.Error { try { Pdfcrowd.PdfToPdfClient client = new Pdfcrowd.PdfToPdfClient("demo", "demo"); client.addPdfFile("/your-path-to/pdfs/13_pages.pdf"); client.setAction("extract"); client.setPageRange("1-10"); client.convertToFile("pages1-10.pdf"); client.setPageRange("11-"); client.convertToFile("pages11-end.pdf"); } catch(Pdfcrowd.Error why) { System.err.println("PDFCrowd Error: " + why); throw why; } catch(IOException why) { System.err.println("IO Error: " + why); throw why; } } }
Spring examples
Multiple PDFs to PDF in Spring
import java.net.URLEncoder; import java.io.UnsupportedEncodingException; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.http.ResponseEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import com.pdfcrowd.*; @Controller public class DemoController { // The recommended method is POST. @PostMapping("/") public ResponseEntity<byte[]> convert() throws UnsupportedEncodingException { try { // Create an API client instance. Pdfcrowd.PdfToPdfClient client = new Pdfcrowd.PdfToPdfClient("demo", "demo"); // Configure the conversion. client.addPdfFile("/path/to/cover.pdf"); client.addPdfFile("/path/to/proposal.pdf"); client.addPdfFile("/path/to/price.pdf"); client.addPdfFile("/path/to/contact.pdf"); // Run the conversion and store the result in the `pdf` variable. byte[] pdf = client.convert(); // Set HTTP response headers. HttpHeaders headers = new HttpHeaders(); headers.add("Content-Type", "application/pdf"); headers.add("Cache-Control", "max-age=0"); headers.add("Accept-Ranges", "none"); headers.add("Content-Disposition", "attachment; filename*=UTF-8''" + URLEncoder.encode("offer.pdf", "UTF-8").replace("+", "%20")); // Send the result in the HTTP response. return new ResponseEntity<>(pdf, headers, HttpStatus.OK); } catch(Pdfcrowd.Error why) { // Send the error in the HTTP response. HttpHeaders headers = new HttpHeaders(); headers.add("Content-Type", "text/plain"); return new ResponseEntity<>(why.toString().getBytes(), headers, HttpStatus.BAD_REQUEST); } } }
Multiple in-memory PDFs to PDF in Spring
import java.net.URLEncoder; import java.io.UnsupportedEncodingException; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.http.ResponseEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import com.pdfcrowd.*; import java.nio.file.Files; import java.nio.file.Paths; import java.io.IOException; @Controller public class DemoController { // The recommended method is POST. @PostMapping("/") public ResponseEntity<byte[]> convert() throws IOException, UnsupportedEncodingException { try { // Create an API client instance. Pdfcrowd.PdfToPdfClient client = new Pdfcrowd.PdfToPdfClient("demo", "demo"); // Configure the conversion. client.addPdfRawData(Files.readAllBytes(Paths.get("/path/to/cover.pdf"))); client.addPdfRawData(Files.readAllBytes(Paths.get("/path/to/proposal.pdf"))); client.addPdfRawData(Files.readAllBytes(Paths.get("/path/to/price.pdf"))); client.addPdfRawData(Files.readAllBytes(Paths.get("/path/to/contact.pdf"))); // Run the conversion and store the result in the `pdf` variable. byte[] pdf = client.convert(); // Set HTTP response headers. HttpHeaders headers = new HttpHeaders(); headers.add("Content-Type", "application/pdf"); headers.add("Cache-Control", "max-age=0"); headers.add("Accept-Ranges", "none"); headers.add("Content-Disposition", "attachment; filename*=UTF-8''" + URLEncoder.encode("offer.pdf", "UTF-8").replace("+", "%20")); // Send the result in the HTTP response. return new ResponseEntity<>(pdf, headers, HttpStatus.OK); } catch(Pdfcrowd.Error why) { // Send the error in the HTTP response. HttpHeaders headers = new HttpHeaders(); headers.add("Content-Type", "text/plain"); return new ResponseEntity<>(why.toString().getBytes(), headers, HttpStatus.BAD_REQUEST); } } }