【问题标题】:jsPDF library cannot insert utf8 letters into pdfjsPDF库无法将utf8字母插入pdf
【发布时间】:2014-03-31 14:34:43
【问题描述】:

我正在努力使用 jspdf 库 将 html 页面导出为 pdf 文件,但没有成功。这里有一个类似的问题,但答案不好。问题出在 UTF-8 字符中,即使我将所有文档都设为 utf8。我应该怎么做才能使这个库(parall.ax/products/jspdf)在pdf中插入诸如š、č、ć之类的字母?

这里是你可以尝试这个问题的链接(http://balkanex.info/test/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.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 NEX PAGE" onClick="run();pdf();">
  </body>
</html>

runner.js

function run() {
    document.write('<div id="id1"><input type="text" id="name" value="Čimoki Šitano"></div><br/>');
    document.write('<div id="id3">This is the ordinary txt with č and š and ć</div><br/>');
    document.write('<button id="pdf">Export in pdf file</button></div>');
}

script.js

function pdf() {
$(function () {
    var doc = new jsPDF();
    doc.text(35, 25, "Here are the letters š and č and ć and ž");
    var specialElementHandlers = {
        'body': function (element, renderer) { 
            return true;
        }};
    $('#pdf').click(function () {
        doc.fromHTML($('#id3').html(), 15, 35, {
            'width': 170,
                'elementHandlers': specialElementHandlers
        });
        doc.save('sample.pdf');
    });
});
}

【问题讨论】:

    标签: javascript jquery html utf-8 jspdf


    【解决方案1】:

    这个库不支持其中一些字母。并且开发者告诉它很快就可以访问了。

    但是,如果您想使用这些字母,您可以制作图像来替换一些有问题的字母。

    例如,制作字母 Č 的图像,然后在特定字段中使用此图像更改字母。这是一项相当不错的工作。因此,我建议您更改库。

    【讨论】:

    • 没有一位开发人员说“这不太可能发生”。存在哪些用于离线生成的替代库?
    【解决方案2】:

    请查看 jsPDF 的最新版本 (v1.4.0)。他们刚刚开始支持 unicodehttps://github.com/MrRio/jsPDF/releases/tag/v.1.4.0

    【讨论】:

      【解决方案3】:

      jsPDF 不支持 ASCII 范围之外的任何内容。见https://github.com/MrRio/jsPDF/issues/12

      【讨论】:

      • 不过,我想出的最好办法是用 html2canvas 渲染字符并将它们作为图像插入,正如我建议的 here
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-28
      • 2019-01-19
      • 1970-01-01
      • 2021-05-27
      • 1970-01-01
      相关资源
      最近更新 更多