[英]How to set custom font for PDF, which generated from html? jsPDF library [HTML; no using text method]
[英]Pastes gibberish when copied text from a PDF generated from jsPDF
好吧,我需要使用支持 unicode 字符的字体从 jsPDF 生成 PDF 以达到我的目的。 例如“€”符号,因为它在使用 jsPDF 内置字体时会产生乱码,因为它不支持 unicode 字符。
不过好消息是你可以使用自定义的真字体(ttf)和很多 ttf 支持 unicode 字符,我上面的问题已经解决了。
现在坏消息或下一个副作用是在生成 pdf 之后,如果有人试图从 pdf 中复制确切的文本并希望将其粘贴到其他地方,如文本文件、word 文档等,则生成以下内容:
"ࣆࣆGROODUGROODUORWRIGROODUࣆࣆKDKDLDPULFK"
代替:
“€€€€€€€€€€€€€€€——哈哈,我很有钱……”
我们尝试了各种使用 acrobat pdf 设置的解决方法。 没有什么特别有效的。 下载并尝试了很多不同的字体,但没有解决方案。
jspdf 版本是 1.4.1。
知道为什么会发生这种情况或对此有任何解决方案吗?
任何帮助将不胜感激。
谢谢。
好吧,问题出在 jspdf 版本上。 这个问题在 1.5.0 中解决了,我使用的版本是 1.4.1
查看发行说明: https : //github.com/MrRio/jsPDF/releases
移至:commit "c53beb6":字体字典现在具有 toUnicode 条目,以便能够从 pdf 查看器中复制粘贴。
编辑:我试图重现你的问题。 我用jsPDF像你一样jsPDF ,我得到了它相当快的工作。 请告诉我这是否是您想要的。
这是一个工作示例代码笔
var doc = new jsPDF() doc.text('€€Hello world!€€', 10, 10); function save() { doc.save('a4.pdf'); }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.5.3/jspdf.debug.js" integrity="sha384-NaWTHo/8YCBYJ59830LTz/P4aQZK1sS0SneOgAvhsIl3zBu8r9RevNg5lHCHAuQ/" crossorigin="anonymous"></script> <button onclick="save()">Click me to download the PDF</button>
我首先建议您实现一个 cmap 但这太多了,因为您需要按照此处所述重新映射每个字符 用 cmap 表实现cmap 表。
试试我上面的代码,我希望它有帮助,否则让我知道是否有进一步的问题。
请注意,创建的 PDF 中的文本还显示了欧元符号,因此这基本上应该可以解决您的问题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.