Heim > Artikel > Backend-Entwicklung > So generieren Sie Word- und PDF-Dokumente mit dem Python-Programm
Dieser Artikel führt Sie hauptsächlich in die Methode zur Verwendung des Python-Programms zum Generieren von Word- und PDF-Dokumenten ein. Der Artikel enthält meiner Meinung nach einen gewissen Referenzwert für alle Freunde in Not. Werfen Sie einen Blick darauf.
1. So exportieren Sie Word-Dokumente über das Programm
Web-/HTML-Inhalte in Weltdokumente exportieren. Es gibt viele Lösungen in Java. Zum Beispiel die Verwendung verschiedener Methoden wie Jacob, Apache POI, Java2Word, iText usw. sowie die Verwendung von Template-Engines wie Freemarker. Es gibt auch einige entsprechende Methoden in PHP, aber es gibt in Python nur sehr wenige Möglichkeiten, Weltdokumente aus Web-/HTML-Inhalten zu generieren. Am schwierigsten zu lösen ist die Verwendung von JS-Code, um die ausgefüllten Daten asynchron abzurufen und die Bilder in ein Word-Dokument zu exportieren.
1. unoconv
Funktion:
1. Unterstützt die Konvertierung lokaler HTML-Dokumente in Dokumente im docx-Format, daher müssen Sie die HTML-Dateien lokal auf der Webseite speichern und dann unoconv zur Konvertierung aufrufen. Der Konvertierungseffekt ist ebenfalls gut und die Verwendungsweise ist sehr einfach.
\# 安装 sudo apt-get install unoconv \# 使用 unoconv -f pdf *.odt unoconv -f doc *.odt unoconv -f html *.odt
Nachteile:
1. Für einige Seiten kann nur statisches HTML konvertiert werden Orte, an denen Ajax zum asynchronen Abrufen von Daten verwendet wird, können nicht konvertiert werden (hauptsächlich, um sicherzustellen, dass die von der Webseite gespeicherten HTML-Dateien Daten enthalten).
2. Wenn die Seite Bilder enthält, die mit Echarts, Highcharts und anderen JS-Codes generiert wurden, können diese Bilder nicht in Word-Dokumente konvertiert werden
3. Das Inhaltsformat des generierten Word-Dokuments ist nicht einfach zu kontrollieren.
2.python-docx
Funktion:
1.python- docx ist eine Python-Bibliothek, die Word-Dokumente lesen und schreiben kann.
Verwendung:
1. Holen Sie sich die Daten von der Webseite, verwenden Sie Python, um sie manuell zu setzen, und fügen Sie sie dem Word-Dokument hinzu.
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')
Nachteile:
Die Funktion ist sehr schwach. Es gibt viele Einschränkungen, z. B. keine Unterstützung von Vorlagen usw., und es können nur Word-Dokumente im einfachen Format erstellt werden.
2. Methode zum Exportieren von PDF-Dokumenten aus dem Programm
1.pdfkit
Funktion:
1.wkhtmltopdf wird hauptsächlich zum Generieren von PDF aus HTML verwendet.
2.pdfkit ist ein auf wkhtmltopdf basierendes Python-Paket, das die Konvertierung von URLs, lokalen Dateien und Textinhalten in PDF unterstützt. Es ruft letztendlich den Befehl wkhtmltopdf auf. Es ist das beste Python, das mir bisher zum Generieren von PDFs begegnet ist.
Vorteile:
1.wkhtmltopdf: Verwenden Sie den Webkit-Kernel, um HTML in PDF zu konvertieren
Webkit ist ein effizientes, offenes Quelle Der Browser-Kernel, der von Browsern wie Chrome und Safari verwendet wird. Die Chrome-Funktion zum Drucken der aktuellen Webseite verfügt über eine Option zum direkten „Speichern als PDF“.
2.wkhtmltopdf verwendet die PDF-Rendering-Engine des Webkit-Kerns, um HTML-Seiten in PDF zu konvertieren. Hohe Wiedergabetreue, hervorragende Konvertierungsqualität und sehr einfach zu bedienen.
Verwendung:
\# 安装 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')
Nachteile:
1. Für die Verwendung von Echarts, Highcharts usw. Durch JS-Code generierte Symbole können nicht in PDF konvertiert werden (da ihre Funktion hauptsächlich darin besteht, HTML in PDF zu konvertieren, nicht JS in PDF). Der Konvertierungseffekt für rein statische Seiten ist immer noch gut.
2. Andere
Andere Plug-ins zum Generieren von PDFs sind: weasyprint, reportlab, PyPDF2 usw. Nach einfachen Tests sind sie nicht so effektiv wie pdfkit, und einige sind es kompliziert in der Anwendung.
Weitere verwandte Artikel zur Verwendung von Python-Programmen zum Generieren von Word- und PDF-Dokumenten finden Sie auf der chinesischen PHP-Website!