Internet explorer jsPDF-对象不';t支持属性或方法';表';

Internet explorer jsPDF-对象不';t支持属性或方法';表';,internet-explorer,jspdf,Internet Explorer,Jspdf,您好,我正在尝试将一个具有引导CSS类的JSP页面导出为PDF。我得到一个错误:行中的对象不支持属性或方法“table” renderer.pdf.table(renderer.x, renderer.y, table2json.rows, table2json.headers, { 在jspdf.plugin.from_html.js中。我正在试IE 10和11 除了jquery、bootstrap类等,我还将jspdf.plugin.from_html.js、jspdf.js、split_

您好,我正在尝试将一个具有引导CSS类的JSP页面导出为PDF。我得到一个错误:行中的对象不支持属性或方法“table”

renderer.pdf.table(renderer.x, renderer.y, table2json.rows, table2json.headers, {
在jspdf.plugin.from_html.js中。我正在试IE 10和11

除了jquery、bootstrap类等,我还将jspdf.plugin.from_html.js、jspdf.js、split_text_to_size.js、standard_font_metrics.js、html2canvas.js、bluebird.min.js包含在我的JSP中

<link href="../bootstrap-3.3.7-dist/css/bootstrap-theme.min.css" rel='stylesheet' type='text/css' />
<script src="../jscripts/jsPDF-master/jsPDF-master/src/jspdf.js"> </script>
<script src="../jscripts/jsPDF-master/jsPDF-master/jspdf.plugin.from_html.js"> </script>
<script src="../jscripts/jsPDF-master/jsPDF-master/src/modules/split_text_to_size.js"> </script>
<script src="../jscripts/jsPDF-master/jsPDF-master/src/modules/standard_fonts_metrics.js"> </script>
<script src="../jscripts/html2canvas.js"> </script>
<script src="../jscripts/bluebird.min.js"> </script>
<script>
function demoFromHTML() {
        /*var pdf = new jsPDF('p', 'pt', 'letter');
  //pdf.canvas.height = 72 * 11;
  //pdf.canvas.width = 72 * 8.5;

  pdf.fromHTML(document.body);

  pdf.save('test.pdf');*/
        var pdf = new jsPDF('p', 'pt', 'letter');
        // source can be HTML-formatted string, or a reference
        // to an actual DOM element from which the text will be scraped.
        source = $('body')[0];

        // we support special element handlers. Register them with jQuery-style 
        // ID selector for either ID or node name. ("#iAmID", "div", "span" etc.)
        // There is no support for any other type of selectors 
        // (class, of compound) at this time.
        specialElementHandlers = {
            // element with id of "bypass" - jQuery style selector
            '#bypassme': function (element, renderer) {
                // true = "handled elsewhere, bypass text extraction"
                return true
            }
        };
        margins = {
            top: 80,
            bottom: 60,
            left: 40,
            width: 522
        };
        // all coords and widths are in jsPDF instance's declared units
        // 'inches' in this case
        pdf.fromHTML(
            source, // HTML string or DOM elem ref.
            margins.left, // x coord
            margins.top, { // y coord
                'width': margins.width, // max width of content on PDF
                'elementHandlers': specialElementHandlers
            },

            function (dispose) {
                // dispose: object with X, Y of the last line add to the PDF 
                //          this allow the insertion of new lines after html
                pdf.save('Test.pdf');
            }, margins
        );
    }
</script>

函数demoFromHTML(){
/*var pdf=新的jsPDF(“p”、“pt”、“字母”);
//pdf.canvas.height=72*11;
//pdf.canvas.width=72*8.5;
pdf.fromHTML(document.body);
保存('test.pdf')*/
var pdf=新的jsPDF(“p”、“pt”、“字母”);
//源可以是HTML格式的字符串或引用
//到实际的DOM元素,文本将从该元素中删除。
source=$('body')[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');
},利润率
);
}
编辑:我按照@Deepak MSFT的建议进行了尝试,谢天谢地,它现在正在生成PDF(在IE 11中,它工作正常,在Chrome中不工作,但无论如何,我需要它只在IE中工作)。但是现在有一个关于表格呈现的问题,我的页面有很多文本和一些表格,表格看起来很大,表格文本重叠。我尝试使用jsPDF+html2canvas来保留CSS样式,但它不起作用(尽管控制台显示“已完成渲染”,但没有PDF)。作为一种解决方法,我用html列表替换了表格,现在我的PDF文本大小等正常,但显示了一个错误:

此页上存在错误。Acrobat可能无法正确显示页面。>请与创建PDF文档的人员联系以更正问题


如有任何帮助,我们将不胜感激。

请确认您的代码是否与其他浏览器兼容?你的推荐人可能有问题。请检查是否有polyfil丢失。@Deepak MSFT我曾在Chrome中试用过,但在同一生产线上,它也不起作用。错误为未捕获类型错误:renderer.pdf.table不是函数。另外,你能告诉我应该用什么聚乙烯薄膜吗?上面的代码中显示了已经存在的代码。我建议您使用此示例进行测试。Ref:您可以尝试进一步修改它。@Deepak MSFT我已经尝试了所有的html2canvas+jsPDF链接,但没有一个在IE11中工作。。。每次我在控制台中完成渲染,但没有PDF文件时。。。单独使用jsPDF会把PDF中的表格弄得一团糟。。。如果您试图在IE浏览器中显示PDF,我会错过什么?我不会展示那个。尝试为IE浏览器下载生成的PDF文件。请确认您的代码是否与任何其他浏览器一起工作?你的推荐人可能有问题。请检查是否有polyfil丢失。@Deepak MSFT我曾在Chrome中试用过,但在同一生产线上,它也不起作用。错误为未捕获类型错误:renderer.pdf.table不是函数。另外,你能告诉我应该用什么聚乙烯薄膜吗?上面的代码中显示了已经存在的代码。我建议您使用此示例进行测试。Ref:您可以尝试进一步修改它。@Deepak MSFT我已经尝试了所有的html2canvas+jsPDF链接,但没有一个在IE11中工作。。。每次我在控制台中完成渲染,但没有PDF文件时。。。单独使用jsPDF会把PDF中的表格弄得一团糟。。。如果您试图在IE浏览器中显示PDF,我会错过什么?我不会展示那个。尝试为IE浏览器下载生成的PDF文件。