当前位置: 首页 > 知识库问答 >
问题:

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

柳翼
2023-03-14

我正在使用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时,它为我提供了几个选项:

如果我只单击“打印”,它会给我1 1/16英寸长的线条,从页面边缘开始大约1/8英寸,因此默认情况下,PDF Architect似乎会获取裁剪框的内容,并将其扩展到最大页面可用性。

如果在单击“打印”之前单击“适合”,则会产生所需的输出-行长1英寸,从页面每侧开始1/2英寸。这是可行的,但容易出错——太容易忘记每次单击“调整”。

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

共有1个答案

虞滨海
2023-03-14

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

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

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

我不会设置收割机。当PDF文档中的页面为字母大小且输出纸张也为字母大小时,无论是否启用“适合”选项,都不应考虑,因为不需要进行缩放。这绝对不是一个傻瓜式的解决方案,但至少它不太容易出错。

 类似资料:
  • 问题内容: 我有一个带图标的jLabel,应该打印。但是,我无法将jLabel的图标放大。 这是一些我认为会影响打印尺寸的代码。 那我该如何改变呢?另外,如何在打印过程中放置单选按钮?这是因为我想一起打印带有标签的单选按钮。 这是我使用按钮打印标签的方式: 我可以这样吗?: 更新: 我想我必须在这里添加一些内容以打印另一个组件: Please help. Thanks 问题答案: 因此,基于“ 打

  • 我使用iText7生成PDF,然后在新选项卡中打开它。 用户的意图始终是打印,因此显示PDF并让他单击打印按钮并不方便。这就是为什么我想在PDF打开时立即打开打印对话框。 这个解决方案不起作用 使用iText打开PDF时自动打开打印对话框 因为我是派系。iText7中不存在PRINTDIALOG。 我还尝试了各种不起作用的JavaScript选项,比如 如何在页面加载后直接打开打印对话框?

  • 我正在使用minGW的minw-w64(x64)分叉nuwen.net.这是来自gcc的7.1版本: 我正在编译这个程序: 带有警告和c11标准: 我得到了这些警告: 我想在没有警告的情况下打印size_t,但在这种情况下不知道正确的格式说明符。

  • 问题内容: 我们正在寻找替代方法,以替代当前通过小程序在Java Web应用程序中打印支票的方式。似乎共识是使用PDF进行打印,而itext提供了使用Java进行打印的功能。 但是 ,在我们的特殊情况下,支票是“仅打印”的,这一点很重要- 用户在应用程序中不应该具有保存支票的任何能力(我知道精明的用户可以做一个PrintScreen,但我们想遮盖住后盖,在应用程序中不进行任何本机功能来保存支票)。

  • 我希望获得PDF中每个页面的准确大小,作为我将创建的PDF单元测试的一部分。当我处理每个文档中具有许多不同页面大小的PDF时,代码返回一个ArrayList维度。 AFAIK每个页面也可以有自己的DPI设置。 我在谷歌上搜索了很多次,但我只找到了这个答案,这只给了我部分答案,因为我仍然需要计算出每页的DPI。 PDFBox-查找页面维度

  • 我遇到过许多使用PDFBox Layer实用程序的appendFormAsLayer方法的示例,如下所示: 前面代码中的getPDFName调用中的“mc”有什么意义? 我已经编写了下面的代码,在一个现有pdf的每一页上插入水印,并启用每一组可选内容。 将组设置为已启用或已禁用的“SetGroupEnabled(groupName,true)”将使其显示以供显示和打印。根据我在这个主题上研究的其他