2017-07-20 36 views
-1

您好我正在嘗試使用itextsharp(我的語言 - 希伯來文,阿拉伯語)添加一些文本到pdf,但文本顯示爲反向。代碼是如何在itextsharp中顯示ME語言

BaseFont bf = BaseFont.CreateFont(Server.MapPath("~/StudioFonts/EFT_Beigale Heavy.ttf"), 
        BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); 

       Font EFT_Beigale_Heavy = new Font(bf, 12, Font.BOLD, CMYKColor.CYAN); 

       PdfContentByte cb = writer.DirectContent; 
       cb.BeginText(); 
       cb.SetColorFill(BaseColor.CYAN); 
       cb.SetFontAndSize(bf, 30); 
       cb.SetTextMatrix(60, 60); 
       cb.ShowText(pageContext); 
       cb.EndText(); 

任何想法我失蹤了?

+0

希伯來語/阿拉伯語不支持'ShowText()'在舊版本的iTextSharp的。看到我的意見,你的其他問題。如果你沒有升級到iText 7,你只能在'ColumnText'和'PdfPTable'中獲得RTL支持! –

+0

這似乎有點奇怪:-(開發者在iText7之前做了什麼?沒有辦法用舊的itextsharp版本從右到左寫? – Elidotnet

+0

呃...爲什麼你讓我**重複三次** RTL (需要希伯來語/阿拉伯語)在iText 5 **支持**在ColumnText和PdfPTable? –

回答

1

@BrunuLowagie感謝耐心和支持 這是工作的代碼

BaseFont bf = BaseFont.CreateFont(Server.MapPath("~/StudioFonts/EFT_Beigale Heavy.ttf"), 
BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); 
Font EFT_Beigale_Heavy = new Font(bf, 40); 
ColumnText column = new ColumnText(writer.DirectContent); 
column.SetSimpleColumn(20, 200, 300, 36); 
column.RunDirection = PdfWriter.RUN_DIRECTION_RTL; 
column.AddElement(new Paragraph(pageContext, EFT_Beigale_Heavy)); 
       column.Go(); 
+0

因爲發佈更新而獲得最佳效果。這對於進一步參考很有用。 –