我想下载带有阿拉伯字体的pdf文件作为响应,但没有找到任何解决方案。我目前正在使用jsPdf,但是无法正确呈现阿拉伯字体
let doc = new PDFDocument
let doc = new pdf();
doc.setFontSize(10);
doc.rect(20, 20, doc.internal.pageSize.getWidth() - 40,
doc.internal.pageSize.getHeight() - 40, 'S');
doc.setTextColor(128,0,128);
doc.text("Date", 30, 25);
doc.text(this.state.date, 50, 25);
doc.text("السلام عليكم", 30, 35);
doc.text("Quantity", 120, 35);
let distance = 30;
doc.save("data.pdf");
预先感谢
答案 0 :(得分:1)
首先下载所需的字体。然后转到https://rawgit.com/MrRio/jsPDF/master/fontconverter/fontconverter.html
并转换和下载文件。将其移动到您的项目目录并将其导入所需的模块。
您也可以将大字符串放入变量 const myFont "VVV....VVV"
然后像这样使用它。
doc.addFileToVFS("MyFont.ttf", myFont);
doc.addFont("MyFont.ttf", "MyFont", "normal");
doc.setFont("MyFont");
现在您需要右对齐文本。
doc.text("Arabic Text", 200, 20, "right");
/*
200 is the x coordinate and marks the starting position of the text from right.
y coordinate is the distance from the top of the page.
*/
答案 1 :(得分:0)
您是否尝试添加{lang:'value'}选项?
doc.text(['لا إله إلا الله محمد رسول الله', 'لا إله إلا الله', 'a'], 100, 100, { lang: 'ar' });
答案 2 :(得分:0)
按照以下步骤可以将阿拉伯字体打印为pdf
使用jspdf
将图像转换为pdfconst input = document.getElementById('divIdToPrint');
html2canvas(input)
.then((canvas) => {
const imgData = canvas.toDataURL('image/png');
const pdf = new jsPDF();
pdf.addImage(imgData, 'PNG', 0, 0);
pdf.save("download.pdf");
});
此blog
中的详细信息