JsPDF 不支持日语

IT技术 javascript reactjs jspdf
2021-05-07 13:54:03

我正在将 JsPDF 用于我的react项目,并在为日语版本保存 pdf 时遇到一些问题,但它在英语版本中运行良好。

问题 有时它会打印一些随机的特殊字符,有时它不会在 pdf 上打印任何内容。

任何帮助,将不胜感激。

这是我的代码

import React from "react";
import jsPDF from 'jspdf';
import "./styles.css";

const HelloWorldJapanese = 'こんにちは世界';

export default function App() {

  const downloadPdf = () => {
    const doc = new jsPDF()
    doc.text('Hello world!', 10, 10)
    doc.save('a4.pdf')
  }

  const downloadJapanesePDF = () => {
    const doc = new jsPDF();
    doc.text(HelloWorldJapanese, 10, 10)
    doc.save('a4.pdf');
  }

  return (
    <div className="App">
     <button onClick={downloadPdF}>Download Pdf</button>
     <br />
     <button onClick={downloadJapanesePDF}>Download Japanese Pdf</button>
    </div>
  );
}

沙盒演示:https ://codesandbox.io/s/jspdf-bk7p3

1个回答

您必须手动添加字体文件。例如,在 jsPDF git

doc.addFont("test/reference/MouhitsuBold.ttf", "Mouhitsu", "bold");

doc.setFont("Mouhitsu", "bold"); // set font

我在故障中添加了代码以方便演示(故障中的预览 pdf 仅适用于在新窗口中显示)