2010-01-11 4 views
1

У меня есть базовый файл PDF, в котором у меня есть 5 различных областей пустого содержимого, которые я хочу использовать iTextSharp для написания текста. Проблема в том, что я не уверен, что это лучший способ. Я попытался использовать ColumnText, чтобы выполнить это, но я не могу добавить несколько объектов ColumnText.iTextSharp читает pdf-шаблон с жесткого диска и пишет текст

  ColumnText tagColumn = new ColumnText(pdfContentByte); 
      tagColumn.SetSimpleColumn(460, 100, 620, 160); 
      string[] tagColors = bt.DealerTagColor.Split('|'); 
      Font tagFont = FontFactory.GetFont(bt.DealerTagFont, bt.DealerTagSize, Font.NORMAL, new BaseColor(int.Parse(tagColors[0]), int.Parse(tagColors[1]), int.Parse(tagColors[2]))); 
      Paragraph p = new Paragraph(dto.Tag, tagFont); 
      p.Leading = bt.DealerTagSize; 
      tagColumn.AddElement(p); 
      tagColumn.Go(); 

Что мне нравится в ColumnText это позволяет мне важно определить heigth/ширину и положение текста области.

Любые мысли о том, как я могу выполнить это с использованием или без использования ColumnText? Мне просто нужно управлять шрифтом/fontsize/font color/leading/и шириной области, которая позволит обтекать текст.

ответ

3

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

Эта статья мне помогла:

Fill in PDF Form Fields using the Open Source iTextSharp Dynamic Link Library

EDIT: PdfPTables?

Если ваши колонковые тексты имеют табличную структуру, рассмотрите возможность использования PdfPTable. Я использовал PdfPTables для заполнения строк данных в формах, созданных из пустой формы шаблона. Вам нужно выяснить координату x каждого из ваших столбцов и использовать эти значения при добавлении PdfPCells в таблицу, но она работает. Мне никогда не приходилось устанавливать верхний предел высоты PdfPCell, но я думаю, что вы можете это сделать.

Проверьте, пожалуйста, this page для PdfPTables.

+0

Спасибо за ответ. Я не хочу заполнять поля формы, я просто хочу взять область в PDF, скажем 100px на 100px и наложить область текста, которая обертывается в пределах области 100 на 100 – aherrick

+0

Интересно, можете ли вы использовать PdfPTable? См. Мое редактирование. –

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