我试图压缩PDF文档中的位图图像,而不是保留单独的图层。例如,假设我有一个文档,其中两个方形图像彼此部分重叠。我想合并它们,以便用户无法单独选择其中一个方块将其复制出文档。我想,他们将能够选择两者,但我不希望他们能够孤立其中一个。我的客户有一个更复杂的理由想要这个限制,但这是最简单的解释。我想用iTextSharp来解决这个问题,但另一种产品对我没问题。我使用iTextSharp进行表格展平,但我无法弄清楚如何展平图像。谢谢。
修改
我意识到另一个解决方案可能只是阻止文档中的选择,这有望防止复制和粘贴。我猜想所有文档读者都不必遵守我的命令来阻止选择,但只要Adobe Reader(也许是福昕阅读器)确实遵守它,那就应该足够了。
答案 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