1

我必须在“黑盒”设备上使用相当基本的 Python 2.6(所以没有 Django 或非标准库)。

我必须:

  1. 从浏览器发送一堆html到服务器上的Python脚本
  2. 使用 wkhtmltopdf 进行一些处理并转换为 pdf
  3. 将 PDF 返回到浏览器

我使用两个 Python 脚本 - makePDF 和 getPDF 在 makePDF 结束时,我在服务器上有一个有效的 /tmp/xxx.pdf - 我可以通过 SCP 传输它,它在 acrobat 中打开没有问题 - 没有问题(它应该总是btw 小于 100k - 2mb)。

我的问题是将文件发送回浏览器

这是getPDF

#!/usr/bin/python
from tempfile import *
tempfile=gettempdir()+"/xxx.pdf"
f = open(tempfile, 'r')
pdf = f.read()
f.close()
print 'Content-Type: application/pdf'
print pdf

看起来它应该可以工作 - 如果我在开发工具中观看 http 对话,我可以看到返回 169k 的内容长度,但它没有显示响应数据,如果使用我选择的武器,“高级休息客户端”chrome extn我看到一个响应,其中包含看起来像 kosher pdf 文件的内容:

%PDF-1.4
1 0 obj
<<
/Title (��Briefing Pack)
/Creator (��)
/Producer (��wkhtmltopdf)
/CreationDate (D:20131101095256+10'30')
>>
... etc

浏览器显示“加载 PDF 文档失败”错误

我认为很明显我是一个偶尔的 Python 用户而不是普通用户,所以我怀疑我错过了一些相当基本的东西......

4

1 回答 1

6

在应用程序/pdf 之后添加“\n”后,它对我有用:

print "Content-type: application/pdf\n"
print pdf
于 2013-11-01T01:04:40.167 回答