Python에서 HTML을 PDF로 저장

Manav Narula 2023년1월30일
  1. Pdfkit과 함께wkhtmltopdf API를 사용하여 Python을 사용하여 HTML을 PDF로 저장
  2. weasyprint모듈을 사용하여 Python을 사용하여 HTML을 PDF로 저장
  3. PyQT모듈을 사용하여 Python을 사용하여 HTML을 PDF로 저장
Python에서 HTML을 PDF로 저장

HTML은 웹 개발을위한 가장 기본적이고 널리 사용되는 언어입니다. 그것은 많은 언어의 기반을 형성했습니다. Python은 연결을 생성하고 웹 사이트와 작업 할 수 있도록 지원합니다.

PDF는 다른 장치에서 볼 수있는 휴대용 문서이며 문서를 만드는 데 사용되는 소프트웨어와는 독립적입니다.

이 튜토리얼에서는 Python을 사용하여 HTML 웹 페이지를 PDF로 저장합니다.

Pdfkit과 함께wkhtmltopdf API를 사용하여 Python을 사용하여 HTML을 PDF로 저장

wkhtmltopdf는 HTML 웹 페이지를 PDF로 변환 할 수있는 오픈 소스 도구 세트입니다. pdfkit 모듈을 사용하여 Python에서이 작업을 수행합니다. 이 모듈의 기능은 단일 또는 여러 웹 페이지에서 작동하고이를 PDF 파일로 저장할 수 있습니다.

웹 페이지 URL 또는 장치에 저장된 HTML 파일에서 직접 콘텐츠를 읽을 수 있습니다. from_url () 함수는 URL에서 내용을 읽고 from_file () 함수는 파일에서 읽습니다.

함수 내에서 파일의 이름과 경로를 지정할 수 있습니다.

사용법을 보려면 다음 코드를 참조하십시오.

import pdfkit

pdfkit.from_url("https://www.delftstack.com/", "sample.pdf")

PDF 이름 대신 함수에서 False를 언급하여이 내용을 변수에 저장할 수도 있습니다.

이 방법을 사용하기 전에 공식 웹 사이트에서 wkhtmltopdf를 설치해야합니다.

weasyprint모듈을 사용하여 Python을 사용하여 HTML을 PDF로 저장

weasyprint 모듈은 웹 페이지를 문서 형식으로 렌더링하는 데 사용됩니다. HTML 함수를 사용하여 URL을 읽고 write_pdf () 함수를 사용하여 PDF로 저장합니다.

예를 들어

import weasyprint

doc_pdf = weasyprint.HTML("https://www.delftstack.com/").write_pdf("sample.pdf")

weasyprint를 사용하기 전에 다른 많은 모듈과 기능을 설치해야하므로 사용하지 않는 것이 좋습니다.
또한 Python 2는이 모듈에 대한 지원을 제거했습니다.

PyQT모듈을 사용하여 Python을 사용하여 HTML을 PDF로 저장

PyQT 모듈에는 GUI 개발 및 기타 기능을위한 광범위한 기능이 있습니다. HTML 웹 페이지 URL을 수동으로 읽고 다른 기능을 사용하여 PDF로 변환 할 수 있습니다.

다음 코드를 참조하십시오.

import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import *

app = QApplication(sys.argv)
w = QWebView()
w.load(QUrl("https://www.delftstack.com"))
p = Qp()
p.setPageSize(Qp.A4)
p.setOutputFormat(Qp.PdfFormat)
p.setOutputFileName("sample.pdf")


def convertIt():
    w.print_(p)
    QApplication.exit()


QObject.connect(w, SIGNAL("loadFinished(bool)"), convertIt)
sys.exit(app.exec_())
작가: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn