【发布时间】:2014-03-22 07:43:17
【问题描述】:
我很高兴使用 jsPDF 库,它可以帮助我将 HTML 页面导出为 PDF 文件。我遇到了一些困难。我从http://parall.ax/products/jspdf/ 下载了库。当我在 pdf 中使用 š、ć (UTF-8) 等字符时,它们看起来像错误。即使我通过 doc.text 插入。在图书馆的网站上,当我使用他们的示例并使用其中一些字符更改文本时 - 它可以工作。所以假设它可以使用 UTF-8。为什么它不能在我的电脑上运行。
我为您提供我的代码。这里缺少的是lib(可以从网站下载),你会看到我的问题。为什么CSS在pdf中消失了?
testing.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>TESTING JSPDF LIB</title>
<script type="text/javascript" src="pdffile.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>
<script>
function redirect() {
document.write("Hello world" + '<br />');
}
</script>
</head>
<body>
<div id="box" class="box-shadow">
<input type="submit" name="ok" id="ok" value="LETS TRY" onClick="redirect();pdf();" /> </div>
</div>
</body>
</html>
pdffile.js
function pdf() {
document.write('<div id="mydiv" style="background-color:#CCC; width:780px;640px;"><p>Open these letters š and c in PDF file and see error</p></div><br />');
document.write('<button id="export">OPEN IN PDF FILE</button>');
$(function () {
var doc = new jsPDF();
doc.text(35, 25, "Text with the letter Š");
var specialElementHandlers = {
'body': function (element, renderer) {
return true;
}
};
$('#export').click(function () {
doc.fromHTML($('#mydiv').html(), 15, 15, {
'width': 170,
'elementHandlers': specialElementHandlers
});
doc.save('sample-file.pdf');
});
});
}
【问题讨论】:
-
您确定您的 html/javascript 文件是以 UTF-8 编码/格式保存的吗?
-
根据 jsPDF 团队,他们还不会支持它。你可以跟踪状态github.com/MrRio/jsPDF/issues/12
-
是的,我确定。它在浏览器中显示这些字符,但之后不在 pdf 中。 :(
-
您可以尝试将图像放置在字符的位置,或者尝试使用花哨的字体。当然那很痛苦。
-
我知道他们不支持您发送的主题中的这些信件。但是我的信是如何出现在他们的网站上的。请尝试在他们的官方网站parall.ax/products/jspdf上的图片标题中加上Š或Č。只需更改标题即可。
标签: javascript html pdf utf-8 jspdf