我在使用 iText 时遇到了一个奇怪的问题。我有一个包含几个字段的文档。在我的服务器上,我打开本地文档,设置字段并将压模的输出发送到浏览器。
在我的本地开发机器上完美运行。
服务器上生成的 pdf 缺少 PDF 内容。我只看到我设置的字段的内容,其余的都是空白的。
有小费吗?
您在本地计算机上的应用程序尊重您用作模板的 PDF 的字节数。您在服务器上的应用程序不尊重这些字节。也许您使用错误的编码复制了模板,导致所有二进制字符都损坏了。或者,您的应用程序可能正在使用错误的编码读取模板并获得相同的结果。
您可以通过在文本编辑器(而不是 PDF 查看器)中打开您的 PDF 文件来查找。查找关键字stream
并检查该关键字后面的字节。你看得到差别吗?在本地计算机上生成的 PDF 中,字节看起来像普通的二进制流。在您的服务器上生成的 PDF 中,字节看起来很尴尬。例如:它由大量问号组成。
如何解决:检查模板是否复制正确。如果是这样,请检查您阅读文档的方式。例如:在不使用 iText 的情况下将 PDF 模板读入字节数组并将其写入新的字节数组。你能重现腐败的过程吗?如果是这样,请调整您的应用程序(不涉及 iText 的应用程序),直到您获得正确的编码。