使用jspdf字体将HTML表格导出为pdf不支持

使用jspdf字体将HTML表格导出为pdf不支持,html,pdf,fonts,jspdf,export-to-pdf,Html,Pdf,Fonts,Jspdf,Export To Pdf,我需要使用jspdf将HTML表导出为pdf文件。我尝试了下面的代码,它正在工作,但它不支持我的字体。这是演示 函数demoFromHTML(){ var pdf=新的jsPDF(“p”、“pt”、“字母”); //源可以是HTML格式的字符串或引用 //到实际的DOM元素,文本将从该元素中删除。 source=$(“#可打印区域”)[0]; //我们支持特殊的元素处理程序。用jQuery风格注册它们 //ID或节点名称的ID选择器。(“#iAmID”、“div”、“span”等) //不支持

我需要使用jspdf将HTML表导出为pdf文件。我尝试了下面的代码,它正在工作,但它不支持我的字体。这是演示

函数demoFromHTML(){
var pdf=新的jsPDF(“p”、“pt”、“字母”);
//源可以是HTML格式的字符串或引用
//到实际的DOM元素,文本将从该元素中删除。
source=$(“#可打印区域”)[0];
//我们支持特殊的元素处理程序。用jQuery风格注册它们
//ID或节点名称的ID选择器。(“#iAmID”、“div”、“span”等)
//不支持任何其他类型的选择器
//(类,指化合物)此时。
SpecialElementHandler={
//id为“bypass”的元素-jQuery样式选择器
“#绕过我”:函数(元素、渲染器){
//true=“在别处处理,绕过文本提取”
返回真值
}
};
边距={
排名:80,
底数:60,
左:40,,
宽度:522
};
//所有坐标和宽度都以jsPDF实例声明的单位表示
//在本例中为“英寸”
pdf.fromHTML(
source,//HTML字符串或DOM元素引用。
margins.left,//x坐标
margins.top,{//y坐标
“宽度”:margins.width,//PDF上内容的最大宽度
“elementHandlers”:specialElementHandlers
},
功能(处置){
//dispose:将最后一行的X,Y添加到PDF中的对象
//这允许在html之后插入新行
保存('Test.pdf');
},利润率);
}

ক্রমিক নং
প্রকল্পের ধরন
সংখ্যা
দৈর্ঘ্য                    	
বরাদ্দের পরিমাণ
ব্যয়ের পরিমাণ
অগ্রগতীর হার %	
1.
রাস্তা নির্মাণ	                                                        
255
14166525
2357.01
2357.01
100
2.
রাস্তা পুনর্নিমাণ	                                                        
2933
162942815
25163.47
25035.20
99.49
3.
রাস্তা মেরামত	                                                        
1576
87554680
14087.86
14077.93
99.93
মোটঃ4764
মোটঃ264664
মোটঃ 41608.34
মোটঃ 41470.14
গড়ঃ
:99.81

到目前为止,jsPDF不支持utf-8字符

检查此链接

编辑: 你也可以试试这个 UTF-8/TTF:
PDF中的14种标准字体仅限于
ASCII代码页
。如果要使用
UTF-8
,必须集成一个自定义字体,该字体提供所需的
字形。jsPDF支持.ttf文件
。因此,如果您想在pdf中包含例如中文文本,您的字体必须具有必要的中文字形。因此,请检查您的字体是否支持所需的字形,否则它将显示空白而不是文本。 要将字体添加到jsPDF,请在
/fontconverter/fontconverter.html
中使用我们的fontconverter。fontconverter将创建一个js文件,其中提供的ttf文件的内容为base64编码字符串和jsPDF的附加代码。您只需将生成的js文件添加到项目中。然后,您就可以在代码中使用setFont方法并编写UTF-8编码的文本了

您可以尝试以下操作(TypeScript):

  • 通过字体转换器转换字体(链接)
  • 然后在代码中包含此字体
  • 从'../../fonts/roboto.font'导入{robotoFont}//转换字体
    pdfDocument=newjspdf();
    pdfDocument.addFileToVFS('Roboto-Regular-normal.ttf',robotoFont);
    pdfDocument.addFont('Roboto-Regular-normal.ttf','Roboto-Regular','normal');
    pdfDocument.setFont('Roboto-Regular')