繁体   English   中英

从 jsPDF 生成的 PDF 复制文本时粘贴乱码

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM