質問者
ASP.NET MVC5 PDFファイル生成 ダウンロード

質問
-
インターネット公開のWEBページで画面より、ボタンをクリックすると
フォームで入力した内容を、データベースに保存し、
該当するデータよりA4サイズで1枚 書類を作成し、ダウンロードできる
機能を実現しようとしています。
-------------
環境は
ASP.NET MVC5
OS:Windows Server 2012
IIS 8.5
データベース:SQL Server 2015
httpsで公開されるページです。
一日に3000以上のPDF出力が予測されています。
-----------
表示しているホームページをPDFで印刷したいということではなく、
罫線、印字位置、フォントサイズが決まった日本語文字を使用する書類
※役所に提出する申請書類のような形式のものです。)
を使用します。
作成したPDFは、クライアント側にダウンロードできれば、
サーバー側に保存する必要は有りません。
TuesPechkinを使用してビューを PDF に変換
する方法は試みましたが、IISがフリーズしたり、動作が不安定
なのと、
HTMLからPDFにジェネレートされるときに、様式が複雑なこともあり、
有効になる命令、思った印刷になるHTML、CSSを作成するのに
非常に手間がかかり、困難であるため、採用不可と判断しました。
現在、バックヤードで、
Webページからデータが書き込まれたら
繰り返しデータを見てはPDFを作成して決まったフォルダに
指定のファイル名で保存するプログラムを作成し、
常時実行状態(OPENしたまま)にすることで、
物理的に、PDFファイルをサーバー内に保存しておき。
この物理的に保存されているPDFファイルを
ASP.NET MVCで
return File(PDFの保存場所, pdfのファイル名, ダウンロードさせる時のpdfのファイル名);
により、クライアントでダウンロードさせて、何とか実現しています。
-------------
質問
1.バックヤードでサーバーに物理的なファイルは必要ない、
ASP.NET MVCのページで、
PDFファイルをダウンロードさせる方法をを取りたい、
データベースからのデータを入れた、
レポートをPDFをジュエネレートして、クライアントでダウンロードする
手立てで、良い方法はないでしょうか?
有償ソフトを含め教えてください。
2.1の方法で適切な方法がない場合、
物理的なファイルを置いて、現行と同様の実現方法かと
考えているのですが、
もっと良い方法がないでしょうか?
現時点のバックヤードのプログラムは、
常時実行状態に不向きなACCESSを使用しており、
原因不明の実行時エラーなどが起こり動作不安のため、
別の言語のプログラム等方法を考えたい。
ACCESSを使用したのは、思った形式のレポートの開発が、
私にとっては簡易で、PDF作成の実行速度も
速かったことから選択しましたが、まず言語の選択として
ふさわしくないと思っています。ご教授 お願い申し上げます
すべての返信
-
こんにちは。
過去に以下の有償のライブラリを使って「1」を実現したことがあります(ASP.NET Web FormおよびASP.NET MVC)。
VB-ReportはExcelファイルをサーバサイドで作成・加工するライブラリですが、PDFに変換することもできますのでその機能を使ってPDFダウンロード機能を実装したことがあります。
ただし、利用できないExcelの機能もあります(例えばVB-Report 8ではグラフをPDF化するのは無理だったはず)。Asposeシリーズでは「Aspose.Cells for .NET」を使ったことがあります(VB-ReportでできなかったグラフのPDF化がでたために使ったという記憶があります)。
私自身使ったことはないのですが、「Aspose.Pdf for .NET」だとHTMLなどもインプット形式として選択できるのでそちらのほうがMorningStorehouseさんの要件にあうかもしれませんね。実現できる機能のほかに、ライセンス(価格&利用条件)もありますのでそのあたり含めて検討する必要があるとは思いますが、取り急ぎ私が過去にやったことがあるものを書いてみました。
きよくらならみ
- 回答の候補に設定 立花楓Microsoft employee, Moderator 2017年4月3日 1:50
-
データベースに SQL Server を使っているなら、SQL Server Reporting Services で PDF をエクスポートするのが最もお手軽だと思います。
PDF ファイルへのエクスポート (レポート ビルダーおよび SSRS)
- 編集済み hihijiji 2017年4月1日 1:13 脱字
- 回答の候補に設定 立花楓Microsoft employee, Moderator 2017年4月3日 1:50
-
hihijiji様
SQL Server Reporting ServiecesはMVCに組み込みができるのですね。http://www.c-sharpcorner.com/article/ssrs-report-in-asp-net-mvc-5/
にサンプルをみつけました。文字サイズ等の設定、罫線など設定できるかなど
今回の帳票の仕様に合った作成できそうか、
データベースサーバーはIISのサーバーと物理的に別だが制限にふれないかなど確認してみます。
-
SQL Server Reporting Servieces(SSRS)はWebサーバ機能も持ってますので、SSRSにHTTPリクエストを送るだけで、PDFがその都度レンダリングされてダウンロードできます。
IISとの構成にもよりますが、ダウンロードだけならハイパーリンクを張るだけでも連動可能です。- 回答の候補に設定 立花楓Microsoft employee, Moderator 2017年4月7日 0:58
-
- 回答の候補に設定 立花楓Microsoft employee, Moderator 2017年4月14日 1:14