如何使用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.
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?