私はITextSharpを使用して、現在ブラウザに表示されていない印刷用PDFを作成しています。 PDFのitextsharp pdfが作成されましたが、ブラウザに表示されません。
生成は以下のjQueryをトリガー印刷アイコンをクリックする介して処理されます。
<script type="text/javascript">
function printDiv() {
$.post("@Url.Action("DownloadAdultReportPdf", "Monthly")",
{
RegionId: $("#RegionId").val(),
DatCodeId: $("#DatCodeId").val(),
AgencyId: $("#AgencyId").val(),
ReportVersionId: $("#ReportVersionId").val()
});
}
印刷アイコンコードは次のようになります。
<input class="print-icon tooltip" title="print this report" type="image" src="~/Content/images/printer-icon-23.png" onclick="printDiv()"/>
をクリックこのアイコンは、DownloadAdultReportPdfというMonthlyControllerのFileResultに移動します。このコードは次のとおりです。
public FileResult DownloadAdultReportPdf(AdultViewModel model)
{
MemoryStream workStream = new MemoryStream();
DateTime dTime = DateTime.Now;
string strPDFFileName = string.Format("SamplePdf" + dTime.ToString("yyyyMMdd") + "-" + ".pdf");
Document doc = new Document();
doc.NewPage();
Paragraph paragraph = new Paragraph();
paragraph.Add("Hello World!");
doc.SetMargins(0f, 0f, 0f, 0f);
string strAttachment = Server.MapPath("~/Downloads/" + strPDFFileName);
PdfWriter.GetInstance(doc, workStream).CloseStream = false;
doc.Open();
doc.Add(paragraph);
doc.Close();
byte[] byteInfo = workStream.ToArray();
workStream.Write(byteInfo, 0, byteInfo.Length);
workStream.Position = 0;
return File(workStream, "application/pdf", strPDFFileName);
}
ユーザーのブラウザにPDFを表示させるにはどうすればよいですか?
ブラウザにはpdfの準備ができている必要があります。そして、 'return File(workStream、....)'のコードをデバッグしてください。 –
私がテストしているブラウザはChromeの最新バージョンです。私はworkTime変数を知っていて、ReadTimeoutを取得していて、どちらの場合もWriteTimeoutエラーがSystem.InvalidOperationExceptionとして表示されています – CryoFusion87
最初にcraeteに2つの問題がありますjqueryの 'post'呼び出しがファイルを返すときに、' success'関数が応答を処理するために定義していないので、pdfをダウンロード/リダイレクトするためにリダイレクトされません。 –