4

我正在尝试转换htmlpdf.
如果我不包含任何图像,则转换工作正常,但如果我包含图像,则会失败并出现错误代码3和 Description BackendError
我指的是在我的资产中包含为static/thumb.jpghtml的图像资产。

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
4

2 回答 2

2

这可能是因为您在 app.yaml 中映射为静态资产的项目无法被您的应用代码访问。尝试在代码中的某处包含图像,或者在 app.yaml 中不将图像映射为静态。

听起来这是因为 html 资产中的 img src 路径应该与资产路径匹配。

于 2012-01-20T17:17:20.990 回答
0

在我的情况下,当我引用未作为资产提供的图像时生成了 BackendError。

奇怪的是,当一个图像被 CSS 引用,但没有应用 CSS 规则时,它可以正常工作。

当 HTML 更改并且之前未使用的 CSS 规则(引用丢失的图像资源)被应用到新的/更改的 HTML 元素时,错误开始出现。

因此,只要不使用这些 CSS 规则,就可以在 CSS 中引用缺失的图像资源。

于 2012-05-03T10:59:04.303 回答