如何使用iTextSharp在pdf文档中的特定位置写入zapfdingbatslist [英] How to write in a specific location the zapfdingbatslist in a pdf document using iTextSharp

查看:175
本文介绍了如何使用iTextSharp在pdf文档中的特定位置写入zapfdingbatslist的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I want to put a check mark using zapfdingbatslist on my pdf document in iTextSharp in a specific location.

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

What I could do so far is I could show the check mark but it's all on the side of the document and not on a specific X, Y coordinate that I want it to be. I have a code below that would hopefully give you the idea of what I am talking about.

    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();

有什么想法吗?

推荐答案

顺便提一下,我是大多数 iText文档的作者(以及iText的原显影剂,包括文献 PdfWriter ZapfdingbatsList ,... classes),如果您花一些时间阅读iText文档,我将不胜感激。

Incidentally, I'm the author of most of the iText documentation (as well as the original developer of iText, including the Document, PdfWriter, ZapfdingbatsList,... classes), and I'd appreciate it if you took some time to read the iText documentation.

让我们从第2章并查看一些C#示例,介绍 Font 类。

Let's start with chapter 2 and take a look at some C# examples that introduce the Font class.

例如:

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

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

Once you have a Font object, you can create a Phrase (also explained in chapter 2):

Phrase phrase = new Phrase(zapfstring, font); 

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

Where zapfstring is a string containing any Zapfdingbats character you want.

要在绝对位置添加此短语,您需要阅读第3章。请查看示例以获取灵感,例如 FoobarFilmfestival.cs

To add this Phrase at an absolute position, you need to read chapter 3. Take a look at the examples for inspiration, for instance FoobarFilmfestival.cs:

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

其中 200 500 是X和Y坐标, 0 是以度表示的角度。取而代之的 ALIGN_CENTER ,你也可以选择 ALIGN_RIGHT ALIGN_LEFT

Where 200 and 500 are an X and Y coordinate and 0 is an angle expressed in degrees. Instead of ALIGN_CENTER, you can also choose ALIGN_RIGHT or ALIGN_LEFT.

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

In your code sample you were adding a Zapfdingbats glyph to a document using a list. Please take a moment to put yourself in my place. Doesn't that feel as if you're the inventor of the sock attending a Red Hot Chili Peppers' concert?

这篇关于如何使用iTextSharp在pdf文档中的特定位置写入zapfdingbatslist的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