【问题标题】:How can we deploy a django application on aws if we are using wkhtmltopdf for pdfkit?如果我们将 wkhtmltopdf 用于 pdfkit,我们如何在 aws 上部署 django 应用程序?
【发布时间】:2020-11-10 22:45:13
【问题描述】:

我在 Windows 上使用 pdfkit 将 HTML URL 转换为 pdf 文件并将其作为响应发送。我在我的系统上安装了 wkhtmltopdf,因为它是使用 pdfkit 的依赖项。我正在将存储在我的驱动器中的 wkhtmtopdf 的路径添加到 pdfkit 的配置值中。一切正常,但我担心的是,路径在我的应用程序中是硬编码的,现在如果我想对我的应用程序进行 dockerize 并将其部署在亚马逊上会发生什么。 这是我正在使用的代码:

            path_wkthmltopdf = 'C:\\Program Files\\wkhtmltopdf\\bin\\wkhtmltopdf.exe'
            config = pdfkit.configuration(wkhtmltopdf=path_wkthmltopdf)
            pdf = pdfkit.from_url(order["invoice_url"], False, configuration=config)
            response = HttpResponse(pdf, content_type='application/pdf')
            filename = "Invoice_" + order["order_id"] + "_" + datetime.today().strftime('%d-%m-%Y') + ".pdf"
            content = "attachment; filename=" + filename
            response['Content-Disposition'] = content
            return response

有没有更好的方法来处理这个 HTML URL 到 PDF 的转换?

【问题讨论】:

  • 将 .exe 复制到您的项目中。更好的方法是在 docker config 中执行 wget+unzip。(即安装命令)
  • 你的意思是,把wkhtmltopdf的.exe文件复制到我的项目中,然后一边dockerizing一边安装?这很好,但是我在代码中硬编码的配置路径呢?

标签: python django amazon-ec2 wkhtmltopdf pdfkit


【解决方案1】:

您可以使用 docker 文件将 wkhtml2pdf 添加到您的 docker:

https://github.com/openlabs/docker-wkhtmltopdf/blob/master/Dockerfile

# Download and install wkhtmltopdf
RUN apt-get install -y build-essential xorg libssl-dev libxrender-dev wget gdebi
RUN wget http://downloads.sourceforge.net/project/wkhtmltopdf/0.12.2.1/wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
RUN gdebi --n wkhtmltox-0.12.2.1_linux-trusty-amd64.deb

【讨论】:

  • 当然,但是我已经在我的代码中硬编码了 wkhtmltopdf 的路径以用于 pdfkit 配置。我必须对我的代码进行哪些更改?
猜你喜欢
  • 2018-04-24
  • 1970-01-01
  • 1970-01-01
  • 2022-12-19
  • 1970-01-01
  • 1970-01-01
  • 2020-09-22
  • 2014-12-07
  • 1970-01-01
相关资源
最近更新 更多