【问题标题】:Why are the dimensions printed the wrong size?为什么尺寸打印的尺寸错误?
【发布时间】:2020-02-13 14:27:52
【问题描述】:

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

据我了解,iText 以点为单位,因此我将 60 毫米转换为点,得到 170 点。 (link to converter)

但是,当我在 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();
    }

【问题讨论】:

    标签: itext itext7


    【解决方案1】:

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

    你的代码是正确的。

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

    我打印了那个 PDF 并测量了打印输出,还是 6 厘米。

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

    【讨论】:

    • 谢谢!我发现出了什么问题,我正在从 Microsoft Edge 打印 PDF(当尺寸错误时),我现在从 Chrome 打印了相同的 PDF,并且尺寸现在是正确的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-28
    • 2018-07-08
    • 2017-01-24
    • 1970-01-01
    • 2018-05-06
    • 1970-01-01
    相关资源
    最近更新 更多