首页 > 解决方案 > 为什么尺寸打印的尺寸错误?

问题描述

我想要一个 6 厘米(60 毫米)宽的矩形。

据我了解,iText 以点为单位,因此我将 60 毫米转换为点,得到 170 点。(链接到转换器

但是,当我在 A4 纸上打印并用尺子测量时,矩形的宽度为 5.7 厘米(57 毫米)。为什么是这样?

下面是我使用的代码:

    private static byte[] CreateRectangle()
    {
        var stream = new MemoryStream();
        PdfDocument pdfDoc = new PdfDocument(new PdfWriter(stream));
        PdfCanvas canvas = new PdfCanvas(pdfDoc.AddNewPage());
        Color greenColor = new DeviceCmyk(1f, 0f, 1f, 0.176f);
        canvas.SetFillColor(greenColor);
        canvas.Rectangle(150, 600, 170, 56); /* 170 width, 56 height */
        canvas.FillStroke();
        pdfDoc.Close();

        return stream.ToArray();
    }

标签: itextitext7

解决方案


你的计算是正确的,6厘米大约是170分。

你的代码是正确的。

我使用您的代码生成了 PDF。当我应用测量工具时,确认了 6 厘米:

我打印了那个 PDF 并测量了打印输出,再次为 6 厘米。

因此,要么你的尺子错了(我怀疑),要么你的打印不是“实际尺寸”,而是“适合”或“缩小超大页面”(这两者都对应 96%)。


推荐阅读