我正在尝试使用xhtml2pdf将网页打印到本地磁盘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)
答案 0 :(得分:3)
xhmlt2pdf
无法与所有网站一起使用,因为它不适用于yahoo.com
。但是它不能在这里工作的原因是你没有向pisa
提供实际的HTML文件,而是提供URL,你想首先获取HTML,例如使用urllib2
:
url=urllib2.urlopen('http://sheldonbrown.com/web_sample1.html')
srchtml=url.read()
pisa.showLogging()
convertHtmlToPdf(srchtml, outputFilename)
它会起作用。这是一个非常简单的HTML示例。
答案 1 :(得分:3)
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)