【问题标题】:iTextSharp: Regenerate PDF file traileriTextSharp:重新生成 PDF 文件预告片
【发布时间】:2012-04-22 07:54:16
【问题描述】:

在 XX 场景中,我们优化并在一些源 pdf 文件中添加文本框和内容,然后将其保存以供我们的客户从我们的 asp.net 网站自动填写。

最近我遇到了一个写作问题,如下所示,

尝试使用 itextsharp 打开和写入 pdf 文件时出现“未找到预告片”io 异常。经过进一步调查,我意识到 PDF 源文件本身在结尾附近没有任何预告片。

我的问题是,有没有办法重新生成预告片?还是一个免费的工具来修复重新创建预告片的 pdf?我尝试了一些在线工具,但没有帮助。

【问题讨论】:

    标签: .net pdf-generation itextsharp


    【解决方案1】:

    使用 pdftk 修复它。与 ghostscript 不同,它保留了表单字段并很好地重建了预告片。

    pdftk.exe coorruptedfile.pdf 输出fixedfile.pdf

    像魅力一样工作

    【讨论】:

    • +1 当我收到来自 JSON 的二进制流时发现这很有用,该 JSON 没有 PDF 的预告片并且正在使用 PDFSharp nuget。
    【解决方案2】:

    如果您的文件可以被 Acrobat Reader 或 Professional 打开,那么您可以使用这些工具来更正您的文件。

    Adobe 工具重建损坏的文件并提供重新保存它们。

    此外,一些 PDF 库也可以做到这一点。

    【讨论】:

    • Acrobat reader 9 没有任何修复选项。我可以使用 ghost 脚本修复文件,但问题是它会清除所有表单字段。想法?
    • @user446923 当您尝试关闭带有损坏 PDF 的窗口时,读者应该询问您是否要保存文件。您是否看到此类文件提示?除此之外没有其他维修选项。我的意思是没有维修菜单之类的。
    • 啊,是的,我试过了 + 我还尝试使用另存为重新保存文档,因为我在某处读到 Acrobat 然后合并了很多东西并修复了元数据和东西。但我没有运气。当我在 Notepad++ 中打开文件时,它仍然缺少预告片。 Ghost 脚本正在生成预告片,但正在清除表单字段,所以最后我最终使用了 pdftk 并且它起作用了。感谢您的提示,尽管它帮助我努力思考。
    • @user446923 您确定 Acrobat 保存您的文件时没有交叉引用流(PDF 1.5 和更高版本的功能)?如果文件包含这样的流,那么预告片信息将被放入流字典部分(有信息,但没有经典的预告片字典)。
    猜你喜欢
    • 2016-01-25
    • 1970-01-01
    • 1970-01-01
    • 2011-07-27
    • 1970-01-01
    • 1970-01-01
    • 2011-03-24
    • 2017-01-24
    • 2013-06-23
    相关资源
    最近更新 更多