Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python将HTML/CSS/Javascript文件转换为PDF?_Javascript_Python_Html_Css_Pdf - Fatal编程技术网

使用Python将HTML/CSS/Javascript文件转换为PDF?

使用Python将HTML/CSS/Javascript文件转换为PDF?,javascript,python,html,css,pdf,Javascript,Python,Html,Css,Pdf,我需要使用Python将HTML+CSS+Javascript文件从Django视图转换为PDF 我可以使用xhtml2pdf/PISA,但它只支持HTML和CSS,不支持Javascript,这是必需的 另一个选项是py-wkhtmltox,但它已经很旧了,我还没能让它工作,我只是得到了importorror:libwkhtmltox.so.0:无法打开共享对象文件:没有这样的文件或目录,不知道从哪里获取该文件,然后突然将libwkhtmltox.so重命名为libwkhtmltox.so.0

我需要使用Python将HTML+CSS+Javascript文件从Django视图转换为PDF

我可以使用xhtml2pdf/PISA,但它只支持HTML和CSS,不支持Javascript,这是必需的

另一个选项是py-wkhtmltox,但它已经很旧了,我还没能让它工作,我只是得到了importorror:libwkhtmltox.so.0:无法打开共享对象文件:没有这样的文件或目录,不知道从哪里获取该文件,然后突然将libwkhtmltox.so重命名为libwkhtmltox.so.0,但我得到的是:

Traceback (most recent call last):
  File "pdf_test1.py", line 5, in <module>
    pdf.set_object_setting('path', 'http://www.google.com')
  File "wkhtmltox.pyx", line 118, in wkhtmltox.Pdf.__getattr__ (wkhtmltox.c:1228)
AttributeError: 'wkhtmltox._Pdf' object has no attribute 'set_object_setting'
另一种选择是使用webkit,但我无法从Django视图执行sys.exitapp.exec

我现在唯一能想到的就是从django视图中创建一个单独的webkit python脚本和os.system,从而使sys.exitapp.exec uuu成为可能,从而生成PDF。但我愿意接受其他建议,从django的角度来看,使用os.system有点奇怪


有什么想法吗?

我建议使用。它可以作为linux的静态二进制文件使用,因此您不应该遇到任何共享对象问题。wkhtmltopdf包装webkit并支持javascript,您甚至可以在渲染发生之前告诉它运行任何JS代码的时间。我已经成功地使用它制作了一些页面的PDF,这些页面上有一些复杂的图表生成代码。只需使用subprocess.call启动它。

我建议使用。它可以作为linux的静态二进制文件使用,因此您不应该遇到任何共享对象问题。wkhtmltopdf包装webkit并支持javascript,您甚至可以在渲染发生之前告诉它运行任何JS代码的时间。我已经成功地使用它制作了一些页面的PDF,这些页面上有一些复杂的图表生成代码。只需使用subprocess.call启动它。

为什么需要javascript?Javascript永远不会以pdf格式呈现。如果您使用javascript来呈现样式,请将其移动到css。如果使用javascript动态生成html,则需要在服务器上执行此操作,以便进行pdf转换。我的建议是,进行必要的调整,使其与xhtml2pdf/PISA一起工作。Javascript不是一个选项。这个库似乎支持Javascript,我记得在php和其他库中使用它,它甚至显示警报等等。为什么需要Javascript?Javascript永远不会以pdf格式呈现。如果您使用javascript来呈现样式,请将其移动到css。如果使用javascript动态生成html,则需要在服务器上执行此操作,以便进行pdf转换。我的建议是,进行必要的调整,使其与xhtml2pdf/PISA一起工作。Javascript不是一个选项。这个库似乎支持Javascript,我记得我用php和其他库一起使用它,它甚至显示了警报等等。请注意,如果你在Apache上部署django wkhtmltopdf,为什么要使用subprocess.call启动它呢,如果要在Apache上部署django wkhtmltopdf,请注意它为什么要使用subprocess.call启动