0

jspdfは utf8 文字をサポートしていないため、一部の文字を画像に置き換えてから pdf にエクスポートしようとしています。理解を助けるために、コードのサンプルを作成しました。ここでは、画像を html div に配置し、これを jspdf を使用して pdf に貼り付けます。テキストは pdf に表示されますが、画像はありません。問題は何ですか? 初心者なのでやり方を教えてください。

このリンクを試して問題を確認してください: http://www.balkanex.info/test/start.html

コードは以下のとおりです。

start.html

<!doctype>
<html>
<head>
    <meta charset="utf-8">
    <script type="text/javascript" src="runner.js" charset="utf-8"></script>
    <script type="text/javascript" src="script.js" charset="utf-8"></script>
    <script type="text/javascript" src="jspdf/jquery/jquery-1.11.0.min.js"></script>
    <script type="text/javascript" src="jspdf/jspdf.js"></script>
    <script type="text/javascript" src="jspdf/libs/Deflate/adler32cs.js"></script>
    <script type="text/javascript" src="jspdf/libs/FileSaver.js/FileSaver.js"></script>
    <script type="text/javascript" src="jspdf/libs/Blob.js/BlobBuilder.js"></script>
    <script type="text/javascript" src="jspdf/jspdf.plugin.addimage.js"></script>
    <script type="text/javascript" src="jspdf/jspdf.plugin.standard_fonts_metrics.js"></script>
    <script type="text/javascript" src="jspdf/jspdf.plugin.addimage.js"></script>
    <script type="text/javascript" src="jspdf/jspdf.plugin.split_text_to_size.js"></script>
    <script type="text/javascript" src="jspdf/jspdf.plugin.from_html.js"></script>
</head>

<body>
    <input type="button" id="btn" value="PROCEED TO THE NEXT PAGE" onClick="run();pdf();">
</body>
</html>

runner.js

function run() {
    document.write('<div id="myid">This is the image: <img src="button.png" alt="Submit"> </div><br/>');
    document.write('<button id="pdf">Export in pdf</button></div>');
}

script.js

function pdf() {
$(function () {
    var doc = new jsPDF();
    var specialElementHandlers = {
        'body': function (element, renderer) { 
            return true;
        }};
    $('#pdf').click(function () {
        doc.fromHTML($('#myid').html(), 15, 35, {
            'width': 170,
                'elementHandlers': specialElementHandlers
        });
        doc.save('sample.pdf');
    });
});
}
4

1 に答える 1

1

jspdf を使用するライブラリは utf-8 文字の一部をサポートしていないため、他のライブラリ (Mozilla の pdf.js など) を使用してこれらの問題を回避することをお勧めします。

一方、これを使用することにした場合は、文字列を保存する変数ごとに配列を作成し、文字を画像に置き換える必要があります。

于 2014-03-12T15:31:03.687 に答える