当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《带有wkhtmltopdf的PDFkit可识别mac上的换行符,但不识别ubuntu上的换行符》经验,为你挑选了0个好方法。

我已经看到了类似的问题,但没有完全像这样 - 我相信它是一个配置问题,但我不知道在链中的哪个位置.

我能够在我的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/.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的代表 - 真可惜.)

推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有