我是刚开始做反应的。我创建了一个组件来生成一个报告,我把它作为节点模块拉到我的php应用程序中,在那里我创建了一个智能模板(.tpl),我在构建中使用了main.version.js、main.version.css文件,并通过数据属性将所需的数据传递给组件,并且我能够查看报告。现在的问题是,当我们从浏览器点击打印超链接时,我必须生成一个pdf。为此,我们使用wkhtmltopdf转换器,我们可以使用它合并不同的pdfs并生成一个pdf。这里我得到了一页空白。如果我给出的一些文本工作良好,但不工作的反应组件的内容。这个反应组件失败了。请引导我朝正确的方向走。
<html>
<head>
<link href="{$baseUrl}node_modules/react-component-report/build/main.xxx.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="root" data-title="Hello" data-name="World" data-reportcontent='{literal}{"users": [11,5],"dates": "2017-09-17" }{/literal}'></div>
<script src="{$baseUrl}node_modules/react-component-report/build/main.xxx.js"></script>
</body>
</html>发布于 2017-09-30 04:34:45
如果我正确地理解了wktohtml是一个命令行实用工具,并且您将它指向您的网页的url,其中包含了react代码。您正在尝试使命令行实用程序将生成的页面呈现为PDF。
如果这是正确的,我认为问题是,react是一种客户端语言,因此它需要javascript来实际呈现。
通过从命令行用curl加载相同的url,您可以看到脚本试图呈现的html。您将看到它只包含一些脚本标记和一个空包装,您的应用程序将在那里挂载。
有使用react.js服务器呈现node.js的方法,或者可以查看生成PDF的其他方法。这个图书馆看起来可能允许您从浏览器中生成PDF。
关于如何解决这个问题的更多例子可以在这里找到:http://blog.stahlmandesign.com/export-html-to-pdf-how-hard-can-it-be/
https://stackoverflow.com/questions/46499512
复制相似问题