我正在使用iText创建一个pdf文件。但它每次以不同的缩放百分比开放。如何使用java将默认缩放设置为100%?我正在使用以下代码创建PDF文档:
String fileName = "Dashboard.pdf";
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "attachment; filename=\""
+ fileName + "\"");
Document my_pdf_report = new Document();
PdfWriter.getInstance(my_pdf_report, response.getOutputStream());
my_pdf_report.open();
因为我还需要生成另存为弹出窗口。那么可以使用
PdfDestination pdfDest = new PdfDestination(PdfDestination.XYZ,
0, reader.getPageSize(1).getHeight(), 1f);
在我的代码中。如果有可能如何做到这一点?
答案 0 :(得分:1)
请查看我对此问题的回答:How to set zoom level to pdf using iTextSharp?
在回答这个问题时,我编写了AddOpenAction示例(使用Java)。此示例打开一个缩放系数为75%的PDF。您需要以缩放系数100%打开的PDF。这意味着您需要调整以下行:
PdfDestination pdfDest = new PdfDestination(PdfDestination.XYZ,
0, reader.getPageSize(1).getHeight(), 0.75f);
像这样:
PdfDestination pdfDest = new PdfDestination(PdfDestination.XYZ,
0, reader.getPageSize(1).getHeight(), 1f);
将0.75替换为1时,缩放系数不再是75%而是100%。
与您的情况的另一个不同之处在于,您是从头开始创建PDF(正如您在评论中解释的那样)。你有:
PdfWriter.getInstance(my_pdf_report, response.getOutputStream());
您应将其替换为:
PdfWriter writer = PdfWriter.getInstance(my_pdf_report, response.getOutputStream());
现在你可以做到:
writer.setOpenAction(PdfAction.gotoLocalPage(1, pdfDest, writer));
从另一条评论中,我们了解到您不了解正在创建的PDF的页面大小。请看一下我对这个问题的回答:How to set the page size to Envelope size with Landscape orientation?
您正在创建这样的Document
:
Document my_pdf_report = new Document();
这意味着您要创建默认大小的页面:A4。
在这种情况下,页面的高度为842,因此您可以使用:
PdfDestination pdfDest = new PdfDestination(PdfDestination.XYZ, 0, 842, 1f);
如有疑问,请阅读the documentation。有关完整的工作示例,请参阅OpenAt100pct。生成的PDF open100pct.pdf在尊重/OpenAction
功能的观看者中打开100%(不是所有功能都可以,但这是查看器问题,而不是iText或PDF问题)。