セキュリティ設定(パスワードや印刷禁止など)付きのPDFを作成できますか?

文書番号 : 37882     文書種別 : 技術情報     登録日 : 2015/04/10     最終更新日 : 2015/04/10
文書を印刷する
対象製品
ActiveReports for .NET 9.0J
詳細
エクスポートするPDFに対して、パスワードや128ビット暗号化、印刷や編集などの許可属性を設定することが可能です。その時に使用するプロパティは、以下の通りです。
  • 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としてエクスポートする場合、以下のようなコードになります。
  1. エクスポートフィルタを使用する場合
  2. 描画拡張機能を使用する場合(ページレポート・RDLレポート限定)


エクスポートフィルタを使用する場合

◆サンプルコード(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")

◆サンプルコード(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");



描画拡張機能を使用する場合

◆サンプルコード(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)

◆サンプルコード(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);
関連情報
キーワード
機能・仕様 エクスポート