ブラウザ上に表示されたPDFを、クライアント環境に保存させない方法はありますか?
対象製品
ActiveReports for .NET 6.0J Professional
詳細
ブラウザやAdobe Reader上に表示された時点で、PDFはファイルとしてクライアント環境に保存されていることになります。この動作を防ぐことはできません。
クライアント環境に「保存させにくく」する手段としては、Adobe Reader上のツールバーを非表示にし、「文書のコピーを保存」ボタンからの保存を抑制する方法が考えられます。
ツールバーの初期表示状態は、PdfExport.PdfDocumentOptionsクラスのHideToolbarプロパティで設定が可能です。
◆サンプルコード(VB.NET)
◆サンプルコード(C#)
ただしこの場合、ツールバー自体が非表示になりますので、印刷やページ移動のボタンも表示されません。また、ツールバーの初期表示状態を設定しているだけですので、F8キーを押すなどの方法で、ツールバーを再表示することも可能です。
「文書のコピーを保存」ボタンのみを非表示または無効にするような機能は用意されておりません。あらかじめご注意ください。
クライアント環境に「保存させにくく」する手段としては、Adobe Reader上のツールバーを非表示にし、「文書のコピーを保存」ボタンからの保存を抑制する方法が考えられます。
ツールバーの初期表示状態は、PdfExport.PdfDocumentOptionsクラスのHideToolbarプロパティで設定が可能です。
◆サンプルコード(VB.NET)
Dim rpt As New ReportAssembly.ActiveReport1
Dim pdf As New DataDynamics.ActiveReports.Export.Pdf.PdfExport()
' レポートを作成します。
rpt.Run(False)
' ブラウザに対してPDFドキュメントの適切なビューワを使用するように指定します。
Response.ContentType = "application/pdf"
' ヘッダ情報を設定します。
Response.AddHeader("content-disposition", "inline; filename=MyPDF.PDF")
' Response.AddHeader("content-disposition", "attachment; filename=MyPDF.PDF")
' PDFの出力用のメモリストリームを作成します。
Dim memStream As System.IO.MemoryStream = New System.IO.MemoryStream()
' ★★★ツールバーを非表示にします。★★★
pdf.Options.HideToolbar = True
' メモリストリームにPDFエクスポートを行います。
pdf.Export(rpt.Document, memStream)
' 出力ストリームにPDFのストリームを出力します。
Response.BinaryWrite(memStream.ToArray())
' バッファリングされているすべての内容をクライアントへ送信します。
Response.End()
Dim pdf As New DataDynamics.ActiveReports.Export.Pdf.PdfExport()
' レポートを作成します。
rpt.Run(False)
' ブラウザに対してPDFドキュメントの適切なビューワを使用するように指定します。
Response.ContentType = "application/pdf"
' ヘッダ情報を設定します。
Response.AddHeader("content-disposition", "inline; filename=MyPDF.PDF")
' Response.AddHeader("content-disposition", "attachment; filename=MyPDF.PDF")
' PDFの出力用のメモリストリームを作成します。
Dim memStream As System.IO.MemoryStream = New System.IO.MemoryStream()
' ★★★ツールバーを非表示にします。★★★
pdf.Options.HideToolbar = True
' メモリストリームにPDFエクスポートを行います。
pdf.Export(rpt.Document, memStream)
' 出力ストリームにPDFのストリームを出力します。
Response.BinaryWrite(memStream.ToArray())
' バッファリングされているすべての内容をクライアントへ送信します。
Response.End()
◆サンプルコード(C#)
ReportAssembly.ActiveReport1 rpt = new ReportAssembly.ActiveReport1();
DataDynamics.ActiveReports.Export.Pdf.PdfExport pdf = new DataDynamics.ActiveReports.Export.Pdf.PdfExport();
// レポートを作成します。
rpt.Run();
// ブラウザに対してPDFドキュメントの適切なビューワを使用するように指定します。
Response.ContentType = "application/pdf";
// ヘッダ情報を設定します。
Response.AddHeader("content-disposition","inline; filename=MyPDF.PDF");
// Response.AddHeader("content-disposition","attachment; filename=MyPDF.PDF");
// PDFの出力用のメモリストリームを作成します。
System.IO.MemoryStream memStream = new System.IO.MemoryStream();
// ★★★ツールバーを非表示にします。★★★
pdf.Options.HideToolbar = true;
// メモリストリームにPDFエクスポートを行います。
pdf.Export(rpt.Document, memStream);
// 出力ストリームにPDFのストリームを出力します。
Response.BinaryWrite(memStream.ToArray());
// バッファリングされているすべての内容をクライアントへ送信します。
Response.End();
DataDynamics.ActiveReports.Export.Pdf.PdfExport pdf = new DataDynamics.ActiveReports.Export.Pdf.PdfExport();
// レポートを作成します。
rpt.Run();
// ブラウザに対してPDFドキュメントの適切なビューワを使用するように指定します。
Response.ContentType = "application/pdf";
// ヘッダ情報を設定します。
Response.AddHeader("content-disposition","inline; filename=MyPDF.PDF");
// Response.AddHeader("content-disposition","attachment; filename=MyPDF.PDF");
// PDFの出力用のメモリストリームを作成します。
System.IO.MemoryStream memStream = new System.IO.MemoryStream();
// ★★★ツールバーを非表示にします。★★★
pdf.Options.HideToolbar = true;
// メモリストリームにPDFエクスポートを行います。
pdf.Export(rpt.Document, memStream);
// 出力ストリームにPDFのストリームを出力します。
Response.BinaryWrite(memStream.ToArray());
// バッファリングされているすべての内容をクライアントへ送信します。
Response.End();
ただしこの場合、ツールバー自体が非表示になりますので、印刷やページ移動のボタンも表示されません。また、ツールバーの初期表示状態を設定しているだけですので、F8キーを押すなどの方法で、ツールバーを再表示することも可能です。
「文書のコピーを保存」ボタンのみを非表示または無効にするような機能は用意されておりません。あらかじめご注意ください。
関連情報
キーワード
HowTo エクスポート Web
この文書は、以前は次のFAQ IDで公開されていました : 11979