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

iText7-打印时创建精确尺寸的PDF-如何创建?,pdf,printing,itext7,layoutmargins,Pdf,Printing,Itext7,Layoutmargins,我正在使用ITEXT7C创建一个简单的PDF,但我需要它以正确的大小打印出来。这是我的密码: PdfWriter writer = new PdfWriter("output.pdf"); PdfDocument pdf = new PdfDocument(writer); pdf.SetDefaultPageSize(iText.Kernel.Geom.PageSize.LETTER); var page =

我正在使用ITEXT7C创建一个简单的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 Architect的PDF程序中打开生成的PDF时,它为我提供了几个选项:

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

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


有没有一种方法可以生成一个PDF,其中包含的信息表明我将此文档的目标定为字母大小,但我将与所有边缘保持1/2的距离,因此当您打印时,如果打印机有页边距,您将无法从PDF文档中完全控制这一点。PDF处理器(例如查看应用程序或打印机驱动程序)始终能够放大或缩小内容

显然,PDF Architect在默认情况下启用了Fit选项,因此它可以将页面缩放到选定的纸张大小。 您正在将裁剪框设置为7.5x10英寸。我想您打印的是字母大小为8.5x11的纸张。因此,7.5x10页面确实会被放大,您的内容也会稍微变大

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