有没有办法将html呈现为像PNG一样的图像?我知道它可以用canvas,但我想渲染像div这样的标准html元素.
我看过很多与这个问题非常相似的问题,所以我一开始就犹豫不决.但没有任何建议解决我的问题,我似乎无法弄清楚自己的错误.
对于我为一个客户制作的项目,他们希望能够将客户的报价(使用在线表单生成)转换为PDF.很简单.由于整个项目都是PHP,我使用了以下简单的过程:
直到他们更换服务器一直有效.新服务器有防火墙.
首先,PDF转换步骤返回一个防火墙页面,说明服务器无法建立出站连接.要解决此问题,我直接提供HTML文件而不是链接到它(/var/www/mysite/temp/18382.html而不是www.example.com/temp/18382.html).这转换了HTML,但防火墙阻止了CSS和图像的加载
我可以通过简单地将它直接嵌入到站点而不是链接到它(使用<style>标签)来克服CSS ,但这不适用于图像
我先尝试使用相对链接.我换<img src="http://www.example.com/temp/image.jpg" />了<img src="./image.jpg" />.这没用.
接下来我尝试了,<img src="file:///var/www/mysite/temp/image.jpg" />但这也行不通
我读围绕并通过WkHTMLtoPDF手册看看,我试图像几个不同的命令行参数--enable-local-file-access,--enable /var/www/mysite/temp/以及--images但似乎没有任何解决它
我已经设计了数据帧输出的样式,并让它在 Jupyter Notebook 中显示我想要的方式,但我遇到问题,找不到一种将其保存为图像的好方法。我已经尝试过https://pypi.org/project/dataframe-image/但我的工作方式似乎是 NoneType 因为它是一个样式器对象,并且在尝试使用此库时出错。
这只是整个代码的一个片段,旨在循环几个“col_names”,我想将它们保存为图像(以解释一些编码)。
import pandas as pd
import numpy as np
col_name = 'TestColumn'
temp_df = pd.DataFrame({'TestColumn':['A','B','A',np.nan]})
t1 = (temp_df[col_name].fillna("Unknown").value_counts()/len(temp_df)*100).to_frame().reset_index()
t1.rename(columns={'index':' '}, inplace=True)
t1[' '] = t1[' '].astype(str)
display(t1.style.bar(subset=[col_name], color='#5e81f2', vmax=100, vmin=0).set_table_attributes('style="font-size: 17px"').set_properties(
**{'color': 'black !important',
'border': '1px black solid !important'}
).set_table_styles([{
'selector': 'th',
'props': [('border', '1px black solid !important')]
}]).set_properties( **{'width': '500px'}).hide_index().set_properties(subset=[" "], **{'text-align': 'left'}))
Run Code Online (Sandbox Code Playgroud)
html ×2
css ×1
dataframe ×1
image ×1
javascript ×1
pandas ×1
python ×1
render ×1
wkhtmltopdf ×1