jsPDF从.html创建PDF并在新窗口中打开

jsPDF从.html创建PDF并在新窗口中打开,html,pdf,window,pdf-generation,jspdf,Html,Pdf,Window,Pdf Generation,Jspdf,我正在尝试使用jsPDF将.html文件转换为PDF,并在新窗口中打开它 我对PDF的评价如下: function PDFFromHTML() { var doc = new jsPDF(); // We'll make our own renderer to skip this editor var specialElementHandlers = { '#editor': function(element, renderer){

我正在尝试使用jsPDF将.html文件转换为PDF,并在新窗口中打开它

我对PDF的评价如下:

function PDFFromHTML() {
    var doc = new jsPDF();

    // We'll make our own renderer to skip this editor
    var specialElementHandlers = {
            '#editor': function(element, renderer){
                    return true;
            }
    };

    // All units are in the set measurement for the document
    // This can be changed to "pt" (points), "mm" (Default), "cm", "in"
    doc.fromHTML('ticket.html', 15, 15, {
            'width': 170, 
            'elementHandlers': specialElementHandlers
    });
}
doc.output('dataurlnewwindow');
我需要类似window.open的东西在新窗口中打开此pdf文件,但我找不到方法


关于这一点,

据我所知,除了直接查看API和现有API之外,没有太多关于API的文档

我可以通过在
doc.fromHTML(..)
之后添加对
output
API的调用,在新窗口中打开PDF文件,指定
dataurlnewwindow
参数如下:

function PDFFromHTML() {
    var doc = new jsPDF();

    // We'll make our own renderer to skip this editor
    var specialElementHandlers = {
            '#editor': function(element, renderer){
                    return true;
            }
    };

    // All units are in the set measurement for the document
    // This can be changed to "pt" (points), "mm" (Default), "cm", "in"
    doc.fromHTML('ticket.html', 15, 15, {
            'width': 170, 
            'elementHandlers': specialElementHandlers
    });
}
doc.output('dataurlnewwindow');
至于为什么
doc.fromHTML('ticket.html')
不起作用,再次提到,
source
参数需要是:

HTML格式的字符串或对实际DOM元素的引用

因此,您可能必须使用jquery方法加载
ticket.html
的内容。从本质上讲,它看起来像:

$.get('ticket.html', function(content){
    doc.fromHTML(content), 15, 15, {'width': 170, 'elementHandlers': specialElementHandlers});
    doc.output('dataurlnewwindow');
}, 'html');

我意识到doc.fromHTML('ticket.html'也不起作用…这个jsPDF很难使用..我只需要将我的.html转换为PDF并在新窗口中打开它如果你喜欢这个答案,你能接受和/或更新它吗?谢谢。帮助我正确加载ticket.html,但我仍然不知道如何在新窗口中以PDF格式打开该文档对象在新窗口中打开该文档对象W窗口,只需添加<代码> doc.Outlook('DATAURLNEWORKWindow);到您的代码;在<代码> doc.FuffHTML>()/代码> .MMM..打开一个空白PDF,在空白PDF的中间用“未定义”一词……我认为$[('Vo.Cudie内容))加载(‘票证.html’);不做它的工作……这里记住的关键是<代码> $.Load()/<代码>(和
$.get()
)是异步AJAX调用。为了简化,我更新了要使用的答案,并将代码移动到回调函数中打开新窗口。这将确保在加载
ticket.html
后打开新窗口。