PDF图像展平

时间:2015-04-07 22:16:52

标签: itextsharp itext

我试图压缩PDF文档中的位图图像,而不是保留单独的图层。例如,假设我有一个文档,其中两个方形图像彼此部分重叠。我想合并它们,以便用户无法单独选择其中一个方块将其复制出文档。我想,他们将能够选择两者,但我不希望他们能够孤立其中一个。我的客户有一个更复杂的理由想要这个限制,但这是最简单的解释。我想用iTextSharp来解决这个问题,但另一种产品对我没问题。我使用iTextSharp进行表格展平,但我无法弄清楚如何展平图像。谢谢。

修改

我意识到另一个解决方案可能只是阻止文档中的选择,这有望防止复制和粘贴。我猜想所有文档读者都不必遵守我的命令来阻止选择,但只要Adobe Reader(也许是福昕阅读器)确实遵守它,那就应该足够了。

1 个答案:

答案 0 :(得分:0)

正如您所说,您可以使用其他产品,我将展示使用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

Procesed: 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