In this article, I will show you how to print a PDF file with
custom settings, such as silently print to a default printer and set the number
of copies, show print dialog when printing, and print to a specific printer with
custom paper size in Java using Free Spire.PDF for Java library.
Import Jar File
Download Free Spire.PDF for Java from this Link,
you’ll find the jar file under the lib folder, add it into your project.
If your project is a maven project, refer this online
tutorial to install Free Spire.PDF for Java into your project.
Print PDF
File Silently with Default Printer
import com.spire.pdf.*;
import java.awt.print.*;
public class Print {
public static void
main(String[] args) {
//load the
sample document
PdfDocument
pdf = new PdfDocument();
pdf.loadFromFile("Sample.pdf");
PrinterJob
loPrinterJob = PrinterJob.getPrinterJob();
PageFormat
loPageFormat =
loPrinterJob.defaultPage();
Paper loPaper
= loPageFormat.getPaper();
loPaper.setImageableArea(0,0,loPageFormat.getWidth(),loPageFormat.getHeight());
//set the
number of copies
loPrinterJob.setCopies(2);
loPageFormat.setPaper(loPaper);
loPrinterJob.setPrintable(pdf,loPageFormat);
try {
//Print with default printer
loPrinterJob.print();
} catch
(PrinterException e) {
e.printStackTrace();
}
}
}
Print PDF
File with Print Dialog
import com.spire.pdf.*;
import java.awt.print.*;
public class Print {
public static void
main(String[] args) {
//load the sample document
PdfDocument
pdf = new PdfDocument();
pdf.loadFromFile("Sample.pdf");
PrinterJob
loPrinterJob = PrinterJob.getPrinterJob();
PageFormat
loPageFormat =
loPrinterJob.defaultPage();
Paper loPaper
= loPageFormat.getPaper();
loPaper.setImageableArea(0,0,loPageFormat.getWidth(),loPageFormat.getHeight());
loPageFormat.setPaper(loPaper);
loPrinterJob.setPrintable(pdf,loPageFormat);
//show the
print dialog
if
(loPrinterJob.printDialog()) {
try {
loPrinterJob.print();
} catch
(PrinterException e) {
e.printStackTrace();
}
}
}
}
Print PDF
file with Specific Printer
import com.spire.pdf.PdfDocument;
import javax.print.PrintService;
import java.awt.print.*;
public class PrintPDF {
public static void main(String[] args)
throws PrinterException {
// load the
sample document
PdfDocument loDoc
= new PdfDocument();
pdf.loadFromFile("Sample.pdf");
PrinterJob
loPrinterJob = PrinterJob.getPrinterJob();
PageFormat
loPageFormat = loPrinterJob.defaultPage();
Paper loPaper =
loPageFormat.getPaper();
//custom paper size
loPaper.setSize(500,600);
loPageFormat.setPaper(loPaper);
loPrinterJob.setPrintable(loDoc,loPageFormat);
//set printer
String
printerName ="\\\\192.168.1.104\\HP LaserJet P1007";
PrintService[]
pservices = PrinterJob.lookupPrintServices();
if
(pservices.length > 0) {
for (PrintService ps : pservices) {
if (ps.getName().contains(printerName)) {
try {
loPrinterJob.setPrintService(ps);
break;
} catch (PrinterException e) {
e.printStackTrace();
}
}
}
}
try {
//print
loPrinterJob.print();
} catch
(PrinterException e) {
e.printStackTrace();
}
}
}
Comments
Post a Comment