使用PDFSharp更改PDF文档的设置

时间:2016-07-13 13:37:12

标签: vb.net pdf pdfsharp

我想要做的是向用户发送PDF文档,并限制他除了在文档中滚动和缩放之外做任何其他事情。特别是应禁用打印选项。我尝试使用以下VB.NET代码,创建一个新的PDF文件:

Imports PdfSharp.Drawing
Dim document As New PdfSharp.Pdf.PdfDocument

    document.Info.Title = "Built with PDFSharp"
    document.Info.CreationDate = Now
    document.Info.Subject = "PDFSharp Test"

    Dim page As PdfSharp.Pdf.PdfPage = document.AddPage

    Dim gfx As XGraphics = XGraphics.FromPdfPage(page)
    Dim font As PdfSharp.Drawing.XFont = New PdfSharp.Drawing.XFont("Verdana", 20, PdfSharp.Drawing.XFontStyle.Bold)
    gfx.DrawString("Hello, World!", font, XBrushes.Black, New XRect(0, 0, page.Width, page.Height), XStringFormats.Center)

    document.SecuritySettings.PermitFullQualityPrint = False
    document.SecuritySettings.PermitPrint = False
    document.SecuritySettings.PermitAccessibilityExtractContent = False
    document.SecuritySettings.PermitAnnotations = False
    document.SecuritySettings.PermitAssembleDocument = False
    document.SecuritySettings.PermitExtractContent = False
    document.SecuritySettings.PermitFormsFill = False
    document.SecuritySettings.PermitModifyDocument = False

    ' Save the file
    Dim filename As String = "HelloWorld.pdf"
    document.Save(filename)

但是当打开PDF文档时,仍然可以打印和执行其他操作,就像在普通的PDF文档中一样。我错过了解 securitySettings 吗?我用adobe acrobot查看PDF文档。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:0)

您没有设置所有者密码,因此任何人都可以在没有密码的情况下做任何事情。

设置所有者密码,Adobe Reader应阻止打印等。

另见:
http://pdfsharp.net/wiki/ProtectDocument-sample.ashx

如果您希望人们无需输入密码就能查看文档,请不要设置用户密码。

答案 1 :(得分:-1)

我知道这有点晚了,但这对我解决了这个问题:

如果您设置了所有者密码,但没有设置用户密码,那么每个人都可以使用Adobe Reader打开文档而无需输入密码。 但是需要密码才能在Adobe Acrobat中进行更改。 观看它,但不要修改它。 参考http://forum.pdfsharp.de/viewtopic.php?f=2&t=1777