>  기사  >  백엔드 개발  >  Python 프로그램을 사용하여 단어 및 PDF 문서를 생성하는 방법

Python 프로그램을 사용하여 단어 및 PDF 문서를 생성하는 방법

高洛峰
高洛峰원래의
2017-02-20 10:18:292537검색

이 기사에서는 주로 Python 프로그램을 사용하여 단어 및 PDF 문서를 생성하는 방법을 소개합니다. 이 기사에는 도움이 필요한 모든 사람이 아래에서 사용할 수 있는 특정 참조 가치가 있다고 생각합니다. 보세요.

1. 프로그램을 통해 워드 문서를 내보내는 방법

웹/html 콘텐츠를 월드 문서로 내보내는 방법은 많습니다. 예를 들어 Jacob, Apache POI, Java2Word, iText 등 다양한 방법을 사용하거나 freemarker와 같은 템플릿 엔진을 사용합니다. PHP에도 해당하는 몇 가지 메서드가 있지만 Python의 web/html 콘텐츠에서 월드 문서를 생성하는 방법은 거의 없습니다. 해결하기 가장 어려운 점은 js 코드를 사용하여 채워진 데이터를 비동기적으로 얻고 그림을 워드 문서로 내보내는 방법입니다.

1. unoconv

기능:

1. docx 형식이므로 웹 페이지의 html 파일을 로컬로 저장한 다음 unoconv를 호출하여 변환해야 합니다. 변환효과도 좋고 사용법도 매우 간단합니다.

\# 安装
sudo apt-get install unoconv
\# 使用
unoconv -f pdf *.odt
unoconv -f doc *.odt
unoconv -f html *.odt

단점:

1. Where ajax가 있는 페이지의 경우 정적 html만 변환할 수 있습니다. 비동기적으로 데이터를 얻는 데 사용되며 변환할 수 없습니다(주로 웹 페이지에서 저장된 html 파일에 데이터가 있는지 확인하기 위해).

2. 페이지에 echarts, highcharts 및 기타 js 코드를 사용하여 생성된 사진이 있는 경우 해당 사진은 워드 문서로 변환할 수 없습니다. 🎜> 3. 생성된 워드 문서의 내용 형식은 제어가 쉽지 않습니다.


2. python-docx

기능:

1.python- docx는 워드 문서를 읽고 쓸 수 있는 파이썬 라이브러리입니다.


사용법:

1. 웹페이지에서 데이터를 가져와서 Python을 사용하여 수동으로 조판하고 단어 문서에 추가합니다.


from docx import Document
from docx.shared import Inches
document = Document()
document.add_heading('Document Title', 0)
p = document.add_paragraph('A plain paragraph having some ')
p.add_run('bold').bold = True
p.add_run(' and some ')
p.add_run('italic.').italic = True
document.add_heading('Heading, level 1', level=1)
document.add_paragraph('Intense quote', style='IntenseQuote')
document.add_paragraph(
 'first item in unordered list', style='ListBullet'
)
document.add_paragraph(
 'first item in ordered list', style='ListNumber'
)
document.add_picture('monty-truth.png', width=Inches(1.25))
table = document.add_table(rows=1, cols=3)
hdr_cells = table.rows[0].cells
hdr_cells[0].text = 'Qty'
hdr_cells[1].text = 'Id'
hdr_cells[2].text = 'Desc'
for item in recordset:
 row_cells = table.add_row().cells
 row_cells[0].text = str(item.qty)
 row_cells[1].text = str(item.id)
 row_cells[2].text = item.desc
document.add_page_break()
document.save('demo.docx')

from docx import Document
from docx.shared import Inches
document = Document()
for row in range(9):
 t = document.add_table(rows=1,cols=1,style = 'Table Grid')
 t.autofit = False #很重要!
 w = float(row) / 2.0
 t.columns[0].width = Inches(w)
document.save('table-step.docx')

단점:

특징 매우 약합니다. 템플릿을 지원하지 않는 등 많은 제약이 있으며, 단순 형식의 워드 문서만 생성할 수 있습니다.


2. 프로그램에서 PDF 문서를 내보내는 방법

1.pdfkit

기능:

1.wkhtmltopdf는 주로 HTML에서 PDF를 생성하는 데 사용됩니다.

2.pdfkit은 wkhtmltopdf 기반의 Python 패키지로, URL, 로컬 파일 및 텍스트 콘텐츠를 PDF로 변환하는 기능을 지원합니다. 이는 궁극적으로 wkhtmltopdf 명령을 호출합니다. PDF를 생성하기 위해 지금까지 만난 최고의 Python입니다.


장점:

1.wkhtmltopdf: 웹킷 커널을 사용하여 HTML을 PDF로 변환

웹킷은 효율적이고 개방적입니다. source Chrome 및 Safari를 포함한 브라우저에서 사용되는 브라우저 커널입니다. 현재 웹페이지를 인쇄하는 Chrome의 기능에는 직접 "PDF로 저장"하는 옵션이 있습니다.

2.wkhtmltopdf는 웹킷 코어의 PDF 렌더링 엔진을 사용하여 HTML 페이지를 PDF로 변환합니다. 충실도가 높고 변환 품질이 뛰어나며 사용이 매우 쉽습니다.
사용법:


\# 安装
pip install pdfkit
\# 使用
import pdfkit
pdfkit.from_url('http://google.com', 'out.pdf')
pdfkit.from_file('test.html', 'out.pdf')
pdfkit.from_string('Hello!', 'out.pdf')

단점:

1. echarts, highcharts와 같은 js 코드의 경우 생성된 아이콘은 pdf로 변환할 수 없습니다(그 기능은 주로 js를 pdf로 변환하는 것이 아니라 html을 pdf로 변환하는 것이기 때문입니다). 순수 정적 페이지의 변환 효과는 여전히 좋습니다.

2. 기타

PDF 생성을 위한 기타 플러그인으로는 weasyprint, reportlab, PyPDF2 등이 있습니다. 간단한 테스트 후에는 pdfkit만큼 효과적이지 않으며 일부는 사용하기 복잡합니다.

파이썬 프로그램을 사용하여 단어 및 PDF 문서를 생성하는 방법에 대한 더 많은 관련 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.