WinForms控件中的嵌入式PDF查看器

时间:2009-06-10 19:25:08

标签: .net winforms pdf

我正在尝试在WinForms控件中嵌入一个pdf查看器,以便我可以在应用程序的上下文中向用户显示pdf。我还需要阻止用户复制文本,打印或保存副本(敏感数据)。

到目前为止,我已尝试使用WebBrowser来托管Acrobat Reader activex控件。这让我接近但是给我留下了两个问题 1.我打开的任何pdf似乎都从文件句柄的角度保持打开状态,直到应用程序关闭。我试过调用Dispose()和Navigate()无济于事 2.我需要在Reader中禁用工具栏。我无法在原始pdf文件中设置查看器首选项,但我正在考虑使用iText重写具有首选项设置的文件(如果我可以这样做)。

我也很高兴推荐一个推荐的第三方图书馆。

2 个答案:

答案 0 :(得分:2)

Re:1。有点糟糕,但你可以将PDF副本复制到临时文件夹

Path.GetTempPath()

并打开每次用户需要查看该PDF时,让读者锁定该文件。

回复:2。您是否尝试追加

toolbar=0

到网址? Ref(和示例!)at:

请参阅http://partners.adobe.com/public/developer/en/acrobat/PDFOpenParameters.pdf#toolbar=0

答案 1 :(得分:0)

您可以使用iText重写文件。我有一个由外部应用程序创建的PDF,我需要通过电子邮件发送给客户。我使用iText加密它们并更改权限:

导入iTextSharp.text.pdf ....

Dim reader As PdfReader = New PdfReader(fileName)
PdfEncryptor.Encrypt(reader, New FileStream(mailFileName, FileMode.CreateNew), PdfWriter.STRENGTH128BITS, _
    "password", "password", PdfWriter.AllowCopy Or PdfWriter.ALLOW_PRINTING)