jsPDF-pdf可以通过用户输入生成,但当前页面不显示更改
jsPDF pdf to generate with user input, but current page does not display changes
所以,目前我有一个带有HTML/form复选框的静态页面。只有选中的复选框才会生成JS pdf;内容通过父div从"checkbox"交换到我的HTML。问题是在点击"生成PDF"按钮之后。当前页面,然后显示所做的更改以及解析为PDF的内容,只有PDF应该通过此代码生成。当前页面根本不应该更改。有什么想法吗基本上,在"下载PDF"被点击后,PDF会通过上面描述的用户输入下载,并在下面用JS编写;页面本身不应反映这些更改。目前PDF生成准确,但页面也会更改为PDF。
$(document).ready(function() {
texts = {
item1: 'Item Box 1 Content <strong>html</strong> right here! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
item2: 'Now its Item Box 2 <strong>html</strong> content here ! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
item3: 'This is the example <strong>html</strong> of Item box 4! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
item4: 'Item box number 5 <strong>html</strong> content is here! Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
}
$("#container").css('background', '#fff')
$('.download-pdf').click(function() {
// this should trigger the below to generate in the PDF,
// not display it on page > then generate to pdf. Just pdf!
notChecked = $("input[type=checkbox]:not(:checked)").parent();
notChecked.hide();
yesChecked = $("input[type=checkbox]:checked").parent();
$.each(yesChecked, function( index, el ) {
$(el).show().html(texts[$(el).attr('id')]);
});
var pdf = new jsPDF('p', 'pt', 'a4');
pdf.addHTML(document.getElementById('records'), function() {
setTimeout(function(){
location.reload();
},3000);
});
var file = 'test';
if (typeof doc !== 'undefined') {
doc.save(file + '.pdf');
} else if (typeof pdf !== 'undefined') {
setTimeout(function() {
pdf.save(file + '.pdf');
// $("#item4").hide();
}, 2000);
} else {
alert('Error 0xE001BADF');
}
});
$('.checkmate').on('click', function() {
if ($(this).is(':checked'))
$(this).parent('div').css({"color":"white","background":"green"});
else
$(this).parent('div').css('background-color', '');
});
});
这是一个示例JSFIDDLE演示。。为了帮助说明(然而,PDF生成功能需要实时服务器)因此,如果你可以想象保持"静态页面复选框条件>PDF"的功能,而不是静态页面本身,那么就改变用户所在的位置。这就是目标。
jsPDF库。
您可以将pdf保存在addHTML
的回调中,如下所示
var pdf = new jsPDF('p', 'pt', 'a4');
pdf.addHTML(document.getElementById('records'), function(){
pdf.save('test.pdf');
});
jsfiddle
更新
当前页面根本不应更改
您正在对DOM进行更改,因此页面将发生更改。如果不想编辑当前DOM,则需要克隆节点并将其传递给pdf.save()
。这不起作用,我在文档中找不到任何原因,因为它太过时了。用户保存文档后,您仍然可以重新加载页面,这将使DOM恢复到默认状态。
相关文章:
- javascript函数将当前时间显示为html选择标记的预选值
- 地图框如何在当前位置显示标记
- 当PROTRACTOR元素后面有元素时,我怎么能知道当前的显示元素
- 根据当前网站显示内容
- 获取当前页面的URL并将其附加到Facebook共享链接(使用javascript)
- 带有
标记的 jQuery 分页显示单个页面中的所有页面,如果它里面有其他标记
- 如何在 safari 中获取当前页面的 url 和标题
- 如何根据当前日期显示两周期间的第一天
- 在 asp.net 中将内容页显示为弹出窗口,使用
- Chrome扩展程序将外部JavaScript添加到当前页面的html中
- 在服务器更改时自动更新/重新加载当前页面的库
- 检测具有 href 属性的“A”标记,该属性等于当前页面的 URL
- 如何定义相对于当前页面的 URL w jQuery
- 我想通过javascript生成当前页面的url,并添加两个参数
- 从当前页面的URL中删除哈希
- 如何在手风琴导航菜单中设置当前页面子链接及其父链接的样式
- 如何显示每页显示多少项目的信息,AngularJs Pagination
- Javascript获取当前页面的html
- 如何在文本输入中显示当前页面的url,供用户复制
- 如何使用Jquery和Javascript在当前页面的Div中显示错误消息