コントローラを使用してEvoPDFからPDFを作成する方法については、jQuery AJAX経由でコントローラを呼び出すことはできません。jQuery AJAX経由で呼び出されたコントローラからPDFを返します。
私は私のアプリでは他の多くのよう多くのコントローラにデータを送信し、簡単なjQueryの機能を持っている:
$.ajax({
url: "/AnnualFees/showStatement",
cache: false,
data: {
authKey: memberData.authKey,
entityId: memberData.entityId,
barNumber: memberData.barNumber,
statementHTML: encodeURIComponent($("#statementBody").html())
},
method: "POST",
success: function (data) {
},
});
私はすべてのサンプルに続き、このコードを持っています。私はそれを変更してPDFを保存し、PDFが生成されていることを確認することができます。
public ActionResult getStatementPDF(string statementHTML)
{
//initialize the PdfConvert object
PdfConverter pdfConverter = new PdfConverter();
// set the license key - required
pdfConverter.LicenseKey = "uzUmNCcnNCYsIjQgOiQ0JyU6JSY6LS0tLQ==";
StringBuilder PDFBody = new StringBuilder();
PDFBody.Append("<!DOCTYPE html>");
PDFBody.Append("<html lang=\"en\">");
PDFBody.Append("<head>");
PDFBody.Append(" <meta charset=\"utf - 8\">");
PDFBody.Append(" <title>Statement</title>");
PDFBody.Append("</head>");
PDFBody.Append("");
PDFBody.Append("<body>");
PDFBody.Append("Hello world.");
PDFBody.Append("</body>");
PDFBody.Append("</html>");
byte[] outPdfBuffer = pdfConverter.GetPdfBytesFromHtmlString(PDFBody.ToString());
// Send the PDF file to browser
FileResult fileResult = new FileContentResult(outPdfBuffer, "application/pdf");
fileResult.FileDownloadName = "Statement.pdf";
return fileResult;
}
正しいアプリケーション/ pdfタイプとほぼ同じサイズのディスクでエラーが200回成功したことを確認できます。ただし、PDFは表示されず、ブラウザに何も表示されません。
何を保存しないようにしたい場合は、あなたがFileSaverJS(https://github.com/eligrey/FileSaver.js/)を使用することをお勧めします、あなたがファイルを開くには、このような何かを行うことができますAJAX呼び出しのデータするonSuccessを処理する必要がありますコールバックがAJAXリクエストに応答して何もしないために起こります。 Plusファイルのダウンロードはajaxでは機能しません。必要なのは、PDFファイルを生成してサーバーに保存し、そのファイルを指すURLを返すので、ブラウザをコールバックにリダイレクトすることができます。 – marekful
この段階では、PDFは最終的な文書の草稿であるため、PDFを保存する必要はありません。私はブラウザにPDFをストリーミングするサンプルコードを見ていますが、うまく機能していません。それはできないのですか? –