使用 AcroForm 技术提交 PDF 表单时的数据编码

2024-01-08

当我创建包含 AcroForm 格式(PDF 词典,无 XFA)文本字段的 PDF 表单(例如使用 Acrobat)并将数据提交到服务器时,如何指定/检索将使用的编码?

例如。当我提交中文字形“测试”(测试)时,我在服务器端收到以下标题和内容:

accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
content-type: application/x-www-form-urlencoded
content-length: 23
acrobat-version: 10.1.4
user-agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MDDC; .NET4.0C; AskTbCLA/5.15.1.22229)
accept-encoding: gzip, deflate
connection: Keep-Alive
Song=%b2%e2%ca%d4&Test=

除了 x-www-form-urlencoded 之外,没有提及任何编码。这两个字形表示为四个字节:B2 E2 CA D4。经过一番调查,我知道 B2E2 是第一个字形的 GBK 值,CAD4 是第二个字形的 GBK 值,但我无法从请求标头中得出这一点。

总是GBK吗?我想通过在 PDF 的字典中设置特定键来更改数据编码,但似乎没有。例如:我想确保 PDF 始终发送 Unicode 字符而不是 GBK。

请注意,我已经尝试过更改文本字段的默认字体(和编码)。我还在 ISO-32000-1 中搜索了字段中的编码,但我发现的只是一种为复选框定义非拉丁字符的方法,以及有关 FDF 文件编码的一些信息。这些都没有回答我的问题。


我自己刚刚找到了主要问题的答案。我在 ISO-32000-1 或 ISO-32000-2 草案中没有找到任何内容,但在研究 Acrobat JavaScript 参考资料时,我发现了cCharset可用的参数submitForm()方法。该参数定义:

提交值的编码。字符串值是utf-8, utf-16、Shift-JIS、BigFive、GBK 和 UHC。如果没有通过,则当前 Acrobat 行为适用。对于基于 XML 的格式,使用 utf-8。为了 对于其他格式,Acrobat 会尝试为该格式找到最佳的主机编码 正在提交的值。 XFDF 提交忽略该值并且始终 使用utf-8。

换句话说:在我的例子中,使用 GBK 是因为它最适合提交汉字。然而,可以通过使用以下命令强制使用 UTF-8:submitForm()JavaScript 方法使用适当的值。

基于这个问题,我已经要求ISO委员会在ISO-32000-2中修复这个问题。 结果,一个额外的可能条目被添加到表中,标题为特定于提交表单操作的附加条目在第 12.7.6.2 节中:

CharSet: string

(可选;可继承)可能的值包括:utf-8, utf-16, Shift-JIS, BigFive, GBK, or UHC.

从PDF 2.0开始,这个问题将不再存在。

Update:我的建议是 ISO 32000-2(又名 PDF 2.0):

