如何使用iTextSharp在pdf文档中的特定位置写入zapfdingbatslist

时间:2013-05-04 03:57:24

标签: c# pdf itextsharp

我想在特定位置 iTextSharp 的pdf文档中使用 zapfdingbatslist 复选标记。

到目前为止我可以做的是我可以显示复选标记,但它全部位于文档的一侧,而不是我想要的特定X,Y坐标。我有一个代码,希望能让你知道我在说什么。

    String outputFile = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "Test.pdf");
    System.IO.FileStream fs;
    Document doc = new Document(PageSize.A4, 20, 20, 10, 10);
    PdfContentByte cb;
    PdfWriter writer;

    fs = new System.IO.FileStream(outputFile, System.IO.FileMode.Create);
    writer = PdfWriter.GetInstance(doc, fs);
    doc.SetPageSize(iTextSharp.text.PageSize.A4.Rotate());
    writer.AddViewerPreference(PdfName.PICKTRAYBYPDFSIZE, PdfBoolean.PDFTRUE);

    doc.Open();
    cb = writer.DirectContent;

    List myList = new ZapfDingbatsList(52); // Check mark symbol from Dingbatslist

    // I have some more code here but it is not needed for the problem
    // and thererfore not shown


    // I could shohw the dingbatslist check mark here
    myList.Add(" ");
    doc.Add(myList); // However I want to show it in a specific X, Y position

    doc.Close();
    writer.Close();
    fs.Close();

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

顺便说一句,我是大多数iText documentation(以及iText的原始开发者,包括DocumentPdfWriterZapfdingbatsList的作者。 ..类),如果您花一些时间阅读iText文档,我将不胜感激。

让我们从chapter 2开始,看一下Font类的some C# examples

例如:

Font font = new Font(Font.FontFamily.ZAPFDINGBATS, 12);

一旦有了Font对象,就可以创建一个Phrase(在第2章中也有解释):

Phrase phrase = new Phrase(zapfstring, font); 

其中zapfstring是包含您想要的任何Zapfdingbats字符的string

要在绝对位置添加此词组,您需要阅读第3章。查看the examples获取灵感,例如FoobarFilmfestival.cs

PdfContentByte canvas = writer.DirectContent;
ColumnText.ShowTextAligned(canvas, Element.ALIGN_CENTER, phrase, 200, 500, 0); 

其中200500是X和Y坐标,0是以度表示的角度。您也可以选择ALIGN_CENTERALIGN_RIGHT

,而不是ALIGN_LEFT

在您的代码示例中,您使用列表将Zapfdingbats字形添加到文档中。请花点时间把自己放在我的位置。难道不觉得你是参加Red Hot Chili Peppers音乐会的袜子的发明者吗?