我一直在构建一个投票应用程序。人们能够创建他们的民意调查并获取有关他们提出的问题的数据。我想添加让用户以 PDF 格式下载结果的功能。
例如,我有两个组件负责获取问题和数据。
<QuestionBox />
<ViewCharts />
我正在尝试将两个组件输出到 PDF 文件中。然后,用户可以下载此 PFD 文件。我发现了一些允许在组件内呈现 PDF 的包。但是,我找不到可以从包含虚拟 DOM 的输入流中生成 PDF 的工具。如果我想从头开始实现这一目标,我应该遵循什么方法?
原文由 Ozan 发布,翻译遵循 CC BY-SA 4.0 许可协议
将 react 渲染为 pdf 通常很痛苦,但有一种方法可以使用画布。
这个想法是转换: HTML -> Canvas -> PNG(或 JPEG) -> PDF
要实现上述目标,您需要:
该代码段在此处不起作用,因为未导入所需的文件。
此答案 中使用了另一种方法,其中中间步骤被删除,您可以简单地从 HTML 转换为 PDF。 jsPDF文档中也有这样做的选项,但是从个人观察,我觉得先将dom转成png的时候精度更高。
更新 0:2018 年 9 月 14 日
通过这种方法创建的 pdf 上的文本将无法选择。如果这是一个要求,您可能会发现 这篇文章 很有帮助。