Angularjs html和画布中的字体类型不同

Angularjs html和画布中的字体类型不同,angularjs,html2canvas,Angularjs,Html2canvas,我使用html2canvaslib将我的html页面呈现为图像,然后使用jspdf将其转换为PDF。但不知何故,我的html页面字体与PDF文件中的字体不同 $scope.ConvertToPdf = function(obj){ $scope.downloadPdfArr = []; $scope.downloadPdfArr = angular.copy(obj); html2canvas($("#widget"),{

我使用html2canvaslib将我的html页面呈现为图像,然后使用jspdf将其转换为PDF。但不知何故,我的html页面字体与PDF文件中的字体不同

$scope.ConvertToPdf = function(obj){
        $scope.downloadPdfArr = [];
        $scope.downloadPdfArr = angular.copy(obj);

        html2canvas($("#widget"),{
            onrendered : function(canvas){

                var imgData = canvas.toDataURL(
                    'image/png');              
                var doc = new jsPDF();
                doc.addImage(imgData, 'PNG', 10, 10,200,100);
                doc.save('sample-file.pdf');


            }
        })
    }
这是我的html页面

这是我得到的PDF文件


html2canvas并不声称可以处理所有类型的字体-如果页面上有字体样式属性,则可能没有正确处理或根本没有处理。不同浏览器之间也可能有所不同-您使用哪个浏览器获得此结果

您可以尝试在开发工具中调试html2canvas源代码,例如函数Font(family,size)和cloneNode(node,javascriptEnabled),以查看页面的HTML是如何被精确处理的,并查看DOM节点对象的内部