Python使用xhtml2pdf将网页打印为PDF
我正在尝试使用xhtml2pdf将网页打印成本地的PDF文件。下面有一个例子。
这个例子可以运行,并且没有报错。但是它并没有把整个网页转换成PDF,而只是写了一句话。在这个例子中,只有'http://www.yahoo.com/'被写入了PDF文件。
我该如何才能把整个网页转换成PDF呢?
from xhtml2pdf import pisa
sourceHtml = 'http://www.yahoo.com/'
outputFilename = "test.pdf"
def convertHtmlToPdf(sourceHtml, outputFilename):
resultFile = open(outputFilename, "w+b")
pisaStatus = pisa.CreatePDF(sourceHtml,resultFile)
resultFile.close()
return pisaStatus.err
if __name__=="__main__":
pisa.showLogging()
convertHtmlToPdf(sourceHtml, outputFilename)
2 个回答
3
感谢CT Zhu的帮助。这里记录一个可用的代码,供大家参考:
from xhtml2pdf import pisa
import urllib2
url=urllib2.urlopen('http://sheldonbrown.com/web_sample1.html')
sourceHtml=url.read()
pisa.showLogging()
outputFilename = "test555.pdf"
def convertHtmlToPdf(sourceHtml, outputFilename):
resultFile = open(outputFilename, "w+b")
pisaStatus = pisa.CreatePDF(sourceHtml,resultFile)
resultFile.close()
return pisaStatus.err
if __name__=="__main__":
pisa.showLogging()
convertHtmlToPdf(sourceHtml, outputFilename)
3
xhmlt2pdf
并不是所有网站都能用,比如它在yahoo.com
上就不行。这里面的问题是,你没有把实际的HTML文件给pisa
,而是给了一个网址。你需要先获取HTML内容,比如可以用urllib2
来做到这一点:
url=urllib2.urlopen('http://sheldonbrown.com/web_sample1.html')
srchtml=url.read()
pisa.showLogging()
convertHtmlToPdf(srchtml, outputFilename)
这样就可以正常工作了。这是一个非常简单的HTML示例。