Я новичок в библиотеке iText. Мое требование: мой сервлет создаст лист меток (PDF). Это добавит изображение на всю страницу документа и текст в определенное место на изображении документа.
Пожалуйста помоги?
Я новичок в библиотеке iText. Мое требование: мой сервлет создаст лист меток (PDF). Это добавит изображение на всю страницу документа и текст в определенное место на изображении документа.
Пожалуйста помоги?
Непонятно, о чем параметр text. Возможно, вы выбрали прямое содержание, которое идет под изображением, но это не главная проблема.
Вы должны были прочитать некоторую документацию, потому что вы используете beginText(), setFontAndSize(), showText() и endText(), но вы не очень хорошо читали документацию, потому что:
(1) Вы используете lineTo() без moveTo() сначала и без stroke() после. Другими словами: вы создаете странный путь, который никогда не рисуется.
(2) Вы используете showText(), но я не вижу, чтобы вы где-либо определяли координаты для текста. Что случилось с вашим методом setTextMatrix()?
(3) Вы новичок, но вместо простого кода, например:
ColumnText.showTextAligned(canvas, Element.ALIGN_LEFT,
new Phrase("This is a test"), 100, 100, 0);
Похоже, вы хотите научиться бегать до того, как научитесь ходить.
Кроме того: вы, вероятно, используете старую версию iText, потому что вы не упоминаете, что исключение возникает, когда вы используете недопустимый оператор lineTo() внутри текстового блока. Вы не можете использовать lineTo() внутри последовательности beginText()/endText().
Пожалуйста, следуйте советам mkl и сначала прочитайте документацию.
private static void addContent(PdfContentByte canvas, PdfContentByte text, Document document) { Image img = Image.getInstance("07.png"); img.scaleToFit(PageSize.A4.height(), PageSize.A4.width()); img.setAbsolutePosition(1, 1); canvas.addImage(img); canvas.saveState(); canvas.setCMYKColorFill(0x00, 0x00, 0x00, 0x80); BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.EMBEDDED); text.beginText(); text.setFontAndSize(bf, 18); text.lineTo(1, 1); text.showText("This is Test"); text.endText(); document.add(img);}- person Amar   schedule 29.07.2013