【发布时间】:2020-04-15 12:14:30
【问题描述】:
我需要使用 jsPDF 将 html 转换为 pdf。 它包含 UTF-8 符号(西里尔文)。 我使用 fontconverter 为我的自定义字体生成 js 文件,如下所示: https://github.com/MrRio/jsPDF
所以现在带有文本的示例就像一个魅力。
var pdf = new jsPDF('p', 'pt', 'letter');
doc.setFont('PTSans');
doc.setFontSize(10);
doc.text("А ну чики брики и в дамки!", 10, 10);
html 示例会忽略我的自定义字体并导出不正确的符号。
var pdf = new jsPDF('p', 'pt', 'letter');
doc.setFont('PTSans');
doc.setFontSize(10);
pdf.html( "<html>А ну чики брики и в дамки!</html>", { callback: function (pdf) {
var iframe = document.createElement('iframe');
iframe.setAttribute('style', 'position:absolute;right:0; top:0; bottom:0; height:100%; width:500px');
document.body.appendChild(iframe);
iframe.src = pdf.output('datauristring');
}
});
我需要做什么才能将 html 导出为带有 unicode 符号的 pdf?
【问题讨论】:
-
HTML 是什么样的?是否使用正确的字符集提供服务?
-
我尝试了“А ну чики брики и в дамки!”和“А ну чики брики и в дамки!”。我应该如何提供字符集?
-
你改变了问题。它不适用于字符串中的 HTML 而不是
document.body吗?你在使用网络服务器吗?确保 HTTP 标头Content-type包含所有文件(HTML 和 JavaScript)的字符集。否则在 HTML 中设置元标记。见:w3.org/International/questions/qa-html-encoding-declarations.en -
@RoToRa,感谢您的回答。它不适用于
document.body或<html>А ну чики брики и в дамки!</html>如果我提供字符集也不起作用:<html><head><meta charset=\"utf-8\"/></head>А ну чики брики и в дамки!</html> -
我什至试过这个 - 但同样的结果
<?xml version="1.0" encoding="utf-8"?><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/></head>А ну чики брики и в дамки!</html>
标签: javascript jspdf