ошибка pdfbox при использовании PDPageContentStream.DrawLine

#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. начать текст
  2. нарисуйте некоторый текст
  3. конечный текст
  4. нарисуйте линию
  5. начать текст
  6. нарисуйте некоторый текст
  7. конечный текст
  8. нарисуйте еще несколько строк
  9. и т. Д

Например, если вы проведете линию между 1 и 3, вы получите вышеупомянутую ошибку (или похожую на нее).

PS: Если это не так, нам понадобится образец PDF для диагностики проблемы.

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

1. Спасибо, Марк, это сработало!! Я рисовал линии между BT и ET, не нашел ни одного ресурса, в котором это говорилось.

2. Это делает: adobe.com/content/dam/Adobe/en/devnet/pdf/pdfs /…