gpt4 book ai didi

javascript - jsPDF && jsPDF AutoTable 将特殊字符打印到 PDF

转载 作者:行者123 更新时间:2023-12-02 14:15:55 25 4
gpt4 key购买 nike

我正在使用img jsPDF AutoTable库从我的HTML表创建PDF文件,Everythink工作正常,PDF总是创建,但我对我的国家/地区典型的一些特殊字符有疑问。在我的 PDF 文件中,包含这些字符的字符串在打印时没有包含它们,而且,看起来该字符串中的每个字符都用空格分隔。

我无法选择没有此字符的方式,因为它们包含在名称中。我遇到问题的字符是例如 c 和 hook -> č。

下面我给你举个例子,其中第 1、2、3 和 4 行的第一列中缺少带有钩子(Hook)的 c,然后用空格分隔字符。

<a href="https://s3.postimg.io/cvm679ljn/table.png">table without c with hook</a><br>

你不知道如何解决吗?
我来自捷克共和国,如果有帮助的话(因为字符集)..

最佳答案

在发布 1.4.0 版本后,jsPDF 终于支持了变音符号字符的编码,但在我看来,这是一种非常奇怪的方式。

  1. 找到包含您需要的字符的字体。假设它将是 Calibri。
  2. 转到 C:\Windows\Fonts\Calibri 并将 .ttf 字体文件复制到桌面。
  3. 转到jsPDF FontConverter并选择复制的字体文件。单击创建按钮。
  4. 您应该获得包含如下内容的 JavaScript 文件:

import { jsPDF } from "jspdf"
var font = 'AAEAAAAWAQQAAB...==';
var callAddFont = function () {
this.addFileToVFS('calibri-normal.ttf', font);
this.addFont('calibri-normal.ttf', 'calibri', 'normal');
};
jsPDF.API.events.push(['addFonts', callAddFont]);

this.addFont('calibri-normal.ttf', 'calibri', 'normal'); 中的第二个字符串将是您的字体名称。记住它。

  • 将下载的 javascript 文件添加到您的项目中并将其导入:import '../utils/calibri-normal';
  • 转到初始化 jsPDF 对象并设置字体的位置:
  • const doc = new jsPDF('p', 'pt', 'a4');
    doc.setFont("calibri"); // <-- place here your font name, which you remeber before
    //...
    doc.save('file001.pdf');

  • 如果您使用 jsPDF Autotable,也可以将新字体添加到 autotable 设置中:
  • doc.autoTable({
    head: [['Column1', 'Column2', 'Column3']],
    body: someDataRows,
    styles: {
    font: 'calibri', // <-- place name of your font here
    fontStyle: 'normal',
    },
    margin: { bottom: 60 }
    });

  • 运行您的代码 - 生成的 PDF 应包含具有国家字符集的字体。
  • 关于javascript - jsPDF && jsPDF AutoTable 将特殊字符打印到 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39043007/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com