#java #pdf #pdf-generation #pdfbox
#java #PDF #генерация pdf #pdfbox
Вопрос:
Я использую PDFBox для создания PDF-файла из одной из введенных пользователем форм. Для рисования линии я использую PDPageContentStream.DrawLine, а для текста PDPageContentStream.drawString. Текст работает идеально, но при использовании DrawLine, когда я пытаюсь распечатать PDF, я получаю ошибку, как показано на прикрепленном изображении. Мой код выглядит следующим образом
PDPage page = new PDPage();
release.addPage(page);
contentStream = new PDPageContentStream(release,page);
int margin = 40;
vertHeight -= thisFontHeight * fontSize * 1.05f 5;
contentStream.drawLine(margin,vertHeight margin - 5, page.getMediaBox().getWidth() - margin, vertHeight margin - 5)
Приветствуется любая помощь
Ответ №1:
В вашем примере кода это не отображается, но я подозреваю, что вы смешиваете строки и текст. Вы не должны рисовать линии между BT и ET.
- начать текст
- нарисуйте некоторый текст
- конечный текст
- нарисуйте линию
- начать текст
- нарисуйте некоторый текст
- конечный текст
- нарисуйте еще несколько строк
- и т. Д
Например, если вы проведете линию между 1 и 3, вы получите вышеупомянутую ошибку (или похожую на нее).
PS: Если это не так, нам понадобится образец PDF для диагностики проблемы.
Комментарии:
1. Спасибо, Марк, это сработало!! Я рисовал линии между BT и ET, не нашел ни одного ресурса, в котором это говорилось.
2. Это делает: adobe.com/content/dam/Adobe/en/devnet/pdf/pdfs /…