Apache PDFBox로 PDF 인쇄
이번에는 PDF 인쇄 방법입니다.
아래의 공식 Document를 참고로 했습니다. (라고 할까 아래를 보면 이 페이지 보는 의미 없지만)
htps // pdf 보 x. 아파치. rg/2.0/미g라치온. html #pdfp 린칭g
PDF 파일 인쇄
public static void main(String[] args) throws IOException, PrinterException {
try (InputStream in = new FileInputStream("pdf.pdf")) {
print(in);
}
}
public static void print(InputStream in) throws IOException, PrinterException {
try (PDDocument doc = PDDocument.load(in)) {
PrinterJob job = PrinterJob.getPrinterJob();
job.setPageable(new PDFPageable(doc));
//プリンターのダイアログを開く
if (job.printDialog()) {
job.print();//印刷
}
}
}
실행 결과
대화 상자가 열립니다. OK 누르면.
인쇄할 수 있는 모습. (이번에는 xps로 작성)
PDFBox로 자작하여 PDF 파일을 만들지 않고 인쇄
쓰는 방법 보면 당연히 할 수 있다고 생각합니다만, 일단 확인해 보았습니다.
public static void print2() throws IOException, PrinterException {
try (PDDocument doc = new PDDocument()) {
float fontSize = 20;
PDRectangle rectangle = PDRectangle.A6;
PDFont font = loadFont(doc);
float fontHeight = getFontHeight(font, fontSize);
PDPage page = new PDPage(rectangle);
doc.addPage(page);
try (PDPageContentStream contents = new PDPageContentStream(doc, page)) {
contents.setLineWidth(1F);
contents.beginText();
contents.setNonStrokingColor(Color.RED);
contents.setStrokingColor(Color.BLUE);
contents.setFont(font, fontSize);
contents.setLeading(fontHeight);
contents.setTextMatrix(Matrix.getTranslateInstance(10, rectangle.getHeight() - fontHeight - 10));
contents.appendRawCommands(RenderingMode.FILL.intValue() + " Tr ");
contents.showText("テキスト FILL");
contents.newLine();
contents.appendRawCommands(RenderingMode.STROKE.intValue() + " Tr ");
contents.showText("テキスト STROKE");
contents.newLine();
contents.appendRawCommands(RenderingMode.FILL_STROKE.intValue() + " Tr ");
contents.showText("テキスト FILL_STROKE");
contents.endText();
}
PrinterJob job = PrinterJob.getPrinterJob();
job.setPageable(new PDFPageable(doc));
//プリンターのダイアログを開く
if (job.printDialog()) {
job.print();//印刷
}
}
}
실행 결과
인쇄할 수 있었다.
후기
PrinterJob은 밝지 않습니다만, 다이얼로그 나오지 않고 인쇄도 할 수 있지요?
그래서 제대로 취급하면 서버 측에서 침묵에 인쇄하거나 할 수 있다고 생각합니다.
그런데 iText에도 인쇄 기능이 있었습니까?
Reference
이 문제에 관하여(Apache PDFBox로 PDF 인쇄), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ota-meshi/items/9aee347f24405627efab
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
public static void main(String[] args) throws IOException, PrinterException {
try (InputStream in = new FileInputStream("pdf.pdf")) {
print(in);
}
}
public static void print(InputStream in) throws IOException, PrinterException {
try (PDDocument doc = PDDocument.load(in)) {
PrinterJob job = PrinterJob.getPrinterJob();
job.setPageable(new PDFPageable(doc));
//プリンターのダイアログを開く
if (job.printDialog()) {
job.print();//印刷
}
}
}
쓰는 방법 보면 당연히 할 수 있다고 생각합니다만, 일단 확인해 보았습니다.
public static void print2() throws IOException, PrinterException {
try (PDDocument doc = new PDDocument()) {
float fontSize = 20;
PDRectangle rectangle = PDRectangle.A6;
PDFont font = loadFont(doc);
float fontHeight = getFontHeight(font, fontSize);
PDPage page = new PDPage(rectangle);
doc.addPage(page);
try (PDPageContentStream contents = new PDPageContentStream(doc, page)) {
contents.setLineWidth(1F);
contents.beginText();
contents.setNonStrokingColor(Color.RED);
contents.setStrokingColor(Color.BLUE);
contents.setFont(font, fontSize);
contents.setLeading(fontHeight);
contents.setTextMatrix(Matrix.getTranslateInstance(10, rectangle.getHeight() - fontHeight - 10));
contents.appendRawCommands(RenderingMode.FILL.intValue() + " Tr ");
contents.showText("テキスト FILL");
contents.newLine();
contents.appendRawCommands(RenderingMode.STROKE.intValue() + " Tr ");
contents.showText("テキスト STROKE");
contents.newLine();
contents.appendRawCommands(RenderingMode.FILL_STROKE.intValue() + " Tr ");
contents.showText("テキスト FILL_STROKE");
contents.endText();
}
PrinterJob job = PrinterJob.getPrinterJob();
job.setPageable(new PDFPageable(doc));
//プリンターのダイアログを開く
if (job.printDialog()) {
job.print();//印刷
}
}
}
실행 결과
인쇄할 수 있었다.
후기
PrinterJob은 밝지 않습니다만, 다이얼로그 나오지 않고 인쇄도 할 수 있지요?
그래서 제대로 취급하면 서버 측에서 침묵에 인쇄하거나 할 수 있다고 생각합니다.
그런데 iText에도 인쇄 기능이 있었습니까?
Reference
이 문제에 관하여(Apache PDFBox로 PDF 인쇄), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ota-meshi/items/9aee347f24405627efab
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Apache PDFBox로 PDF 인쇄), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ota-meshi/items/9aee347f24405627efab텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)