- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
尝试使用 Java 打印 PDF 文件时遇到问题。这是我的代码:
PdfReader readFtp = new PdfReader(); // This class is used for reading a PDF file
PDDocument document = readFtp.readFTPFile(documentID);
printRequestAttributeSet.add(new PageRanges(1, 10));
job.setPageable(document);
job.print(printRequestAttributeSet); // calling for print
document.close()
我使用 document.silentPrint(job);
和 job.print(printRequestAttributeSet);
- 它工作正常。如果我使用 document.silentPrint(job);
- 我无法设置 PrintRequestAttributeSet
。
谁能告诉我如何设置PrintRequestAttributeSet?
最佳答案
我的打印机不支持原生 PDF 打印。
我使用了开源库 Apache PDFBox https://pdfbox.apache.org打印 PDF。打印本身仍然由 Java 的 PrinterJob 处理。
import java.awt.print.PrinterJob;
import java.io.File;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.printing.PDFPageable;
public class PrintingExample {
public static void main(String args[]) throws Exception {
PDDocument document = PDDocument.load(new File("C:/temp/example.pdf"));
PrintService myPrintService = findPrintService("My Windows printer Name");
PrinterJob job = PrinterJob.getPrinterJob();
job.setPageable(new PDFPageable(document));
job.setPrintService(myPrintService);
job.print();
}
private static PrintService findPrintService(String printerName) {
PrintService[] printServices = PrintServiceLookup.lookupPrintServices(null, null);
for (PrintService printService : printServices) {
if (printService.getName().trim().equals(printerName)) {
return printService;
}
}
return null;
}
}
关于java - 在 Java 中使用 PrinterJob 打印 PDF 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16293859/
我目前在使用默认打印机打印 jpeg 文件时卡住了。在我的程序中,当我从文件夹中选择图像时,我需要使用打印机默认设置(纸张尺寸、边距、方向)打印它。 目前我得到了这个: PrintService pr
我正在尝试打印一张发票(AnchorPane),其中包含许多包含发票信息的标签、GridPanes、VBox 等。除了缩放比例完全困惑之外,我只能打印随机字符而不是发票信息。 我很确定我遗漏了一些东西
我使用以下方法在我正在使用的程序中打印 pdf 文件。它有效,但每次我想要打印单个页面时都必须调用该方法。因此,如果我想将同一个文档打印五次,则整个方法必须执行五次。我的问题是,是否有某种方法可以将多
我需要为我的打印例程实现一个监听器,以便从打印机获取状态。我正在使用 PrinterJob,但监听器 PrintServiceAttributeListener 对我来说还不够。我想改为为 DocPr
我在使用 java 打印 PDF 时遇到问题。我知道 Java 本身不支持打印 PDF,因为 java 没有 PDF 渲染器。因此,为了解决这个问题,我使用了 PDFRenderer 库,下面是一个使
我正在尝试以 300 dpi 打印质量在 1 英寸 x 2 英寸标签上打印图像 public void print() { RepaintManager currentManager
我想要在 PrinterJob.pageDialog 中设置页面格式的选项,唯一缺少的是更改页面方向,因为横向模式的单选按钮被禁用。 问题是我不知道如何在此对话框中启用代表横向模式的单选按钮。仅当在打
我正在尝试通过 JavaFX 应用程序打印收据,但每当我尝试打印时都会收到 NullPointerException。 import javafx.print.PrinterJob; // More
通过调用不带任何参数的 PrinterJob 的 printDialog() 方法,我获得了用于更改打印作业属性的对话框。在该对话框的右下角有一个字段,用户可以更改要打印的份数。 现在我想禁用这个字段
美好的一天! 我目前正在开发一个需要将特定数据直接打印到打印机的程序。幸运的是,我已经用 Java 运行了 PrinterJob 和 Printable 实用程序。这是代码: SWFPrintable
我有一个使用 Java 8 (1.8.0_45) 在 Mac(OS X,el capitan)上开发的应用程序,可以打印到打印机。它可以很好地打印到打印机,在纸上画一个漂亮的圆圈(椭圆形)。但是,我已
我使用 PrinterJob 对象来打印我的 Bufferedimage,我有一个 BufferedImage,我对其进行处理并将其发送到具有纸张格式等的打印机作业,但我无法使其适合我的证卡打印机。当
PrinterJob 某人用来打印文件。 tif 或。争吵? . jpg。 png 它可以正常打印。但是文件。 Tif 不打印,它生成一个空白的 pdf。谁能告诉我我能做什么? public void
监听器是否可用于 java.awt.print.PrinterJob ?我只能找到 PrintJobListener在 javax.print.DocPrintJob .我正在 java.awt.pr
我遇到以下问题: 我们的 Swing 应用程序有一个超时,它会将用户返回到登录框架。 如果用户打开打印对话框并使其保持打开状态,然后在超时后尝试单击打印按钮,我们的应用程序将失败并向用户显示错误。 (
我正在尝试使用 PageFormat 信息在打印之前修改基于 javax.swing 的打印输出。我对如何从 PrintJob 获取 PageFormat(使用 getPrinterJob() 和 p
我正在使用 java.awt.print.PrinterJob.printDialog() 在 javafx 应用程序中启动 printDialog。在 os-x 上运行时,我总是从 printDia
尝试使用 Java 打印 PDF 文件时遇到问题。这是我的代码: PdfReader readFtp = new PdfReader(); // This class is used for r
我尝试了以下 AWT 代码,但在运行时重复显示多个打印对话框.... package printerjob; import java.awt.BasicStroke; import java.awt.
我正在使用 JavaFX PrinterJob 打印节点,如下所示: /** * @param node */ public static final void print(Node no
我是一名优秀的程序员,十分优秀!