如何使用itext java设置100%的默认缩放

时间:2015-07-09 10:38:08

标签: java pdf itext

我正在使用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);

在我的代码中。如果有可能如何做到这一点?

1 个答案:

答案 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问题)。