delphi - acrobat 如何对作为便笺添加到 pdf 的注释进行编码?

标签 delphi delphi-2009 acrobat

多年来,我们一直在通过应用程序中的 activex 控件读取和写入 pdf 便笺/注释/注释。我们最近升级到了支持 Unicode 的 Delphi2009。以下内容引起了问题。

当我们打电话时

CAcroPDAnnot.GetContents

结果似乎相当奇怪,我们丢失了 Unicode 字符。它不像保存为 ansi 字符串,通常会导致返回 ??????相反,我们得到一个字符串,例如

‚És‚‚ú‚É•—Ž×‚ð‚Ђ‚‚½‚ç

对于日语字符的字符串。

但是,如果我通过 pdf 本身的菜单将 pdf 中的注释保存到数据文件中,则会将其写入文件,如

0kˆL0Oeå0k~ª0’0r0D0_0‰

后者可以导出并重新导入到 acrobat pdf 中,并将重新创建正确的 unicode 字符。但是,一旦我在代码中调用 CAcroPDAnnot.GetContents,它就会以其他形式返回。

  1. CAcroPDAnnot.GetContents 是否损坏?
  2. 有我应该注意的编码方案吗?
  3. 我可以做其他选择吗?

谢谢

最佳答案

‚És‚­“ú‚É•—Ž×‚ð‚Ђ¢‚½‚ç

这就是字符串:

に行く日に风邪をひいたら

采用 CP-932 又名 Shift-JIS 编码,这是一种糟糕但遗憾的是在日本仍然流行的编码。

您当前将其解释为 CP-1252(Windows 西欧)。如果您的 PDF 阅读组件无法自动转换,您需要找到一种方法来检测文档的编码并手动转换。

我不知道Delphi提供了哪些读取编码的方法,但是您是否通过“控制面板”->“区域选项”->“安装东亚语言文件”选项在Windows中安装了Shift-JIS的编码?如果没有,这也许可以解释为什么它无法自动转换。

关于delphi - acrobat 如何对作为便笺添加到 pdf 的注释进行编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/375321/

相关文章:

sql - Delphi ClientDataSet 通过改变 IndexName 进行排序

regex - 组件 Tperlregex fatal error L3169?

email - 检查电子邮件是否已发送 -- Delphi Indy10

Delphi 2009 处理 with

javascript - 用于恢复损坏的 pdf 表单内容的脚本

windows - 如何停止在任务栏上显示我的应用程序?

delphi - Delphi 2010 中 HTTPSend 的突触和字符串问题

Delphi:如何从调试器中排除单元?

java - 如何自动将pdf表单域导出到xml

javascript - adobe acrobat 中模糊搜索字段