当前位置: 首页 > 面试题库 >

使用PDFBox将unicode字符串写入PDF

那正初
2023-03-14
问题内容

我想使用Apache PDFBox 1.8.8创建一个包含Unicode字符的PDF,但是我对支持什么和不支持什么感到困惑。

请有人澄清。另外,如果这是一个已修复的错误,则有人可以告诉我何时可能发布PDFBox的下一个版本。

谢谢。


问题答案:

基本上,您链接到的所有答案都是正确的。您必须记住它们分别引用哪个PDFBox版本。

_关于这个答案

在2.0.0之前的版本(直到当前的1.8.8之前)中,文本绘制操作非常有限,甚至不支持完整的WinAnsi编码,这些版本生成的字体对象用作编码。

_关于这个答案
当前的2.0.0-SNAPSHOT开发状态已大大改善。这意味着已消除了文本绘制操作的限制,它们对文本进行了正确的编码,并且对使用的字体进行了正确的编码和嵌入。同时,这些改进的早期实现中的错误大部分已得到修复。

_关于这个答案

无论使用哪种PDFBox版本,此答案都指向一个需要牢记的地方:特定字体不一定支持代码点的整个Unicode范围。如果您使用的字体不包含字符的字形定义,则您可以随意编码,字符将无法正确绘制。这尤其涉及每个PDF查看器都必须支持的14种标准字体:它们仅需要支持几种拉丁风格编码的字符,而无需支持完整的Unicode集。



 类似资料:
  • 我正在使用pdfbox 2.0.5使用以下代码填写PDF文档的表单字段: 我得到这个错误:U+0434('AFII10069')在此字体Times-Roman(泛型:TimesNewRomanPSMT)编码:StandardEncoding with Difference中不可用 我必须在文本字段中指定哪种字体来处理西里尔(或亚洲)字符? 谢谢,罗波

  • 我有一个包含的数据流,看起来像。我想解析这些字符串并使用Apache Beam写入BigQuery表,但在写入重复字符串时出现错误。 以下是如何将字符串转换为: 下面是我的BigQuery模式的样子: 我已经设法使用Python为BigQuery表编写了一个类似的重复字符串,但无法使用Apache Beam来完成。我想我没有在中保存正确的键值对。我现在得到的错误是: 我需要关于如何保存一个类似的重

  • 对于以下字符串,大小输出不正确。为什么会这样?我该如何解决? 我试着逐字符遍历str,这样我就可以把它读入向量

  • 我有几个输出侦听器正在实现。它可以是写到stdout或文件的,也可以是写到内存或任何其他输出目标;因此,我在方法中指定作为(an)参数。 现在,我收到了。在这里向流写入的最佳方式是什么? 我应该只使用吗?我可以给它字节,但如果目标流是字符流,那么它会自动转换吗? 我需要用这里的一些桥流来代替吗?

  • 问题内容: 我有几个正在实现OutputStream的输出侦听器。它可以是写到stdout或文件的PrintStream,也可以写到内存或任何其他输出目标。因此,我在方法中将OutputStream指定为参数。 现在,我已经收到了字符串。在此处写入流的最佳方法是什么? 我应该只使用Writer.write(message.getBytes())吗?我可以给它提供字节,但是如果目标流是字符流,那么它

  • wef:使用apache poi写入xlsm(Excel 2007) 当我向文件中写入一个简单的字符串时,我无法打开该文件。错误-“Excel无法打开文件“Test1.xlsm”,因为文件格式或文件扩展名无效”