我有一个包含波斯字符的Html文件。我想使用iTextSharp将其转换为pdf。
我写过这些文字来做:
string HTML = System.IO.File.ReadAllText(Server.MapPath("~/Misc/Html.txt"));
Document document = new Document();
string fontpath = Server.MapPath("~/Fonts/BNazanin.ttf");
iTextSharp.text.FontFactory.Register(fontpath);
PdfWriter.GetInstance(document, new FileStream(Server.MapPath("~/Files/Pdf/test.pdf"), FileMode.Create));
document.Open();
try
{
iTextSharp.text.html.simpleparser.StyleSheet styles = new iTextSharp.text.html.simpleparser.StyleSheet();
styles.LoadTagStyle(HtmlTags.BODY, HtmlTags.FACE, "BNazanin");
styles.LoadTagStyle(HtmlTags.BODY, HtmlTags.ENCODING, BaseFont.IDENTITY_H);
List<IElement> list = HTMLWorker.ParseToList(new StringReader(HTML), styles);
for (int k = 0; k < list.Count; k++)
{
document.Add((IElement)list[k]);
}
document.Close();
}
catch
{
document.Close();
}
Html.txt是这样的:
<span>گرید</span>
但输出是这样的
دیرگ
而不是
گرید
答案 0 :(得分:3)
自从我使用从右到左呈现文本以来,很长一段时间,但您应该能够设置RunDirection属性以反映您需要的方向。
PdfPTable pdfTable = new PdfPTable(1);
pdfTable.RunDirection = PdfWriter.RUN_DIRECTION_RTL;
然后可以在添加到表格的单元格中添加文本,单元格将继承方向,以便正确呈现。