微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

iText7 - 打印时创建具有精确尺寸的 PDF - 如何?

如何解决iText7 - 打印时创建具有精确尺寸的 PDF - 如何?

我正在使用 iText7 (C#) 创建一个简单的 PDF,但我需要以正确的尺寸打印它。这是我的代码

        PdfWriter writer = new PdfWriter("output.pdf");
        PdfDocument pdf = new PdfDocument(writer);
        pdf.SetDefaultPageSize(iText.Kernel.Geom.PageSize.LETTER);
        var page = pdf.AddNewPage();
        page.SetCropBox(new iText.Kernel.Geom.Rectangle(36,36,7.5f * 72,10 * 72));
        PdfCanvas canvas = new PdfCanvas(page);
        canvas.SetstrokeColor(ColorConstants.BLACK).Setlinewidth(3);
        canvas.Moveto(36,36);
        canvas.Lineto(36,36 + 72);       // Draw a line 1 inch long
        canvas.Lineto(36 + 72,36 + 72);  // Draw a second line,perpendicular to the first,also 1 inch long
        canvas.ClosePathstroke();
        pdf.Close();

如果我右键单击生成的 PDF 并选择“打印”,我的三角形就会离开页面底部

当我在我使用的 PDF 程序(PDF Architect)中打开生成的 PDF 时,它给了我几个选项:

printer options

如果我只是点击“打印”,它会给我 1 1/16" 长的行,从页面边缘开始大约 1/8",所以认情况下 PDF Architect 似乎正在获取我的内容裁剪框并将其扩展到最大页面可用性。

如果我在单击“打印”之前单击“适合”,则会产生所需的输出 - 行 1 英寸长,从页面的每一侧开始 1/2 英寸。这有效但容易出错 - 很容易忘记每次点击“适合”。

有没有一种方法可以生成包含信息的 PDF,其中包含以下信息:“我以信纸大小为目标,但我与所有边缘保持 1/2”的距离,因此当您打印时,如果打印机有边距

解决方法

您将无法从 PDF 文档中完全控制这一点。 PDF 处理器(例如查看应用程序)或打印机(驱动程序)将始终能够放大或缩小内容。

显然,PDF Architect 默认启用了“适合”选项,因此它会将页面缩放到选定的纸张大小。
您正在设置一个 7.5x10 英寸的裁剪框。我假设您要打印到 Letter 尺寸(8.5x11 英寸)的纸张上。所以7.5x10的页面确实会放大,你的内容会变大一些。

有没有一种方法可以生成包含信息的 PDF,其中包含以下信息:“我以信纸大小为目标,但我与所有边缘保持 1/2”的距离,因此当您打印时,如果打印机有边距

我不会设置裁剪框。当 PDF 文档中的页面为 Letter 大小且输出纸张也是 Letter 大小时,是否启用“适合”选项无关紧要,因为不需要进行缩放。这绝对不是一个万无一失的解决方案,但至少它不容易出错。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。