[英]how to set password to pdf file while exporting from crystal report in vb.net programatically?
我编写了一个代码,用于创建从VB.NET 2005中的Crystal Reports导出的pdf文件。所有代码工作正常,PDF文件也可以创建,但我想以编程方式为该PDF文件设置密码。 有什么解决方案吗?
下面是我从Crystal Reports导出时创建PDF文件的代码
Dim CrExportOptions As ExportOptions
Dim CrDiskFileDestinationOptions As New DiskFileDestinationOptions()
Dim CrFormatTypeOptions As New PdfRtfWordFormatOptions()
CrDiskFileDestinationOptions.DiskFileName = "D:\PDFFiles\" & fileName
CrFormatTypeOptions.FirstPageNumber = 1 ' Start Page in the Report
CrFormatTypeOptions.LastPageNumber = 10 ' End Page in the Report
CrFormatTypeOptions.UsePageRange = True
CrExportOptions = CrReport.ExportOptions
With CrExportOptions
.ExportDestinationType = ExportDestinationType.DiskFile
.ExportFormatType = ExportFormatType.PortableDocFormat
.DestinationOptions = CrDiskFileDestinationOptions
.FormatOptions = CrFormatTypeOptions
End With
CrReport.Export()
对于仍在寻找解决方案的人,我找到了一种在PdfSharp
的帮助下完成这项工作的方法。 您可以使用Nuget Package Manager将pdfsharp添加到项目中。 然后只需添加以下代码 -
System.IO.Stream st = CrReport.ExportToStream(ExportFormatType.PortableDocFormat);
PdfDocument document = PdfReader.Open(st);
PdfSecuritySettings securitySettings = document.SecuritySettings;
// Setting one of the passwords automatically sets the security level to
// PdfDocumentSecurityLevel.Encrypted128Bit.
securitySettings.UserPassword = "user";
securitySettings.OwnerPassword = "owner";
// Don´t use 40 bit encryption unless needed for compatibility reasons
//securitySettings.DocumentSecurityLevel = PdfDocumentSecurityLevel.Encrypted40Bit;
// Restrict some rights.
securitySettings.PermitAccessibilityExtractContent = false;
securitySettings.PermitAnnotations = false;
securitySettings.PermitAssembleDocument = false;
securitySettings.PermitExtractContent = false;
securitySettings.PermitFormsFill = true;
securitySettings.PermitFullQualityPrint = false;
securitySettings.PermitModifyDocument = true;
securitySettings.PermitPrint = false;
// Save the document...
document.Save(filename);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.