使用 jsPDF 生成的 PDF 中,图片无法渲染?

9
我已经包含了以下文件:
<script type="text/javascript" src="libs/png_support/zlib.js"></script>
<script type="text/javascript" src="libs/png_support/png.js"></script>
<script type="text/javascript" src="jspdf.plugin.addimage.js"></script>
<script type="text/javascript" src="jspdf.plugin.png_support.js"></script>
<script type="text/javascript" src="jspdf/jspdf.plugin.standard_fonts_metrics.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>
<script type="text/javascript" src="jspdf.js"></script>

我正在测试是否可以通过HTML呈现图像:

var doc = new jsPDF();
   var elementHandler = {
     '#ignorePDF': function (element, renderer) {
       return true;
     }
   };
   var source = '<img src="/assets/common/image/BG.jpg"/>';
   doc.fromHTML(
       source,
       15,
       15,
       {
         'width': 180,'elementHandlers': elementHandler
       });

   doc.output("dataurlnewwindow");

它在控制台上抛出此错误,错误信息如下:

jsPDF Warning: rendering issues? provide a callback to fromHTML! (anonymous function)

我使用了PNG格式,但它没有起作用,我还尝试了JPG格式,但仍然不行!我做错了什么?提前感谢。

1个回答

1

为fromHTML()添加一个参数

doc.fromHTML(
    source,
    15,
    15, {
        'width': 180,
        'elementHandlers': elementHandler
    },

    function(dispose) {
        // dispose: object with X, Y of the last line add to the PDF
        //          this allow the insertion of new lines after html
        // pdf.save('Test.pdf');

        if (navigator.msSaveBlob) {
            var string = doc.output('datauristring');
        } else {
            var string = doc.output('bloburi');
        }

        $('.previewIFRAME').attr('src', string);
    })

pdf.output('bloburi') 中的 pdf 未定义。 - Jaanus
我不再收到错误信息了,所以确实改变了一些东西,但生成的PDF是空白的。 - Jaanus
@klihelp,我也遇到了与问题描述相同的问题,您能否告诉我您是如何解决它的?似乎 from_html 对 CSS 的支持有限...那么这是问题所在吗? - touchStone
2
我最终使用了开源工具wkhtmltopdf,解决了问题。 - newbie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接