Как добавить динамические данные в PDF-заголовок, используя itextsharp - PullRequest
1 голос
/ 09 августа 2011

Я пытаюсь сгенерировать pdf, используя itextsharp.i, я должен добавить некоторые динамические данные в заголовок pdf. Как это сделать в событии onpagestart.

Ответы [ 2 ]

2 голосов
/ 25 августа 2011

Вы всегда можете объявить свою переменную в собственной реализации интерфейса IPdfPageEvent.После этого вы сможете установить значение этой переменной за пределами вашей реализации IPdfPageEvent.

Скажи

writer.PageEvent.variable = "Some value";

Используя событие OnStartPage, вы можете сделать что-то вроде:

public class MyPageEvent:IPdfPageEvent
{
  public string variable="";
 public void OnStartPage(PdfWriter writer, Document document)
 {
       PdfContentByte cb = riter.DirectContent;;
       cb.BeginText();
       cb.SetFontAndSize(myBaseFont, 10f);
       cb.SetTextMatrix(600, 15);
       cb.ShowText(this.variable);
       cb.EndText();
 }
 ......
}
1 голос
/ 12 октября 2012

Не уверен, что вам все еще нужен ответ, но в настоящее время я выполняю приведение моего объекта pdfwriter.pageevent к явному подклассу, а затем устанавливаю открытое свойство в этом подклассе.

в классе, генерирующем PDF:

 CType(pdfWriter.PageEvent, PDFDocEventHelper).currentValue = value

и подклассный класс PdfPageEventHelper:

Public Class PDFDocEventHelper
 Inherits PdfPageEventHelper

 Public Property currentValue as String
 .
 .
 .
 End Class

имеет смысл? Я совсем не люблю бросать, используя CType (), но, похоже, он работает.

...