자바 인쇄 PDF 파일
Java용 Spire.PDF 설치
먼저 Spire.Pdf.jar 파일을 Java 프로그램의 종속성으로 추가해야 합니다. JAR 파일은 this link에서 다운로드할 수 있습니다. Maven을 사용하는 경우 프로젝트의 pom.xml 파일에 다음 코드를 추가하여 애플리케이션에서 JAR 파일을 쉽게 가져올 수 있습니다.
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.pdf</artifactId>
<version>5.5.0</version>
</dependency>
</dependencies>
인쇄 대화 상자로 PDF 인쇄
Java용 Spire.PDF는 java.awt.print 패키지를 사용하여 프로그래밍 방식으로 PDF 파일을 인쇄합니다. 기본 인쇄 여백 제거, 매수 설정 등과 같은 일부 인쇄 설정을 사용자 지정할 수도 있습니다.
import com.spire.pdf.*;
import java.awt.print.*;
public class PrintPDF {
public static void main(String[] args) throws Exception {
//Create a PdfDocument object
PdfDocument pdf = new PdfDocument();
//Load a PDF file
pdf.loadFromFile("Sample.pdf");
//Create a PrinterJob object which is initially associated with the default printer
PrinterJob printerJob = PrinterJob.getPrinterJob();
//Create a PageFormat object and set it to a default size and orientation
PageFormat pageFormat = printerJob.defaultPage();
//Return a copy of the Paper object associated with this PageFormat
Paper paper = pageFormat.getPaper();
//Set the imageable area of this Paper
paper.setImageableArea(0, 0, pageFormat.getWidth(), pageFormat.getHeight());
//Set the Paper object for this PageFormat
pageFormat.setPaper(paper);
//Set the copies
printerJob.setCopies(3);
//Call painter to render the pages in the specified format
printerJob.setPrintable(pdf,pageFormat);
//Display the print dialog
if (printerJob.printDialog()) {
try {
printerJob.print();
} catch (PrinterException e) {
e.printStackTrace();
}
}
}
}
사용자 정의 용지 크기로 PDF 인쇄
다음은 사용자 정의 페이지 크기로 PDF 문서를 인쇄하는 단계입니다.
import com.spire.pdf.*;
import java.awt.print.*;
public class PrintPDF{
public static void main(String[] args) throws Exception {
//Create a PdfDocument object
PdfDocument pdf = new PdfDocument();
//Load a PDF file
pdf.loadFromFile("Sample.pdf");
//Create a PrinterJob object which is initially associated with the default printer
PrinterJob printerJob = PrinterJob.getPrinterJob();
//Create a PageFormat object and set it to a default size and orientation
PageFormat pageFormat = printerJob.defaultPage();
//Return a copy of the Paper object associated with this PageFormat
Paper paper = pageFormat.getPaper();
//Set the imageable area of this Paper
paper.setImageableArea(0, 0, pageFormat.getWidth(), pageFormat.getHeight());
//Set the width and height of this Paper object
paper.setSize(500,600);
//Print the document without the print dialog
try {
printerJob.print();
} catch (PrinterException e) {
e.printStackTrace();
}
}
}
양면 모드에서 PDF 인쇄
다음은 양면 모드에서 PDF 문서를 인쇄하는 단계입니다.
import com.spire.pdf.*;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.print.attribute.standard.Sides;
import java.awt.print.PageFormat;
import java.awt.print.Paper;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;
public class duplexPrint {
public static void main(String[] args) throws Exception {
//Create a PdfDocument object
PdfDocument pdf = new PdfDocument();
//Load a PDF file
pdf.loadFromFile("Sample.pdf");
//Create a PrinterJob object which is initially associated with the default printer
PrinterJob printerJob = PrinterJob.getPrinterJob();
//Create a PageFormat object and set it to a default size and orientation
PageFormat pageFormat = printerJob.defaultPage();
//Return a copy of the Paper object associated with this PageFormat
Paper paper = pageFormat.getPaper();
//Remove the default printing margins
paper.setImageableArea(0, 0, pageFormat.getWidth(), pageFormat.getHeight());
pageFormat.setPaper(paper);
printerJob.setPrintable(pdf, pageFormat);
//Duplex print
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
//Two sides short edge
aset.add(Sides.TWO_SIDED_SHORT_EDGE);
try {
printerJob.print(aset);
} catch (PrinterException e) {
e.printStackTrace();
}
}
}
지정된 프린터로 페이지 범위 인쇄
다음은 지정된 프린터로 PDF 문서를 인쇄하고 인쇄할 PDF 페이지 범위를 선택하는 단계입니다.
import com.spire.pdf.*;
import javax.print.PrintService;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.print.attribute.standard.PageRanges;
import java.awt.print.PageFormat;
import java.awt.print.Paper;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;
public class setPrinter {
public static void main(String[] args) throws Exception {
//Create a PdfDocument object
PdfDocument pdf = new PdfDocument();
//Load a PDF file
pdf.loadFromFile("Test.pdf");
//Create a PrinterJob object which is initially associated with the default printer
PrinterJob printerJob = PrinterJob.getPrinterJob();
//Specify printer name
PrintService myPrintService = findPrintService("HP ColorLaserJet MFP M278-M281 PCL-6");
printerJob.setPrintService(myPrintService);
//Create a PageFormat object and set it to a default size and orientation
PageFormat pageFormat = printerJob.defaultPage();
//Return a copy of the Paper object associated with this PageFormat
Paper paper = pageFormat.getPaper();
//Remove the default printing margins
paper.setImageableArea(0, 0, pageFormat.getWidth(), pageFormat.getHeight());
pageFormat.setPaper(paper);
printerJob.setPrintable(pdf, pageFormat);
//Set print range
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
aset.add(new PageRanges(1,2));
try {
printerJob.print(aset);
} catch (PrinterException e) {
e.printStackTrace();
}
}
//Find print service
private static PrintService findPrintService(String printerName) {
PrintService[] printServices = PrinterJob.lookupPrintServices();
for (PrintService printService : printServices) {
if (printService.getName().equals(printerName)) {
System.out.print(printService.getName());
return printService;
}
}
return null;
}
}
결론
이 기사에서는 Spire.PDF for Java의 도움으로 PDF 파일을 인쇄하는 방법을 배웠습니다. 기타 문의 사항이 있으시면 언제든지 Free PDF forums 을 확인하시기 바랍니다.
Reference
이 문제에 관하여(자바 인쇄 PDF 파일), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/alexis92/java-print-pdf-files-1al6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)