带有wkhtmltopdf的PDFkit可识别mac上的换行符,但不识别ubuntu上的换行符

时间:2016-01-05 17:26:51

标签: python ubuntu wkhtmltopdf

我见过类似的问题,但没有完全像这样 - 我认为这是一个配置问题,但我不知道链中的位置。

我能够在我的mac和我的ubuntu env - ubuntu上使用pdfkit和wkhtmltopdf成功生成pdfs。

ubuntu版本存在轻微的渲染问题,这些问题在Mac上都没有。

最大/最重要的问题是我用这个css实现的分页符:

div.page{
    page-break-after: always !important;
    page-break-inside: avoid !important;
}

这是我生成pdf的python代码(flask):

@app.route('/report/<report_key>.pdf')
def report_pdf(report_key):
    #replace with sso
    user_id = 1
    config = pdfkit.configuration(wkhtmltopdf='/usr/local/bin/wkhtmltopdf')
    try:
        report = _generate_report(report_key)
    except Exception as e:
        logging.error("could not get report for {}: {}".format(report_key, e))
        raise HTTPException
    else:
        template = render_template('report-pdf.html', report=report)

        pdf = pdfkit.from_string(template.encode('ascii', 'ignore').decode('ascii'), False, configuration=config)

        response = make_response(pdf)
        response.mimetype = 'application/pdf'
        response.headers["Content-Disposition"] = "attachment; filename={}_{}.pdf".format(strftime("%Y-%m-%d", gmtime()), report_key)
        return response

我只能假设这是一个用户代理问题 - 然而 - 这没有意义,因为webkit应该识别中断(而且我几乎可以肯定wkhtmltopdf中的WK意味着webkit)。

在ubuntu服务器上我使用xvfb连接pdfkit和wkhtmltopdf - 使用这个命令我到处都看到了:

echo 'xvfb-run --server-args="-screen 0, 1024x768x24" /usr/bin/wkhtmltopdf $*' > /usr/bin/wkhtmltopdf.sh

https://github.com/wkhtmltopdf/wkhtmltopdf/issues/2020

我试过这个但它失败了,我似乎找不到通过pdfkit发送自定义标头(和传播)选项的正确方法。那说我不知道​​这是不是解决方案。

任何帮助都会很棒,Thansk

(顺便说一下,对我来说这是一个新的选项。我退出了FB并且不得不在SO上开始一个新的 - 我的旧用户名有1k的代表 - 无赖。)

0 个答案:

没有答案