【发布时间】:2016-04-08 16:25:21
【问题描述】:
所以我有一个 PDF,它是通过打开模板、修改某些字段的值、然后保存来动态创建的。
作品:
- 如果我在 Chrome 中打开文件,我的值是正确的。
- 如果我将文件保存到磁盘并使用 Adobe Reader DC(或其他任何名称)打开它,我会得到正确的值。
不起作用:
- 当我在 IE 10 中打开文档时,它会在 Edge 中打开,并显示字段的“默认”值。
- 当我将文件保存到磁盘并使用 IE 打开时,它显示“默认”值。
- 当我使用“PDF 阅读器 - 文档查看器和管理器”打开文件时,它会显示“默认”值。
我使用的是 Windows 10,我正在处理的应用程序是在 ASP.Net 中完成的。无论我返回 FileStreamResult、FilePathResult 还是 File,它的工作方式都是一样的。
我现在很确定问题出在微软的产品上,而不是我的代码上。
知道为什么 Microsoft 产品无法正确打开我的 PDF 文件吗?是否必须以某种特定方式或其他方式将它们展平?
编辑(在 cmets 中要求提供更多信息):
- 文档是使用 PdfSharp 创建的。
- 它们具有动态替换为值的字段(即 [MyFieldA] 替换为“ActualValueA”)。
- 一旦将合并字段替换为实际值,将使用
File.WriteAllText(fileName,fileText);写入文件,其中通过File.ReadAllText(fileTemplateName);获取fileText
【问题讨论】:
-
您必须提供有关如何创建文档以及如何填充 IE 下似乎缺少的数据的更多详细信息。
-
@WiktorZychla 我在帖子底部添加了更多信息。我是第一次深入研究文档创建过程,并会在我找到信息时不断更新。一位同事提出的一个理论是文档模板是在 Acrobat 5 中创建的,而 IE10/Edge 无法充分处理,因为另一位同事对在 Acrobat 6 中创建的模板(与 IE10 兼容)有问题/边缘)。
-
请分享一个示例 PDF 来说明问题以供分析。
-
由于保密协议,我不能这样做。不过我会给出一段 pdf 的屏幕截图
-
@mkl - 我添加了差异的 sn-p。这与使用不同程序打开时显示的完全相同的文件中的完全相同的位置。
标签: asp.net internet-explorer pdf microsoft-edge