我们使用自定义字体,比如说不支持中文的sans。我如何在 jspdf 中添加后备选项,它不会使用 sans 中文字体。
doc.addFileToVFS('custom-sans-normal.ttf', customSansFont);
doc.addFont('custom-sans-normal.ttf', 'custom-sans', 'normal');
doc.setFont("custom-sans", 'normal');
jsPDF使用默认的Adobe PDF字体系统14种基本字体。
这意味着任何欧洲或 CJK 字体都必须正确嵌入。因为唯一的“后退”是拉丁字符,例如希腊符号或部分罗马时代/Helvetica/Courier。
必须提供与嵌入兼容的所有其他字体,如 UTF-8 字体所述。
这已在“stackoverflow”中多次更新和介绍,并在此链接中有详细记录。
https://github.com/parallax/jsPDF?tab=readme-ov-file#use-of-unicode-characters--utf-8
基本上,
fontconverter 将创建一个 js 文件,其中包含提供的 ttf 文件的内容作为 base64 编码字符串和 jsPDF 的附加代码。您只需将此生成的 js 文件添加到您的项目中即可。然后,您就可以在代码中使用 setFont-method 并编写 UTF-8 编码文本了。
或者,您可以使用 fetch 或 XMLHttpRequest 将 *.ttf 文件的内容作为二进制字符串加载,并将字体添加到 PDF 文件中: