gpt4 book ai didi

javascript - 使用 jsPDF 从 iframe 创建 PDF

转载 作者:行者123 更新时间:2023-12-01 07:39:36 25 4
gpt4 key购买 nike

好的,我已经在互联网上搜索了解决方案,但找不到任何东西。我正在尝试找到一种将 iframe 的内容保存为 PDF 的方法。我总是遇到一个问题,PDF 是空白的。看来jsPDF是唯一的办法了。我有点想知道这不起作用的原因是否是由于 fromHTML() 函数。我不知道。如果你们中有人找到了解决方案,我将非常感激!!

以下是您可以在 HTML 文件中尝试的一些示例代码:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.2/jspdf.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript"></script>
<script>
function demoFromHTML() {
var pdf = new jsPDF('p', 'pt', 'letter');
source = $('#frame')[0];
specialElementHandlers = {
'#bypassme': function (element, renderer) {
return true
}
};
margins = {
top: 80,
bottom: 60,
left: 40,
width: 522
};
pdf.fromHTML(
source,
margins.left,
margins.top, {
'width': margins.width,
'elementHandlers': specialElementHandlers
},

function (dispose) {
pdf.save('Test.pdf');
}, margins);
}
</script>
<button onclick="javascript:demoFromHTML();">PDF</button>
<iframe id="frame" src='https://wikipedia.org/wiki/Main_Page' style="width: 75%;height: 75%;"></iframe>

最佳答案

浏览这篇文章:Convert HTML/CSS Content to a Sleek Multiple Page PDF File Using jsPDF JavaScript library 。提供的脚本允许您将任何 HTML 元素转换为 PDF。我稍微修改了 generate() 函数,以便它接受任何 HTML 元素 ID 名称并将其导出为 PDF 文件:

generate = function(doc)
{
var pdf = new jsPDF('p', 'pt', 'a4');
pdf.setFontSize(18);
pdf.fromHTML(document.getElementById(doc),
margins.left, // x coord
margins.top,
{
// y coord
width: margins.width// max width of content on PDF
},function(dispose) {
headerFooterFormatting(pdf, pdf.internal.getNumberOfPages());
},
margins);

var iframe = document.createElement('iframe');
iframe.setAttribute('style','position:absolute;right:0; top:0; bottom:0; height:100%; width:650px; padding:20px;');
document.body.appendChild(iframe);

iframe.src = pdf.output('datauristring');
};

它在 Chrome 上 100% 运行,但我不确定其他浏览器是否有效。

关于javascript - 使用 jsPDF 从 iframe 创建 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53110078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com