我正在尝试将html
转换为pdf
如果我不包含任何图像,转换工作正常,但如果我包含图像则失败,错误代码 3 和描述 BackendError 。
我在我的html
资产中引用了包含为 static / thumb.jpg 的图片资源。
def prepare_bar_attachment(bars):
asset = conversion.Asset('text/html',
render_template('bar/print.html',
bars=bars),
'print.html')
thumbnail = None
if bar.thumbnailurl:
img_response = urlfetch.fetch(bar.thumbnailurl)
if img_response.status_code == 200:
thumbnail = conversion.Asset('image/jpeg', img_response.content,
'thumb.jpg')
conv = conversion.Conversion(asset, 'application/pdf')
if thumbnail:
conv.add_asset(thumbnail)
result = conversion.convert(conv)
if result.assets:
attachment = [('Bars.pdf', result.assets[0].data)]
else:
attachment = []
app.logger.error('Error Code: %s\nDescription\%s'%\
(result.error_code, result.error_text))
return attachment
答案 0 :(得分:2)
这可能是因为您的应用程序代码无法访问您在app.yaml中映射为static资产的项目。尝试在代码中的某处包含图像,或者在app.yaml中将图像映射为静态。
听起来这是因为html资产中的img src路径应与资产路径匹配。
答案 1 :(得分:0)
在我的情况下,当我引用未作为资产提供的图像时,会生成BackendError。
奇怪的是,当一个图像被CSS引用,但CSS规则没有应用时,它工作正常。
当HTML发生变化时,错误开始显现,并且先前未使用的CSS规则(引用丢失的图像资源)已应用于新的/已更改的HTML元素。
因此,只要不自行使用这些CSS规则,就可以引用CSS中缺少的图像资源。