gpt4 book ai didi

Java打印。使用 `Book` 类时仅打印一页

转载 作者:行者123 更新时间:2023-12-01 14:40:19 25 4
gpt4 key购买 nike

我使用Book类在打印 PDF 文档时提供不同的页面方向。

但是当我使用 Book 类时仅打印第一页。其他页面不打印。但是 Book#getNumberOfPages 返回我 4

我的代码如下所示:

   public static getDoc(DocAttributeSet dset) {
final PDFFile pdfFile = new PDFFile(buf);
Book book = new Book();
for (int i=0; i<pdfFile.getNumPages(); i++) {
PDFPage page = pdfFile.getPage(i);
PageFormat pageFormat = new PageFormat();

if (page.getAspectRatio() >= 1) {
pageFormat.setOrientation(PageFormat.LANDSCAPE);
} else {
pageFormat.setOrientation(PageFormat.PORTRAIT);
}
boolean needStop = false;
if (pdfFile.getNumPages() - 1 == i ) { // if latest page, then stopping ('needStop' = NO_SUCH_PAGE)
needStop = true;
}
book.append(getPrintable(page, needStop), pageFormat);
}
return new SimpleDoc(book, DocFlavor.SERVICE_FORMATTED.PAGEABLE, dset);
}

private static Printable getPrintable(final PDFPage page, final boolean needStop) {
return new Printable() {
public int print(Graphics g, PageFormat pageFormat, int index) throws PrinterException {
if (needStop) {
return NO_SUCH_PAGE;
}

// no scaling, center PDF
... // code omitted

return PAGE_EXISTS;

}
};
}

请注意:我使用此代码来打印文档:

DocPrintJob job = prn.createPrintJob();
job.print(myDoc, aset);

即我不使用旧的 API:

Book bk = new Book();       
job.setPageable(bk);

最佳答案

解决办法是把要打印的最大页数放在“书”中,可能是3页或10页,这并不意味着它会打印全部10页,只标记书的大小:

book.append(getPrintable(page, needStop), pageFormat, numPages);

关于Java打印。使用 `Book` 类时仅打印一页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16029624/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com