Как вставить изображение из HTML в PDF с помощью библиотеки jsPDF?

Поскольку jspdf не поддерживает символы utf8, я пытаюсь заменить некоторые символы изображениями, а затем экспортировать их в pdf. Чтобы помочь вам понять, я сделал пример кода, в котором я пытаюсь поместить изображение в html div, а затем вставить его в pdf с помощью jspdf. Текст отображается в формате 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');
    });
});
}

person mpavlovic89    schedule 05.03.2014    source источник


Ответы (1)


Используемая вами библиотека jspdf не поддерживает некоторые буквы utf-8, поэтому я предлагаю вам использовать другую библиотеку (например, pdf.js от Mozilla) и избежать этих проблем.

Если вы, с другой стороны, решите использовать этот - тогда вам придется создать массив для каждой переменной, которая сохраняет строку, а затем заменить символы изображениями.

person user3392725    schedule 12.03.2014
comment
Обратите внимание, что Mozilla pdf.js читает PDF, тогда как jsPDF записывает. - person Daniel Bang; 01.04.2014