2017-07-20 34 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

因为发布更新而获得最佳效果。这对于进一步参考很有用。 –