jsPDF从.html创建PDF并在新窗口中打开
我正在尝试使用jsPDF将.html文件转换为PDF,并在新窗口中打开它 我对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){
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
后打开新窗口。