2014-12-31 11 views
0

Я пытаюсь поместить текст в определенных местах в формате PDF и с использованием кодаPdfByteContent не добавляя в IText PDF

public static PdfContentByte setContentSize(com.itextpdf.text.Document itextDocument) { 
     itextDocument.open(); 
     PdfContentByte contentByte = getPdfWriter(itextDocument).getDirectContent(); 
     contentByte.saveState(); 

     Font font = new Font(FontFamily.TIMES_ROMAN, 12); 
     BaseFont baseFont = font.getCalculatedBaseFont(false); 

     contentByte.beginText(); 
     contentByte.setFontAndSize(baseFont, 12); 
     contentByte.setTextMatrix(50, 800); 

     return contentByte; 
    } 

     ColumnText ct = new ColumnText(contentByte); 
        ct.setSimpleColumn(new Phrase(new Chunk(text, FontFactory.getFont(FontFactory.HELVETICA, 18, Font.NORMAL))), 
            46, 190, 530, 36, 25, com.itextpdf.text.Element.ALIGN_LEFT); 
        ct.go(); 

     //contentByte.showTextAligned(PdfContentByte.ALIGN_LEFT, text, 150, 240, 0); 
     //Phrase phrase = new Phrase(text, new Font()); 
     //ColumnText.showTextAligned(contentByte, com.itextpdf.text.Element.ALIGN_LEFT, phrase, 200, 572, 0); 

Я попытался прокомментировал код также, но текст не печатает в формате PDF. Любое предложение будет оценено по достоинству.

+0

Возможный дубликат [Как установить абсолютное положение текста @ в документе PDF с помощью iText] (http://stackoverflow.com/questions/27501522/how-to-set-text-absolute-position-in-the- pdf-document-use-itext) –

+0

Ваш код не компилируется, не говоря уже о запуске как есть. Также неясно, как вы организовываете эти фрагменты кода, чтобы получить что-то выполнимое. – mkl

ответ

2

Пожалуйста, прочтите документацию перед написанием кода. Вам будет полезно прочитать раздел «Абсолютная позиция текста» в бесплатной электронной книге "The Best iText Questions on StackOverflow".

Что касается вашего кода:

Первый вы пытаетесь добавить текст, трудный путь, но я вижу saveState() без restoreState() и я вижу beginText() без endText. Я не вижу ничего, но текст не отображается.

Затем вы попробуйте добавить текст в более простой способ, более конкретно, способ, который не требует beginText(), setFontAndSize(), setTextMatrix() и т.д ... Вместо того, чтобы использовать ColumnText.

Если вы комбинируете beginText() с ColumnText, вы вводите ошибку синтаксиса в свой PDF-файл. При использовании ColumnText iText вызовет на ваше место beginText(), в результате получится вложенный текстовый блок. Это запрещено ISO-32000-1. См. PDFs generated using itextsharp giving error at the time of first print command

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

У нас, с другой стороны, есть много примеров, которые действительно работают. Все они объясняются в ответах на эти вопросы:

Есть несколько примеров в бесплатной электронной книге который связывает The Best iText Questions on StackOverflow.

Смежные вопросы