Почему размеры напечатаны не того размера? - PullRequest
0 голосов
/ 13 февраля 2020

Мне нужен прямоугольник шириной 6 см (60 мм).

Насколько я понимаю, iText работает с точками как с единицами, поэтому я преобразовал 60 миллиметров в точки и получил 170 очков. ( ссылка на конвертер )

Однако, когда я печатаю на бумаге формата А4 и измеряю ее линейкой, прямоугольник имеет ширину 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();
    }

1 Ответ

1 голос
/ 13 февраля 2020

Ваш расчет правильный, 6 см - около 170 баллов.

Ваш код правильный.

Я использовал ваш код для создания PDF. Когда я применил инструмент измерения, 6 см были подтверждены:

Я распечатал этот PDF и измерил распечатку, снова 6 см.

Таким образом, либо ваша линейка неверна (в чем я сомневаюсь), либо ваша печать была не с «Фактическим размером», а, вероятно, с «Подгонкой» или «Сокращением слишком больших страниц» (которые оба здесь соответствуют 96%).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...