3

私のアプリケーションでは、クライアント側でHTMLを解析してPDFをダウンロードする必要があります。クライアント側でPDFを生成するために、私はjsPdfを使用しています。以下は私のコードです。

PdfGenerator.java

public static native String createPDF() /*-{
        $wnd.createPDF(); 
}-*/;

entrypoint.html

 function createPDF(){
         try {
          var doc = new jsPDF();
           doc.text(20, 20, 'This PDF has a title, subject, author, keywords and a crea');
           doc.output('datauri');
           var out = doc.output();
           var url = 'data:application/pdf;base64,' + Base64.encode(out);
           document.location.href = url;
        } catch (e) {
            return e.message;
        }
        return "";
};

プロジェクトにすべてのjsを追加し、スクリプトも定義しました。しかし、このメソッドを呼び出すと、「sprintfが定義されていません」という出力が返されます。。何か足りないものがあれば教えてください。

4

4 に答える 4

1

sprintf.jsとのスクリプトを追加するのを忘れていると思いますbase64 js。内部的にはこれらjsPdf.jsのjsの両方を使用します。

entrypoint.html

<script type="text/javascript" src="base64.js"></script>
<script type="text/javascript" src="sprintf.js"></script>
<script type="text/javascript" src="jspdf.js"></script>

このリンクを参照してくださいhttp://forums.webhosting.uk.com/web-designing-development/6718-jspdf-generated-your-pdf-web-page-documents-using-javascript.html

于 2012-08-15T12:11:04.690 に答える
1

jsPDFの最新のビルドでは、base64やsprintfは必要ありません。「dist」フォルダーにあるjspdf.min.jsだけで、すべてのプラグイン(downloadify / swfobjectを除く)が含まれています。

jsPDFを理解しようとしたときに誰かが古いチケットに遭遇した場合は、ドキュメントがあまり良くないため、古いチケットを更新するだけです。

于 2014-12-10T21:22:01.630 に答える
1

を使用してコードを複雑にする必要はありませんwindow.location。JsPDFには.save()それを処理する方法があります。

function createPDF(){
         try {
           var doc = new jsPDF();
           doc.text(20, 20, 'This PDF has a title, subject, author, keywords and a crea');
           doc.save('file_name.pdf');
        } catch (e) {
            return e.message;
        }
        return "";
};
于 2019-11-12T11:22:28.290 に答える
0

サポートしているブラウザー(すべてのブラウザーバージョン、およびIE 10以降)によっては、を含める必要もありませんBase64.encode()btoa()代わりに電話してください。

于 2015-10-08T20:20:14.013 に答える