gpt4 book ai didi

支持 Unicode 的 JavaScript pdf 生成库

转载 作者:行者123 更新时间:2023-11-29 21:21:54 25 4
gpt4 key购买 nike

我想在客户端使用 JavaScript 生成一个 pdf 文件。首先,我尝试使用 jsPdf API。但它不适用于像中文这样的 Unicode 字符。

是否有任何选项可以增强 jspdf 以支持 Unicode 或任何其他支持 Unicode 的库。

Pdfmake API 说它支持 Unicode 但当我尝试时它也不起作用,我检查了放置 Unicode 字符的演示示例。

我尝试在 Node.js 中使用 pdfkit,但未正确创建 pdf

var PDFDocument = require("pdfkit");
var fs = require('fs');

var doc = new PDFDocument;

doc.pipe(fs.createWriteStream('output.pdf'));

doc.fontSize(15);
doc.text('Generate PDF! 漢字漢字漢字漢字');

doc.end();

在 pdf 中,它创建为生成 PDF! o[Wo][Wo][Wo][W

另外,我可以在pdfMake中添加多种字体吗

 var fontDescriptors = {
Roboto: {
normal: 'examples/fonts/Roboto-Regular.ttf',
bold: 'examples/fonts/Roboto-Medium.ttf',
italics: 'examples/fonts/Roboto-Italic.ttf',
bolditalics: 'examples/fonts/Roboto-Italic.ttf'
}
};

var printer = new pdfMakePrinter(fontDescriptors);

最佳答案

我将描述一个使用 Node.js 和 PDFKit 的解决方案既然你提到了它,但它也适用于 pdfmake内部使用 PDFKit .

大多数时候,这些库中使用的默认字体不接受中文字符。您必须添加和使用与您需要支持的语言兼容的字体。如果我们取 pdfmake例如,他们使用 Roboto 作为默认字体,而且它确实不接受中文字符。

使用您的代码示例,我们可以使用 Microsoft YaHei 字体 (msyh.ttf) 添加对中文的支持,例如仅需 1 行额外的代码:

var PDFDocument = require("pdfkit");
var fs = require('fs');

var doc = new PDFDocument;

doc.pipe(fs.createWriteStream('output.pdf'));

doc.font('fonts/msyh.ttf');
doc.fontSize(15);
doc.text('Generate PDF! 漢字漢字漢字漢字');

doc.end();

输出看起来像这样:

PDF Output

关于支持 Unicode 的 JavaScript pdf 生成库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38352664/

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