デフォルトページの作成
ソリューションエクスプローラーでプロジェクト名を右クリックして[追加]-[Webフォーム]メニューを選択して「PdfPage.aspx」という名前のWebフォームを追加します。
Webフォームが追加できたらコードビハインド部分に次のコードを記載します。
protected void Page_Load(object sender, EventArgs e) { // エクスポートするページレポートのインスタンスを生成します。 var rptPath = new FileInfo(Server.MapPath("reports") + "\\RdlReport1.rdlx"); var report = new GrapeCity.ActiveReports.PageReport(rptPath); var reportDocument = new GrapeCity.ActiveReports.Document.PageDocument(report); // 描画拡張機能でレポートをエクスポートします。 var pdfRenderingExtension = new GrapeCity.ActiveReports.Export.Pdf.Page.PdfRenderingExtension(); var outputProvider = new GrapeCity.ActiveReports.Rendering.IO.MemoryStreamProvider(); reportDocument.Render(pdfRenderingExtension, outputProvider); Response.ContentType = "application/pdf"; Response.AddHeader("content-disposition", "inline;filename=MyExport.pdf"); using (var ms = new MemoryStream()) { outputProvider.GetPrimaryStream().OpenStream().CopyTo(ms); Response.BinaryWrite(ms.ToArray()); Response.End(); } }
テスト実行
ここまでの作業が終わったらVisual Studioで実行してみましょう。ビルドが終わるとIIS Expressが自動的に立ち上がりPdfPage.aspxを指定すれば、先ほど定義したように、線が1本表示されたPDFが確認できます。
Azureへの発行
開発環境での実行ができたのでAzureにデプロイして動作を確認してみよう。
ソリューションエクスプローラーでプロジェクトを右クリックして[発行]メニューを選択します。
ダイアログで[Microsoft Azure App Service]、最初のデプロイであれば[新規作成]を選択して[発行]ボタンをクリックします。
アプリ名やサブスクリプションを選択していきますが、ここで重要なのがApp Serviceプランです。レイテンシーを考えたら西日本か東日本のリージョンで、また、ナレッジベースによれば無料プランや共有プランだと日本語の文字間隔が不正になるとあるので、B1プラン以上の料金プランを選択します。
発行に成功したらPdfPage.aspxを指定して表示してみれば、開発環境とまったく同様にPDFが表示できます。6.0Jで苦労してやっと実現できていたことがこれだけ簡単にできてしまうわけです。