The CharSetISO 32000-1 中不存在密钥;它是在 ISO 32000-2 中引入的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 AcroForm 技术提交 PDF 表单时的数据编码 的相关文章

  • 将元数据添加到 PDF

    我需要将元数据添加到我正在创建的 PDF 中prawn http rubygems org gems prawn 该元数据稍后可能会被提取 pdf阅读器 http rubygems org gems pdf reader 该元数据将包含内部
  • 获取 pdf 第 1 页(共 2 页)的图像

    我正在使用 html2canvas 和 jsPDF 以及 Angular4 创建图像 我想将此图像放置在 2 页生成的 pdf 的第 1 页上 但似乎这条线 doc save test pdf 需要在函数内部htm2canvas 因为如果我
  • PDF:在现有 PDF 文件中插入一行文本

    我有一个 PDF 文件 我希望在所有页面 前两页除外 的页脚上添加一行纯文本 不是徽标或类似内容 有谁有一个如何做到这一点的例子 用任何语言 Update 原始 PDF 是用 Scribus 制作的 我可以完全控制它 因此 如果更容易进行查
  • 在 iOS 上将 SwiftUI 视图转换为 PDF

    我用 SwiftUI 画了一些漂亮的图表 因为它非常简单且容易做 然后我想将整个 SwiftUI 视图导出为 PDF 以便其他人可以以良好的方式查看图表 SwiftUI 没有直接为此提供解决方案 Cheers Alex 经过一番思考 我想到
  • 如何使用 PDFMiner 获取 PDF 中文本的位置? [复制]

    这个问题在这里已经有答案了 PDFMiner 的文档说 PDFMiner 允许获取页面中文本的确切位置 但是 我一直无法找到如何做到这一点 PDFMiner 的 文档 相当稀疏 所以我不明白如何做到这一点 您正在寻找bbox每个布局对象上的
  • 使用 /CCITTFaxDecode 过滤器从 PDF 中提取图像

    我有一个通过扫描软件生成的 pdf 文件 该 pdf 每页有 1 个 TIFF 图像 我想从每个页面中提取 TIFF 图像 我正在使用 iTextSharp 我已经成功找到了图像 并且可以从PdfReader GetStreamBytesR
  • 从 .docx 转换为 pdf 时,图像显示效果不佳

    我转换了 docx文件至 pdf文件中 文本转换得很好 但是图像 docx文件没有出现 而是表示为一些特殊字符 下面是我的代码 import com lowagie text Document import com lowagie text
  • 合并两个 Jasper 报告

    我有一个带有下拉菜单的网络应用程序 用户可以从中选择报告可视化的类型 报告 1 报告 2 报告 3 等 根据所选的报告 Jasper 报告将在服务器上编译并以 PDF 格式的弹出窗口打开 在服务器端 我使用下面的代码以单独的方法实现每个报告
  • 如何将 pdf 文档显示到 Webview 中?

    我想在 webview 上显示 pdf 内容 这是我的代码 WebView webview new WebView this setContentView webview webview getSettings setJavaScriptE
  • 从输出流合并 PDF

    我有两个 PDF 文件 每个文件都在一个ByteArrayOutputStream 我想合并两个 PDF 并且想使用 iText 但我不明白如何制作它 因为它只使用 InputStream 谁能帮我 The ByteArrayOutputS
  • Apache PDFBox:将最后一页移动到首页

    我正在使用 Apache PDFBox 编写一个简单的 Java 应用程序 我有几个 PDF 其中最后一页是前几页内容的索引 我需要索引 最后一页 成为PDF文件的第一页 是否可以 我还发现了http itextpdf com http i
  • 显示来自 weburl iphone sdk 的 pdf

    我正在开发一个项目 我想显示网站上的 pdf 我有 pdf 的 url 知道如何做到这一点 我还想创建网站上 pdf 的缩略图 您可以在您的设备中显示 pdf 文件 直接将 url 传递给 UIWebView UIWebView webVi
  • WPF 网络浏览器在 Adob​​e 阅读器窗口中打开 PDF 文件

    我正在创建一个 32 位 WPF 应用程序 它需要在 WebBrowser 控件中显示创建的 PDF 在做的同时 WebBrowser Navigate new Url D TestPDF MyDocument pdf 它在 Adob e
  • 如何使用 iTextSharp 从 PDF 中提取突出显示的文本?

    根据以下帖子 iTextSharp PDF 使用 C 读取突出显示的文本 突出显示注释 https stackoverflow com questions 23342500 itextsharp pdf reading highlighed
  • TCPDF UTF-8 符号未显示

    我使用最新的 TCPDF 版本 5 9 但在编码方面遇到一些奇怪的问题 我需要立陶宛语语言符号 例如 但只能得到其中的一小部分 其他的还是这样 所以我该怎么做 我使用默认的 times 字体 它带有 TCPDF 下载 任何帮助 将不胜感激
  • 在 C# WinForms 中预览文档(Word、Excel、PDF、文本文件等)?

    我正在开发一个 C WinForms 应用程序 我希望能够 预览 其中的各种文档类型 也就是说 当用户从列表中选择文件名时 它会在下面以相同的形式显示所选文件的预览 这很像 Outlook 允许您无需双击即可预览选定邮件的方式 有没有什么方
  • 旋转 Markdown 的表格 pdf 输出

    我想将 pdf 上的表格输出旋转 90 度 我正在使用 Markdown 生成报告并kable循环显示表格 如果可以的话我想继续使用kable因为还有很多其他依赖于它的东西我没有包含在这个 MWE 中 这是一个简单的例子 使用iris数据集
  • 如何从 R 读取 PDF 元数据

    我们很好奇 有没有一种方法可以从 R 读取 PDF 元数据 例如下面显示的信息 通过搜索我对此无能为力 r pdf metadata在当前的问题库中 非常欢迎任何指点 我想不出纯 R 的方法来执行此操作 但您可能可以安装您最喜欢的 PDF
  • 使用 webkit 转换 Html 到 PDF

    从 Html 生成 PDF 时 webkit 转换不起作用 我需要将 div 旋转 45 度 使用 webkit 变换后 它在屏幕上看起来没问题 但使用 winnovatives Html 到 PDF 转换器时 输出是平坦的而不是旋转的 有
  • 如何将pdf页面设置设置为打印属性对话框?

    大家好 我想知道如何设置 pdf 页面设置到打印属性对话框 例如 如果我的 PDF 页面设置为横向 则布局会自动显示横向而不是纵向 如果我的 PDF 页面设置为纵向 则布局会自动显示纵向 我在这个主题上做了很多研发 但没有找到任何满意的链接

随机推荐