使用 jsPdf 将 html 转换为 pdf 不适用于 React 应用程序
我使用 React 作为前端应用程序,我想使用 jsPdf 将 React 组件的一部分导出为 pdf 文件。
const handleDownload = () => {
const content = document.getElementById('download-content');
const doc = new jsPDF();
doc.html(content);
doc.save("a4.pdf");
}
React 返回组件是:
return (
<body>
<header id='download-content'>
<div>l kldfjlkasjfld asjflkajf ljfasd'flksdasjf lsdasjfsadf</div>
<div>l kldfjlkasjfld asjflkajf ljfasd'flksdasjf lsdasjfsadf</div>
<div>l kldfjlkasjfld asjflkajf ljfasd'flksdasjf lsdasjfsadf</div>
<div>l kldfjlkasjfld asjflkajf ljfasd'flksdasjf lsdasjfsadf</div>
<div>l kldfjlkasjfld asjflkajf ljfasd'flksdasjf lsdasjfsadf</div>
<div>l kldfjlkasjfld asjflkajf ljfasd'flksdasjf lsdasjfsadf</div>
</header>
<footer>
<button onClick={handleDownload}>Download</button>
</footer>
</body>
)
单击 Download
按钮后,我想要一个 pdf 文件,其中包含带有样式的 header
标签数据。但在这里我用这个函数handleDownload
得到了空白的pdf。
我不想使用canvas来生成图像然后制作pdf..如果我使用canvas,那么当页面大小最小化时pdf将会改变。
如何获得准确的 html 生成页面作为 pdf?
I am using react as a frontend application, I want to export a portion of react component as pdf file using jsPdf.
const handleDownload = () => {
const content = document.getElementById('download-content');
const doc = new jsPDF();
doc.html(content);
doc.save("a4.pdf");
}
React return component is:
return (
<body>
<header id='download-content'>
<div>l kldfjlkasjfld asjflkajf ljfasd'flksdasjf lsdasjfsadf</div>
<div>l kldfjlkasjfld asjflkajf ljfasd'flksdasjf lsdasjfsadf</div>
<div>l kldfjlkasjfld asjflkajf ljfasd'flksdasjf lsdasjfsadf</div>
<div>l kldfjlkasjfld asjflkajf ljfasd'flksdasjf lsdasjfsadf</div>
<div>l kldfjlkasjfld asjflkajf ljfasd'flksdasjf lsdasjfsadf</div>
<div>l kldfjlkasjfld asjflkajf ljfasd'flksdasjf lsdasjfsadf</div>
</header>
<footer>
<button onClick={handleDownload}>Download</button>
</footer>
</body>
)
After click on Download
button I want a pdf file which consists header
tag data with style. But here I got blank pdf with this function handleDownload
.
I don't want to use canvas to generate image and then make pdf.. If I use canvas then, when page size minimize the pdf will change.
How can I get exact html generated page as pdf?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
2 件事:
当在 React 中访问 DOM 元素时,你应该始终使用 useRef< /a>
看来 .html 方法是异步的并且需要回调
一个工作示例如下所示:
更新
如果您需要控制大小,可以按照上面引用的文档添加其他属性:
选项 1 - 使用
html2canvas
选项并控制规模:选项 2 -使用
width
和windowWidth
:2 Things:
When getting access to a DOM Element in react you should always use useRef
It appears that .html method is async and requires a callback
A working example would be something like this:
Update
If you need to control the size you can add additional properties as per documentation cited above:
Option 1 - use the
html2canvas
option and control the scale:Option 2 - use
width
andwindowWidth
:如果我正确理解了您的问题
这是我对您的问题的处理方法:
}
我希望此回复能够满足您的需求。
If I understood your question correctly
Here is my approach to your question:
}
I hope this response meets your needs.