如何为 PDF 文档设置 CurrentCulture ITextsharp c#
本文关键字:CurrentCulture ITextsharp 设置 文档 PDF | 更新日期: 2023-09-27 18:20:22
Document doc = new Document(iTextSharp.text.PageSize.LETTER.Rotate(), 10, 10, 5, 5);
string nazivPDFa = txt_datumFiskalnogIsecka.Text +" "+ txt_nazivKompanije.Text;
PdfWriter pdf = PdfWriter.GetInstance(doc, new FileStream(nazivPDFa + ".pdf", FileMode.CreateNew));
doc.Open();
Paragraph klijent = new Paragraph(ispisiKlijenta.Text);
PdfPTable tabelaNK = new PdfPTable(1);
PdfPCell kl = new PdfPCell(new Phrase(klijent));
kl.BorderColor = BaseColor.BLACK;
tabelaNK.AddCell(kl);
doc.Add(tabelaNK);
我用itextSharp创建了PDF文档,当我用塞尔维亚语的一些文本填充PDF时,他不会向我显示像š,ć,č,đ,ž这样的字符。
示例:我写了"nešto",我得到了"neto"。
我对那个PDF有很多想法,需要永远给当前文化的所有元素。
创建Paragraph
时未使用字体。在这种情况下,将使用标准类型 1 字体 Helvetica,并且不会嵌入。由于 Helvetica 仅支持有限的字符集,因此您的字形不会出现。这在官方文档中有很好的记录。可惜你在学会走路之前就尝试跑步。
有几件事可以起作用。
- 首先,您需要确保
ispisiKlijenta.Text
的编码正确。例如,该字符串是 CP1250 还是 Unicode 中的字符串?当你写KlijenT.Add("Tekući račun: " +txt_brRacunaKompanije.Text);
时,你正在写糟糕的代码(至少如果你在写Java(,因为你在代码中引入了特殊字符,当使用不同的环境使用不同的编码编译或执行代码时,这些字符可能会消失。 - 然后,您需要提供一个知道如何绘制所需字形的字体程序。例如:Helvetica不知道CP1250,但arial知道.ttf(许多其他字体也是如此,但你需要先检查一下(。
- 然后,您需要决定如何使用该字体。您会使用嵌入字体作为简单字体,就像在我们创建此 PDF 的编码示例中所做的那样,还是将字体作为复合字体嵌入,就像我们在创建此 PDF 的 UnicodeExample 中所做的那样。两个 PDF 可能看起来与您相同,但它们不是。您所做的选择将对应用程序的设计产生影响。 一旦你
- 决定了字体,一旦你创建了一个
Font
对象,例如名为font
,你就需要在创建Paragraph
时使用该对象。