Строки при распечатке iText7 PDF имеют разную длину на бумаге

#itext7

#java #печать #itext7

Вопрос:

Только некоторые из наших тестировщиков сообщают о странном виде всех строк на распечатке сгенерированного iText7 PDF (см. Изображение). Сгенерированный PDF-файл выглядит идеально, и недостаток появляется только на бумаге. У большинства пользователей вообще нет проблем.

Будут оценены любые предложения относительно известных проблем с принтерами, драйверами или подсказками о том, как воспроизвести или локализовать проблему. Что я мог бы сделать на стороне iText7?

 PdfCanvas canvas = new PdfCanvas(pdfPage)
canvas.moveTo(x1,y1);
canvas.lineTo(x2,y2);
canvas.closePathStroke();
 

PDF-файл можно найти здесь: PDF

введите описание изображения здесь

Комментарии:

1. Пожалуйста, поделитесь PDF-файлом, для которого возникает ошибка. Кроме того, вы проверили, есть ли у пользователей, имеющих эту проблему, что-то общее, чего нет у пользователей без проблем, например, один и тот же просмотрщик PDF или один и тот же принтер или даже одна и та же ОС?

2. Спасибо, я добавил ссылку на PDF-файл в исходное сообщение. Все пользователи с этой проблемой — используют Chrome в Windows — установка и использование плагина Adobe Reader не помогли. — большинство из них используют принтер brother

3. Хорошо, я могу воспроизвести проблему с вашим примером документа, используя Chrome в Windows с принтером Brother, я также получаю эти дополнительные сегменты строк, используя Adobe Reader вместо Chrome, которого у меня нет. Однако, глядя на PDF-файл, я не вижу ничего, что могло бы вызвать эту проблему. Рассмотрите возможность открытия проблемы для Chrome. Кроме того, хотя в вашем типе рисования линий нет ничего плохого, попробуйте рисовать прямоугольники в виде прямоугольников (вместо нескольких линий) или используйте заполненные тонкие прямоугольники вместо линий, возможно, один из этих вариантов поддерживается Chrome printing.

4. @mkl Купил древний принтер brother для тестирования. Теперь я печатаю тонкие прямоугольники вместо линий, и это работает безупречно. Спасибо за воспроизведение и решение. (Могу я попросить вас добавить свой комментарий в качестве ответа, чтобы я мог принять его.)

Ответ №1:

Превращение предыдущих комментариев в реальный ответ…

Я мог бы воспроизвести проблему с вашим примером документа:

  • используя Chrome в Windows с принтером Brother, я также получаю эти дополнительные сегменты строк;
  • используя Adobe Reader вместо Chrome, я этого не делаю.

Однако, заглянув в PDF-файл, я не увидел ничего, что могло бы вызвать эту проблему.

Таким образом, хотя для начала в вашем типе рисования линий нет ничего плохого, я предложил рисовать прямоугольники как прямоугольники (вместо нескольких линий) или использовать заполненные тонкие прямоугольники вместо линий. Я надеялся, что один из этих вариантов поддерживается Chrome printing.

И действительно, вы прокомментировали:

Теперь я печатаю тонкие прямоугольники вместо линий, и это работает безупречно.

Итак, хотя ошибка не была вашей с самого начала, изменение вашего кода для рисования границ по-другому решило проблему для вас.