0

ここで私のAsp.net Webアプリケーションでは、生成する必要があります。以前はitextsharp (サーバー側/有料サービス)pdfを使用してこのタスクを達成していましたが、今ではjspdfがクライアント側で実行できることに加えて、それがオープンソースであることがわかりました。

pdfを生成するサンプルコードはこちら

  var doc = new jsPDF();
  doc.text(20, 20, 'Hello world!');
  doc.text(20, 30, 'This is client-side Javascript, pumping out a PDF.');
  doc.addPage();
  doc.text(20, 20, 'Do you like that?');
  doc.save('Test.pdf');

実際の作業では、いくつかのロジック (サーバー側のコーディング) を適用してデータを取得する必要があるため、サーバー側(c#) でドキュメントにアクセスできるかどうか、または別の方法でアクセスできるかどうかを知りたいですか?

4

1 に答える 1

2

docオブジェクト (jsPDF オブジェクト) にアクセスできません。あなたができることは、クライアントがWebサービスまたはいくつかの残りのAPIを介して必要なデータをサーバーに要求することです。または、必要なものがPDF署名である場合、クライアントは何らかの方法で(Webサービスまたはいくつかを介して)PDFをサーバーに送信できますrest api) そして、サーバーは pdf を送り返すことができます... しかし、これはクライアント側の pdf 生成を使用することを役に立たなくします。

他にもいくつかのオプションがあります。PDF を生成するボタンをサーバーへのラウンドトリップにする場合 (そして、ラウンドトリップ後に PDF の生成を開始する場合)、サーバーによっていくつかの追加データをページに挿入できます。それで

<asp:Button ID="btnPdf" runat="server" Text="Generate PDF" OnClick="btnPdf_Click" />

and in btnPdf_Click:

ClientScriptManager.RegisterStartupScript(this.GetType(), "PdfKey", "GeneratePdf();", true);

and in the Javascript:

function GeneratePdf()
{
    // If it's a string, it's better that you escape the content of <%= %>
    // for example with HttpUtility.JavaScriptStringEncode in ASP.NET 4.0
    var serverData = <%= SomeNetVariableFilledByBtnPdf_Click %>;
    // generate the pdf
}
于 2013-08-05T10:03:10.023 に答える