2011-01-27 47 views
2

我希望有人能帮助我。iTextSharp字符č和ž(Foxit vs Adob​​e reader)

我在写一些需要打印pdf的应用程序。

经过长时间的搜索,我发现如何正确打印斯洛文尼亚语的字符。

我就是这么做的:

iTextSharp.text.Font crkeMaleCrneBold = 
      FontFactory.GetFont(FontFactory.COURIER, 
           BaseFont.CP1250, 
           8, 
           iTextSharp.text.Font.BOLD, 
           new iTextSharp.text.BaseColor(0, 0, 0)); 

一切工作GR8对福昕阅读器,但在Adobe Reader X I SE划线方使用CP1250时和当IDENTITY_H我看到丢失字符..

我想PDF确实获得了所需的字符,但Adobe不能很好地打印。

什么是正确的编码使用斯洛文尼亚字符?我没有时间去产生一些乳胶看到正在发生的事情...

回答

3

我再次回答我的问题:=)

没有为你们

首先,我的解决方案创建:(注意完整路径.TTF,否则存在误差)

BaseFont arial = BaseFont.CreateFont("c:\\windows\\fonts\\arial.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED); 

...和你本身我用来代替CP1250

IDENTITY_H
iTextSharp.text.Font crkeMaleCrne = new iTextSharp.text.Font(arial, 12, iTextSharp.text.Font.NORMAL); 

它在Foxit中可以正常工作& Adob​​e Reader。最后; =) 现在我想我将不得不把arial.ttf放到bin文件夹中,并用app分开它以确保用户有字体?

或者我必须把它放在win/font文件夹并注册字体才能使用它?

+0

Arial与Windows机器船舶。你也可以使用`FontFactory.registerDirectories()`和`FontFactory.getFont()`,而不是直接调用BaseFont.CreateFont。 RegisterDirectories将查看各种操作系统的所有标准字体存储路径,然后您可以使用它们的名称而不是路径。 – 2011-01-28 17:43:05