当前位置: 首页 > 面试题库 >

如何使用Python将网页转换为PDF

洪璞瑜
2023-03-14
问题内容

我正在寻找使用Python将网页打印为本地文件PDF的解决方案。很好的解决方案之一是使用Qt。

由于我在安装PyQt4时遇到问题,因此一开始并不起作用,因为它给出了错误消息,例如“ ImportError:没有名为PyQt4.QtCore的模块”和“ImportError:没有名为PyQt4.QtCore的模块”。

这是因为PyQt4没有正确安装。我曾经将库放在C:\ Python27 \ Lib中,但是它不适用于PyQt4。

实际上,它只需要从下载(注意要使用的正确Python版本),然后将其安装到C:\Python27(我的情况)。而已。


问题答案:

多亏了下面的帖子,无论页面有多少页,我都能添加要打印的网页链接地址并在生成的PDF上显示时间。

要共享脚本,如下所示:

import time
from pyPdf import PdfFileWriter, PdfFileReader
import StringIO
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter
from xhtml2pdf import pisa
import sys 
from PyQt4.QtCore import *
from PyQt4.QtGui import * 
from PyQt4.QtWebKit import *

url = 'http://www.yahoo.com'
tem_pdf = "c:\\tem_pdf.pdf"
final_file = "c:\\younameit.pdf"

app = QApplication(sys.argv)
web = QWebView()
#Read the URL given
web.load(QUrl(url))
printer = QPrinter()
#setting format
printer.setPageSize(QPrinter.A4)
printer.setOrientation(QPrinter.Landscape)
printer.setOutputFormat(QPrinter.PdfFormat)
#export file as c:\tem_pdf.pdf
printer.setOutputFileName(tem_pdf)

def convertIt():
    web.print_(printer)
    QApplication.exit()

QObject.connect(web, SIGNAL("loadFinished(bool)"), convertIt)

app.exec_()
sys.exit

# Below is to add on the weblink as text and present date&time on PDF generated

outputPDF = PdfFileWriter()
packet = StringIO.StringIO()
# create a new PDF with Reportlab
can = canvas.Canvas(packet, pagesize=letter)
can.setFont("Helvetica", 9)
# Writting the new line
oknow = time.strftime("%a, %d %b %Y %H:%M")
can.drawString(5, 2, url)
can.drawString(605, 2, oknow)
can.save()

#move to the beginning of the StringIO buffer
packet.seek(0)
new_pdf = PdfFileReader(packet)
# read your existing PDF
existing_pdf = PdfFileReader(file(tem_pdf, "rb"))
pages = existing_pdf.getNumPages()
output = PdfFileWriter()
# add the "watermark" (which is the new pdf) on the existing page
for x in range(0,pages):
    page = existing_pdf.getPage(x)
    page.mergePage(new_pdf.getPage(0))
    output.addPage(page)
# finally, write "output" to a real file
outputStream = file(final_file, "wb")
output.write(outputStream)
outputStream.close()

print final_file, 'is ready.'


 类似资料:
  • 本文向大家介绍如何使用Python将HTML转换为PDF,包括了如何使用Python将HTML转换为PDF的使用技巧和注意事项,需要的朋友参考一下 Python提供了Pdfcrowd API v2,可将HTML文档转换为PDF。该API非常易于使用,集成仅需要几行代码。 安装 从网页/ HTML到PDF的以下3个步骤将完成转换 步骤1-下载库pdfkit 步骤2-现在下载wkhtmltopdf 对

  • 本文向大家介绍如何使用wkhtml2pdf将html页面转换为pdf,包括了如何使用wkhtml2pdf将html页面转换为pdf的使用技巧和注意事项,需要的朋友参考一下 本文将指导您安装可以将HTML页面或HTML输出转换为PDF格式的工具。如果我们需要将Pdf发送给一组客户或客户,以及发送报告而不是HTML(您可以通过PDF格式通过电子邮件发送)的报告,则此功能还将有助于生成Pdf的代码。为您

  • 问题内容: 有哪些实用程序可获取网页图像? 基本上等同于打开页面后对其进行“截屏”。 问题答案: wkhtmltopdf和wkhtmltoimage是开源(LGPLv3)命令行工具,可使用QT Webkit渲染引擎将HTML渲染为PDF和各种图像格式。

  • 在我的一个脚本中得到了以下代码: 我想做的是获取的内容,当我在Firefox中将URL加载到我的脚本中时,我可以从中解析一个值。关于如何将内容从以结尾的URL中实际获取到Python脚本中的对象中,我已经搜索了很多,但还没有找到一个好的答案。

  • 问题内容: 在模块中,我只能找到带有cos / sin / tan / acos / asin / atan的。这将返回以弧度为单位的答案。如何获得度数的答案? 这是我的代码: 我的度数计算器为我提供: 问题答案: Python在包中包括两个函数;将度数转换为弧度,并将弧度转换为度。 要匹配计算器的输出,您需要: 请注意,所有的三角函数都在角度和三角形两侧的比率之间转换。cos,sin和tan以弧

  • 问题内容: 如何使用Python将PDF文件转换为HTML? 我只是在想Google会(或似乎会)对PDF文件建立索引的行为。 我的最终目标是设置Apache以显示PDF文件的HTML,因此,向该方向发展的任何事情也将不胜感激。 问题答案: 该poppler的包提供了一个实用PDF2HTML您可能能够使用。还有一个Python绑定到libpoppler。