2

我正在尝试使用 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)
4

2 回答 2

3

感谢CT朱的帮助。只是放下一个可行的,供参考:

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)
于 2014-04-29T07:55:46.577 回答
3

xhmlt2pdf不适用于所有网站,一方面,它不适用于yahoo.com. 但它在这里不起作用的原因是您没有提供实际的 HTML 文件,pisa而是提供了 URL,您想首先获取 HTML,例如使用urllib2

url=urllib2.urlopen('http://sheldonbrown.com/web_sample1.html')
srchtml=url.read()
pisa.showLogging()
convertHtmlToPdf(srchtml, outputFilename)

它会起作用。这是一个非常简单的 HTML 示例。

于 2014-04-29T07:32:17.687 回答