【问题标题】:PDF Image FlatteningPDF 图像拼合
【发布时间】:2015-04-07 22:16:51
【问题描述】:

我正在尝试将 PDF 文档中的位图图像展平,而不是保留单独的图层。例如,假设我有一个包含两个部分相互重叠的方形图像的文档。我想合并它们,以便用户无法单独选择其中一个方块将其复制到文档中。我想他们将能够同时选择两者,但我不希望他们能够隔离其中之一。我的客户想要这个限制有一个更复杂的原因,但这是最简单的解释。我想用 iTextSharp 解决这个问题,但我可以用另一种产品。我使用 iTextSharp 进行表单展平,但我不知道如何展平图像。谢谢。

编辑

我意识到另一种解决方案可能只是阻止在文档中进行选择,这有望阻止复制和粘贴。我想所有文档阅读器都不必遵守我的命令来阻止选择,但只要 Adob​​e Reader(可能还有 Foxit Reader)遵守它,就足够了。

【问题讨论】:

  • 你在说什么类型的图片?位图图像?矢量图像?还是一些注释外观?
  • @mkl,位图。我刚刚更新了这个问题。谢谢。
  • 嗯,考虑到不同的色彩空间、有趣的混合选项、透明度等,一般情况可能并不简单。您对一般情况感兴趣还是只对更简单的情况感兴趣? AFAIK 这种“图像扁平化”在 PDF 库中并不常见。
  • @mkl,实际情况涉及混合多种类型的图像以及文本、注释、表单字段和其他任何内容。我只是想从简单的事情开始。
  • @mkl,请看我的编辑。谢谢。

标签: itextsharp itext


【解决方案1】:

正如你所说你可以使用其他产品,我将展示一种使用 ABCpdf 合并图层的方法

    Dim oDoc As New WebSupergoo.ABCpdf7.Doc
    Using oDoc
        oDoc.Read("D:\example.pdf")

        Dim iTotal As Integer = oDoc.PageCount()
        For i As Integer = 1 To iTotal
            oDoc.PageNumber = 1
            oDoc.Rendering.Save("D:\" & i & ".JPG")
            oDoc.Delete(oDoc.Page)
        Next
        For i As Integer = 1 To iTotal
            oDoc.AddPage()
            oDoc.AddImage("D:\" & i & ".JPG")
            oDoc.Flatten()
        Next
        oDoc.Save("D:\example_abc.pdf")
    End Using

原文: https://encodable.com/cgi-bin/filechucker.cgi?action=landing&path=/SOabcpdf/&file=example.pdf

已处理: https://encodable.com/cgi-bin/filechucker.cgi?action=landing&path=/SOabcpdf/&file=example_abc.pdf

你必须改变质量,阅读 ABCpdf 帮助。 http://www.websupergoo.com/helppdfnet/source/4-examples/19-rendering.htm

编辑: 由于您不仅想要合并图像,还想要复制保护,所以 ABcPDF 有这个:

  Dim oDoc As New WebSupergoo.ABCpdf7.Doc
    Using oDoc
        oDoc.Read("D:\example.pdf")

        oDoc.Encryption.Type = 2
        oDoc.Encryption.CanCopy = False
        oDoc.Encryption.OwnerPassword = "password"

        oDoc.Save("D:\example_abc.pdf")
    End Using

【讨论】:

  • 您的 PDF 链接导致404 - page not found for http://encodable.com/uploaddemo/files/SOabcpdf/example.pdf Referring page: https://encodable.com/cgi-bin/filechucker.cgi?action=landing&path=/SOabcpdf/&file=example.pdf ...
  • 据说您基本上似乎将整个页面绘制为 JPEG 图像,然后将其替换为仅包含该 JPEG 的新页面。这并不是 OP 真正要求的。此外,质量要么很糟糕,要么文件很大。
  • 我告诉过你,你可以提高质量。 websupergoo.com/helppdfnet/source/4-examples/19-rendering.htm不管怎样,我用一种独特的方式编辑
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-16
  • 2010-10-02
  • 1970-01-01
相关资源
最近更新 更多