セキュリティ設定(パスワードや印刷禁止など)付きのPDFを作成できますか?
対象製品
ActiveReports for .NET 7.0J
詳細
エクスポートするPDFに対して、パスワードや128ビット暗号化、印刷や編集などの許可属性を設定することが可能です。その時に使用するプロパティは、以下の通りです。
たとえば、「印刷」と「フォームフィールドの入力または署名」のみ許可したPDFとしてエクスポートする場合、以下のようなコードになります。
◆サンプルコード(C#)
◆サンプルコード(C#)
- Encryptプロパティ
ドキュメントを暗号化するかどうかを決定します。下記のパスワードやユーザー許可を有効にする場合には、本プロパティをTrueに設定する必要があります。 - OwnerPasswordプロパティ
オーナーパスワードを設定します。ドキュメントを開く際に、このプロパティに設定したパスワードが入力された場合、Permissionsプロパティで指定したユーザー許可の設定内容にかかわらず、ドキュメントへのフルアクセスが許可されます。
なお、セキュリティ設定付きのPDFとしてエクスポートする場合、このOwnerPasswordプロパティは必ず設定してください。OwnerPasswordプロパティを設定しない場合、ActiveReportsがランダムにパスワードを設定するため、エクスポートしたPDFをAdobe Acrobatなどで開いても、セキュリティ設定を変更することができなくなります。 - UserPasswordプロパティ
ユーザーパスワードを設定します。ドキュメントを開くために、ユーザは本パスワードを入力する必要があります。このプロパティを設定しない場合、ドキュメントを開くときにパスワードを入力するダイアログは表示されません。
※ OwnerPasswordプロパティだけを設定しても、パスワードを入力するダイアログは表示されません。 - Use128Bitプロパティ
このプロパティをTrue(デフォルト)に設定すると、高水準の 128 ビット RC4 暗号方式を使用します。Falseに設定すると、低水準の 40 ビット RC4 暗号方式を使用します。
Permissionsプロパティで、AllowFillIn、AllowAccessibleReadersおよびAllowAssembly 許可を設定する場合、このプロパティをTrueに設定する必要があります。 - Permissionsプロパティ
ドキュメントのためのユーザ許可を設定します。以下の値は、OR演算を使用して、複数の設定を組み合わせることが可能です。(デフォルトはすべての属性を許可した状態です。)
設定する値 許可される属性 None(0) なし(すべての属性を許可しません) AllowPrint(4) 「印刷」 AllowModifyContents(8) 「文書の変更」と「文書アセンブリ」 AllowCopy(16) 「内容のコピーまたは抽出」 AllowModifyAnnotations(32) 「注釈とフォームフィールドの作成」と
「フォームフィールドの入力または署名」AllowFillIn(256) 「フォームフィールドの入力または署名」 AllowAccessibleReaders(512) 「アクセシビリティを有効にする」 AllowAssembly(1024) 「文書アセンブリ」
たとえば、「印刷」と「フォームフィールドの入力または署名」のみ許可したPDFとしてエクスポートする場合、以下のようなコードになります。
エクスポートフィルタを使用する場合
◆サンプルコード(VB.NET)' セクションレポートを生成します。
Dim rpt As New SectionReport1
rpt.Run(False)
Dim oPDF As New GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport
' セキュリティ設定を行います。
oPDF.Security.Encrypt = True
oPDF.Security.OwnerPassword = "Owner"
oPDF.Security.UserPassword = "User"
oPDF.Security.Permissions = _
GrapeCity.ActiveReports.Export.Pdf.Section.PdfPermissions.AllowPrint Or _
GrapeCity.ActiveReports.Export.Pdf.Section.PdfPermissions.AllowFillIn
' PDFにエクスポートします。
oPDF.Export(rpt.Document, "Sample.pdf")
Dim rpt As New SectionReport1
rpt.Run(False)
Dim oPDF As New GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport
' セキュリティ設定を行います。
oPDF.Security.Encrypt = True
oPDF.Security.OwnerPassword = "Owner"
oPDF.Security.UserPassword = "User"
oPDF.Security.Permissions = _
GrapeCity.ActiveReports.Export.Pdf.Section.PdfPermissions.AllowPrint Or _
GrapeCity.ActiveReports.Export.Pdf.Section.PdfPermissions.AllowFillIn
' PDFにエクスポートします。
oPDF.Export(rpt.Document, "Sample.pdf")
◆サンプルコード(C#)
// セクションレポートを生成します。
SectionReport1 rpt = new SectionReport1();
rpt.Run(false);
GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport oPDF
= new GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport();
// セキュリティ設定を行います。
oPDF.Security.Encrypt = true;
oPDF.Security.OwnerPassword = "Owner";
oPDF.Security.UserPassword = "User";
oPDF.Security.Permissions =
GrapeCity.ActiveReports.Export.Pdf.Section.PdfPermissions.AllowPrint |
GrapeCity.ActiveReports.Export.Pdf.Section.PdfPermissions.AllowFillIn;
// PDFにエクスポートします。
oPDF.Export(rpt.Document, "Sample.pdf");
SectionReport1 rpt = new SectionReport1();
rpt.Run(false);
GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport oPDF
= new GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport();
// セキュリティ設定を行います。
oPDF.Security.Encrypt = true;
oPDF.Security.OwnerPassword = "Owner";
oPDF.Security.UserPassword = "User";
oPDF.Security.Permissions =
GrapeCity.ActiveReports.Export.Pdf.Section.PdfPermissions.AllowPrint |
GrapeCity.ActiveReports.Export.Pdf.Section.PdfPermissions.AllowFillIn;
// PDFにエクスポートします。
oPDF.Export(rpt.Document, "Sample.pdf");
描画拡張機能を使用する場合
◆サンプルコード(VB.NET)' 描画するページレポートを指定します。
Dim file_name As String = Application.StartupPath + "¥PageReport1.rdlx"
Dim pageReport As New GrapeCity.ActiveReports.PageReport(New System.IO.FileInfo(file_name))
Dim pageDocument As New GrapeCity.ActiveReports.Document.PageDocument(pageReport)
' 出力レポートを描画するファイル形式を設定します。
Dim exportFile As String = Application.StartupPath + "¥Sample.pdf"
Dim myFile As New System.IO.FileInfo(exportFile)
' 描画するファイル形式の設定を行います。
Dim settings As New GrapeCity.ActiveReports.Export.Pdf.Page.Settings()
' (セキュリティ設定を行います。)
settings.Encrypt = True
settings.OwnerPassword = "Owner"
settings.UserPassword = "User"
settings.Permissions = _
GrapeCity.ActiveReports.Export.Pdf.Page.PdfPermissions.AllowPrint Or _
GrapeCity.ActiveReports.Export.Pdf.Page.PdfPermissions.AllowFillIn
' 描画拡張機能を設定し、レポートを描画します。
Dim _renderingExtension As New GrapeCity.ActiveReports.Export.Pdf.Page.PdfRenderingExtension()
Dim _provider As New GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider _
(myFile.Directory, System.IO.Path.GetFileNameWithoutExtension(myFile.Name))
pageDocument.Render(_renderingExtension, _provider, settings)
System.Diagnostics.Process.Start(exportFile)
Dim file_name As String = Application.StartupPath + "¥PageReport1.rdlx"
Dim pageReport As New GrapeCity.ActiveReports.PageReport(New System.IO.FileInfo(file_name))
Dim pageDocument As New GrapeCity.ActiveReports.Document.PageDocument(pageReport)
' 出力レポートを描画するファイル形式を設定します。
Dim exportFile As String = Application.StartupPath + "¥Sample.pdf"
Dim myFile As New System.IO.FileInfo(exportFile)
' 描画するファイル形式の設定を行います。
Dim settings As New GrapeCity.ActiveReports.Export.Pdf.Page.Settings()
' (セキュリティ設定を行います。)
settings.Encrypt = True
settings.OwnerPassword = "Owner"
settings.UserPassword = "User"
settings.Permissions = _
GrapeCity.ActiveReports.Export.Pdf.Page.PdfPermissions.AllowPrint Or _
GrapeCity.ActiveReports.Export.Pdf.Page.PdfPermissions.AllowFillIn
' 描画拡張機能を設定し、レポートを描画します。
Dim _renderingExtension As New GrapeCity.ActiveReports.Export.Pdf.Page.PdfRenderingExtension()
Dim _provider As New GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider _
(myFile.Directory, System.IO.Path.GetFileNameWithoutExtension(myFile.Name))
pageDocument.Render(_renderingExtension, _provider, settings)
System.Diagnostics.Process.Start(exportFile)
◆サンプルコード(C#)
// 描画するページレポートを指定します。
string file_name = Application.StartupPath + @"¥PageReport1.rdlx";
GrapeCity.ActiveReports.PageReport pageReport
= new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(file_name));
GrapeCity.ActiveReports.Document.PageDocument pageDocument
= new GrapeCity.ActiveReports.Document.PageDocument(pageReport);
// 出力レポートを描画するファイル形式を設定します。
string exportFile = Application.StartupPath + @"¥Sample.pdf";
System.IO.FileInfo myFile = new System.IO.FileInfo(exportFile);
// 描画するファイル形式の設定を行います。
GrapeCity.ActiveReports.Export.Pdf.Page.Settings settings
= new GrapeCity.ActiveReports.Export.Pdf.Page.Settings();
// (セキュリティ設定を行います。)
settings.Encrypt = true;
settings.OwnerPassword = "Owner";
settings.UserPassword = "User";
settings.Permissions =
GrapeCity.ActiveReports.Export.Pdf.Page.PdfPermissions.AllowPrint |
GrapeCity.ActiveReports.Export.Pdf.Page.PdfPermissions.AllowFillIn;
// 描画拡張機能を設定し、レポートを描画します。
GrapeCity.ActiveReports.Export.Pdf.Page.PdfRenderingExtension _renderingExtension
= new GrapeCity.ActiveReports.Export.Pdf.Page.PdfRenderingExtension();
GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider _provider
= new GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider
(myFile.Directory, System.IO.Path.GetFileNameWithoutExtension(myFile.Name));
pageDocument.Render(_renderingExtension, _provider, settings);
string file_name = Application.StartupPath + @"¥PageReport1.rdlx";
GrapeCity.ActiveReports.PageReport pageReport
= new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(file_name));
GrapeCity.ActiveReports.Document.PageDocument pageDocument
= new GrapeCity.ActiveReports.Document.PageDocument(pageReport);
// 出力レポートを描画するファイル形式を設定します。
string exportFile = Application.StartupPath + @"¥Sample.pdf";
System.IO.FileInfo myFile = new System.IO.FileInfo(exportFile);
// 描画するファイル形式の設定を行います。
GrapeCity.ActiveReports.Export.Pdf.Page.Settings settings
= new GrapeCity.ActiveReports.Export.Pdf.Page.Settings();
// (セキュリティ設定を行います。)
settings.Encrypt = true;
settings.OwnerPassword = "Owner";
settings.UserPassword = "User";
settings.Permissions =
GrapeCity.ActiveReports.Export.Pdf.Page.PdfPermissions.AllowPrint |
GrapeCity.ActiveReports.Export.Pdf.Page.PdfPermissions.AllowFillIn;
// 描画拡張機能を設定し、レポートを描画します。
GrapeCity.ActiveReports.Export.Pdf.Page.PdfRenderingExtension _renderingExtension
= new GrapeCity.ActiveReports.Export.Pdf.Page.PdfRenderingExtension();
GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider _provider
= new GrapeCity.ActiveReports.Rendering.IO.FileStreamProvider
(myFile.Directory, System.IO.Path.GetFileNameWithoutExtension(myFile.Name));
pageDocument.Render(_renderingExtension, _provider, settings);
関連情報
キーワード
機能・仕様 エクスポート