ASPにおいて、PDF形式のバイト配列を出力すると、正しくPDFが作成されず、クライアントのAcrobat Readerでエラーが発生します。

文書番号 : 10548     文書種別 : 使用方法     最終更新日 : 2002/05/17
文書を印刷する
対象製品
ActiveReports 2.0J Standard
詳細
サーバ側で、バイト配列出力時に利用されるテンポラリなディレクトリに対して書き込み権限が必要になります。PDFエクスポートの際、テンポラリファイルが、System32(デフォルト)に格納されます。しかし、System32に書き込みの許可が与えられていない場合、格納することができず問題が発生します。

※本現象は、データのレコード件数等の条件により、発生する場合としない場合があります。問題が発生しない場合にも、書き込み権限の設定をご確認いただくことをお勧めいたします。

このテンポラリファイルの格納先は、FileNameプロパティで、予め指定しておくことができます。こうすることで、IISのルートディレクトリ内のサブディレクトリや、Webアプリケーションのディレクトリに格納できるようになります。
下記のプログラムで示されるパス wrkPDF.FileNameの C:¥Temp に、NTFSファイルシステム セキュリティ設定ページから、実行時のユーザーに対して書き込み権限が無いときに問題となります。書き込み権限のあるパスをコードから設定してください。

このパスの設定の以外に、日本語フォントを利用する場合は、AcrobatVersionプロパティを必ず「DDACR40」(または 2)と指定し、SemiDelimitedNeverEmbedFontsプロパティを ""(空文字)に設定してください。

サンプルコード
 Set rpt = New rptExport
 Dim wrkPDF As New ActiveReportsPDFExport2.ARExportPDF
 rpt.Run False

 wrkPDF.AcrobatVersion = DDACR40
 wrkPDF.FileName = "C:¥Temp"
 wrkPDF.JPGQuality = 100
 wrkPDF.OutputTOCAsBookmarks = False
 wrkPDF.SemiDelimitedNeverEmbedFonts = ""
 wrkPDF.ShowBookmarksInAcrobat = False
 wrkPDF.ExportStream rpt.Pages, wrkArray
関連情報
キーワード
問題 エクスポート Web

この文書は、以前は次のFAQ IDで公開されていました : 2905