【发布时间】:2016-03-22 04:54:03
【问题描述】:
我想打印 pdf 文件的特定页面。例如,我有 4 页的 pdf,我想打印第三页。我正在使用 Apache PDFBox 库。我试图删除我想要打印的页面以外的其他页面,但它现在打印除了我想要打印的页面之外的所有其他页面......有什么帮助吗?
这是我写的函数代码:
void printPDFS(String fileName, int i) throws PrinterException, IOException{
PrinterJob printJob = PrinterJob.getPrinterJob();
printJob.getPrintService();
// String test = "\\\\192.168.5.232\\failai\\BENDRAS\\DHL\\test2.pdf";
PrinterJob job = PrinterJob.getPrinterJob();
job.setPrintService(printJob.getPrintService());
PDDocument doc = PDDocument.load(fileName);
for(int j=1;j<=doc.getNumberOfPages();j++){
if(i!=j)
{
doc.removePage(j);
}
}
doc.silentPrint(job);
}
我已将此行添加到代码中:System.out.println(doc.getPageMap());
控制台给我:{13,0=4, 1,0=2, 7,0=3, 27,0=1}
什么意思?
【问题讨论】:
-
您打印的只是意味着第 4 页是第 0 代中的对象 4,第 2 页是第 0 代中的对象 1 ...;这些是您通常不需要担心的 pdf 内部事物(即它是 pdf 对象的 id;如果您将文档作为文本文件打开,您应该是一个带有条目
/Kids [27 0 R 1 0 R 7 0 R 13 0 R]的 pages 字典)。