Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何配置iText以支持亚洲字符?_Java_Pdf_Pdf Generation_Itext_Asianfonts - Fatal编程技术网

Java 如何配置iText以支持亚洲字符?

Java 如何配置iText以支持亚洲字符?,java,pdf,pdf-generation,itext,asianfonts,Java,Pdf,Pdf Generation,Itext,Asianfonts,我的Java应用程序使用iText创建PDF。有时内容是亚洲的,这不起作用。亚洲字符不可见 我在iText下载页面上找到了iTextAsian.jar,但不知道如何使用它 目标是使用我最喜欢的字体作为默认字体。但是,当一个字符不可用时,将为该字符使用另一种字体。我读过,iText可以自动选择字体,但是如何配置呢 我还希望PDF中包含所有必需的字体,这样用户就不必在计算机上安装亚洲字体。 您可以定义“FontSelector”,然后添加字体(FontSelector.AddFont)。现在,iTe

我的Java应用程序使用iText创建PDF。有时内容是亚洲的,这不起作用。亚洲字符不可见

我在iText下载页面上找到了
iTextAsian.jar
,但不知道如何使用它

目标是使用我最喜欢的字体作为默认字体。但是,当一个字符不可用时,将为该字符使用另一种字体。我读过,iText可以自动选择字体,但是如何配置呢

我还希望PDF中包含所有必需的字体,这样用户就不必在计算机上安装亚洲字体。

  • 您可以定义“FontSelector”,然后添加字体(FontSelector.AddFont)。现在,iText将使用fontSelector.Process方法从下一个定义的字体中选择不可用的字符
  • 亚洲字符通常是Unicode字符,因此您必须设置“BaseFont.IDENTITY_H”而不是Ansi字符(例如FontFactory.GetFont(“tahoma”,BaseFont.IDENTITY_H))
  • 如果是RTL,则需要将文本包装在具有运行方向属性的元素中,并将其设置为RTL

它们不是“符号”,而是字符。您的用户是否都在其PDF查看器中安装了亚洲字体包,或者您是否可以控制PDF查看器的安装基数,从而确保他们安装了亚洲字体包?如果不是,使用PDF嵌入字体会不会使生成的PDF太大?iText只嵌入文档所需的字形?无法控制用户。它是一个创建PDF的web应用程序。非常大的PDF比没有亚洲字符的PDF更好。下一步是检测用户内容是否包含亚洲字符,并跳过基于此添加额外字体。我必须通过addFont()添加哪些字体?BaseFont.IDENTITY\u H将选定的.ttf字体嵌入最终PDF中。因此,请查找具有该语言完整字符的字体。由于网站上的用户可能来自任何地方,我必须将所有字符的字体添加到选择器中,对吗?如何找出,哪些(10?)免费字体总共覆盖了99%的所有字符?是的,您需要添加这些字体,只有fontSelector。Process method能够自动选择正确的字体。以下是一些免费的亚洲和阿拉伯字体:&