ホームページ >バックエンド開発 >Python チュートリアル >Pythonプログラムを使用してWordおよびPDFドキュメントを生成する方法
この記事では、主に Python プログラムを使用して Word および PDF ドキュメントを生成する方法について説明します。この記事は、必要な方にとって参考になると思います。 。
1. プログラムから Word ドキュメントをエクスポートする方法
Web/HTML コンテンツをワールド ドキュメントにエクスポートする Java には、Jacob、Apache POI、Java2Word、iText などのメソッドを使用するなど、多くのソリューションがあります。 FreeMarker などのテンプレート エンジンを使用します。 PHP にも対応するメソッドがいくつかありますが、Python で Web/HTML コンテンツからワールド ドキュメントを生成する方法はほとんどありません。解決するのが最も難しいのは、js コードを使用して塗りつぶされたデータを非同期的に取得し、画像を Word ドキュメントにエクスポートする方法です。
1. unoconv
機能:
1. まず Web ページの HTML ファイルをローカルに保存してから、変換のために unoconv を呼び出す必要があります。 。変換効果も良好で、使用方法も非常に簡単です。
\# 安装 sudo apt-get install unoconv \# 使用 unoconv -f pdf *.odt unoconv -f doc *.odt unoconv -f html *.odt
短所:
1. 静的 HTML のみを変換でき、ajax を使用してページ内のデータを非同期的に取得する場合は変換できません (主に HTML が Web から保存されていることを確認するため)ページ ファイル内にデータがあります)。
2. HTML のみを変換できます。ページ内に echarts、highcharts、およびその他の JS コードを使用して生成された画像がある場合、これらの画像は Word ドキュメントに変換できません。
3. 生成された Word ドキュメントのコンテンツ形式制御するのは簡単ではありません。
2. python-docx
機能:
1. python-docx は Word ドキュメントを読み書きできる Python ライブラリです。
使用方法:
1. Web ページからデータを取得し、Python を使用して手動で組版する Word 文書に追加します。
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')
短所:
機能が非常に弱い。テンプレートがサポートされていないなど制限が多く、単純な形式のWord文書しか生成できません。
2. プログラムから PDF ドキュメントをエクスポートする方法
1.pdfkit
機能:
1.wkhtmltopdf は主に HTML から PDF を生成するために使用されます。
2.pdfkit は、wkhtmltopdf に基づく Python パッケージで、URL、ローカル ファイル、テキスト コンテンツの PDF への変換をサポートし、最終的には wkhtmltopdf コマンドを呼び出します。これは、PDFを生成するために私がこれまで出会った中で最高のPythonです。
利点:
1.wkhtmltopdf: Webkit カーネルを使用して HTML を PDF に変換します
Webkit は、Chrome や Safari などのブラウザーで使用される効率的なオープンソースのブラウザー カーネルです。 Chrome の現在の Web ページを印刷する機能には、直接「PDF として保存」するオプションがあります。
2.wkhtmltopdf は、Webkit コアの 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 に変換できません (その機能は主に html を pdf に変換することであり、js を pdf に変換することではないため) )。純粋に静的なページの変換効果は依然として良好です。
2. その他
PDF を生成するためのその他のプラグインには、weasyprint、reportlab、PyPDF2 などがあります。簡単なテストを行った結果、これらは pdfkit ほど効果的ではなく、使用が複雑なものもあります。
Python プログラムを使用して Word や PDF ドキュメントを生成する方法に関するその他の関連記事については、PHP 中国語 Web サイトに注目してください。