我是reactJs的新手。我创建了一个生成报告的组件,我将它作为节点模块提取到我的php应用程序中,在那里我使用main.version.js,main.version创建了一个智能模板(.tpl)。构建中的css文件,并通过数据属性将所需数据传递给组件,并且我能够查看报告。现在问题是当我们从浏览器点击打印超链接时我必须生成一个pdf。为此,我们使用wkhtmltopdf转换器,使用它我们能够合并不同的pdf并生成单个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>
答案 0 :(得分:1)
如果我理解正确curl
是一个命令行实用程序,并且您将其指向包含反应代码的网页的网址。您正试图让该命令行实用程序从生成反应的页面渲染为PDF。
如果这是正确的,我认为问题是react是一种客户端语言,所以它需要javascript来实际呈现。
您可以通过从命令行加载node.js
的相同网址来查看脚本尝试呈现的html。您将看到它只包含一些脚本标记和一个空的包装器,您的应用程序将在其中装载。
有些方法可以使用calc
来渲染react.js,或者您可以查看其他生成PDF的方法。 This library似乎可以让您从浏览器生成PDF。
可以在此处找到有关如何解决此问题的更多示例:http://blog.stahlmandesign.com/export-html-to-pdf-how-hard-can-it-be/