Printing PDF files from Java is something that raises a lot of general questions, so this short article is a general guide to the options available. Java itself contains a built-in print system (JPS). JPS itself does not internally support the PDF file format.
There are 3 ways to print PDF files in Java:-
1. Use a printer that directly supports PDF files and use JPS to send the data directly to it.
All the work is done by the printer, often in hardware so this is a brilliant solution if you can precisely define the printers used but does not provide a generic solution. If you want to try this, here is some generic code
FileInputStream fis = new FileInputStream(“C:/mypdf.pdf”);
Doc pdfDoc = new SimpleDoc(fis, null, null);
DocPrintJob printJob = printService.createPrintJob();
printJob.print(pdfDoc, new HashPrintRequestAttributeSet());
2. Print from Java using a non-java application
Java allows you to access non-java code so that you can access Acrobat, Ghostscript, CUPS, or any other solution. You can do this with the Java command
Again, this works if you have control of the exact platforms and software available but does not provide a generic solution.
3. Print using JPS
JPS does not include PDF support, but it does have hooks to allow any Java program to print content to any printer. A number of Java PDF libraries offer printing – including ours! They essentially convert the PDF into a rendered page which JPS then prints. This provides a generic solution but the files tend to be larger and it relies on the capabilities of the PDF library which vary.
This is the solution we use in our JPedal PDF library. There is a detailed 5 step tutorial showing how you can print (which will be relevant to any library using JPS).
All three methods have their pros and cons so try them to find out which one offers the best fit for your requirements. Try and see what meets your needs best. If you would like to see a more detailed article please let us know or post your comments here.
The JPedal Java PDF library is actively developed and can be used for printing, viewing, conversion, search, extraction, and lots of other purposes. If you would like to learn more about the JPedal PDF Library click here.
This post is part of our “Printing Articles Index” in these articles, we aim to help you understand printing in Java and PDFs.
Are you a Developer working with PDF files?
Our developers guide contains a large number of technical posts to help you understand the PDF file Format.
Find out more about our software for Developers
|Convert PDF to HTML5 or SVG|
|Convert AcroForms and XFA to HTML5|
|Java PDF SDK for working with PDF files|