


Python-Verarbeitung von PDF: Installation und Verwendung von PyMuPDF!
Hallo zusammen, ich bin Python Artificial Intelligence Technology
1. Einführung in PyMuPDF
1. Einführung
Bevor wir PyMuPDF vorstellen, wollen wir zunächst MuPDF verstehen. Wie aus der Benennungsform hervorgeht, ist PyMuPDF Python Schnittstellenform von MuPDF.
MuPDF
MuPDF ist ein leichter PDF-, XPS- und E-Book-Viewer. MuPDF besteht aus Softwarebibliotheken, Befehlszeilentools und Viewern für verschiedene Plattformen.
Der Renderer in MuPDF ist maßgeschneidert für hochwertige Anti-Aliasing-Grafiken. Es rendert Text mit Maßen und Abständen, die auf den Bruchteil eines Pixels genau sind, um das Erscheinungsbild einer gedruckten Seite auf dem Bildschirm maximal originalgetreu wiederzugeben.
Dieser Viewer ist klein, schnell, aber vollständig. Es unterstützt mehrere Dokumentformate wie PDF, XPS, OpenXPS, CBZ, EPUB und FictionBook 2. Sie können den mobilen Viewer zum Kommentieren und Ausfüllen von Formularen in PDF-Dokumenten verwenden (diese Funktion wird bald auch für Desktop-Viewer verfügbar sein).
Mit dem Befehlszeilentool können Sie Dokumente mit Anmerkungen versehen, bearbeiten und in andere Formate wie HTML, SVG, PDF und CBZ konvertieren. Sie können auch Skripte mit Javascript schreiben, um Dokumente zu bearbeiten.
PyMuPDF
PyMuPDF (aktuelle Version 1.18.17) ist eine Python-Bindung, die MuPDF (aktuelle Version 1.18.*) unterstützt.
Mit PyMuPDF können Sie auf Dateien mit den Erweiterungen „.pdf“, „.xps“, „.oxps“, „.cbz“, „.fb2“ oder „.epub“ zugreifen. Darüber hinaus können etwa 10 gängige Bildformate auch wie Dokumente verarbeitet werden: „.png“, „.jpg“, „.bmp“, „.tiff“ usw.
II. Funktionen
Für alle unterstützten Dokumenttypen können Sie:
- Dateien entschlüsseln
- Auf Metainformationen, Links und Lesezeichen zugreifen
- Seiten im Rasterformat (PNG und andere Formate) oder im Vektorformat SVG rendern
- Text durchsuchen
- Text und Bilder extrahieren
- In andere Formate konvertieren: PDF, (X)HTML, XML, JSON, Text
- Für PDF-Dokumente gibt es eine Vielzahl zusätzlicher Funktionen: Sie können erstellt, zusammengeführt oder geteilt werden. Seiten können auf verschiedene Arten eingefügt, gelöscht, neu angeordnet oder geändert werden (einschließlich Kommentaren und Formularfeldern).
- Bilder und Schriftarten können extrahiert oder eingefügt werden
- Volle Unterstützung für eingebettete Dateien
- PDF-Dateien können neu formatiert werden, um doppelseitiges Drucken, Tontrennung, Anbringen von Logos oder Wasserzeichen zu unterstützen
- Volle Unterstützung für Passwortschutz: entschlüsseln, verschlüsseln, Verschlüsselungsmethodenauswahl, Berechtigungsstufen und Benutzer-/Besitzerkennworteinstellungen
- Unterstützt optionale PDF-Inhaltskonzepte für Bilder, Text und Zeichnungen
- Kann auf PDF-Strukturen auf niedriger Ebene zugreifen und diese ändern
- Das Befehlszeilenmodul „python -m fitz…“ hat Die folgenden Funktionen für vielseitiges Dienstprogramm für
- crypt/decrypt/optimize
- create Subdocumente
- Document verbinden sich
- image/Schriftart Extraktion
- -Support für eingebettete Dateien
- text -Extraktion gespeicherter Layouts (alle Dokumente)
Neu: Layoutspeichernde Textextraktion!
Das Skript fitzcliy.py ermöglicht die Textextraktion in verschiedenen Formaten über den Unterbefehl „gettext“. Besonders interessant ist natürlich das Speichern von Layouts, bei dem Texte so nah wie möglich am ursprünglichen physischen Layout generiert werden, mit Bereichen um Bilder herum oder Kopien von Texten in Tabellen und mehrspaltigem Text. 3. InstallationPyMuPDF kann aus dem Quellcode oder von Rädern installiert werden. Für Windows-, Linux- und Mac OSX-Plattformen sind Räder im Download-Bereich von PyPI verfügbar. Dazu gehören die Python 64-Bit-Versionen 3.6 bis 3.9. Es gibt auch eine 32-Bit-Version für Windows. Seit Kurzem gibt es einige Probleme mit der Linux-ARM-Architektur – suchen Sie nach dem Plattform-Tag „manylinux2014_aarch64“.- Es gibt keine obligatorischen externen Abhängigkeiten außer der Standardbibliothek. Es gibt einige nette Methoden, die nur verfügbar sind, wenn bestimmte Pakete installiert sind:
- Pillow: erforderlich bei Verwendung von Pixmap.pil_save() und Pixmap.pil_tobytes()
- fontTools: erforderlich bei Verwendung von Document.subset_fonts()
pymupdf- Schriftarten sind eine gute Schriftartenwahl für Textausgabemethoden.
Verwenden Sie den Pip-Installationsbefehl:
pip install PyMuPDF.
Importbibliothek:
import fitz
MuPDF hieß Libart.
Nachdem Artifex Software das MuPDF-Projekt übernommen hatte, verlagerte sich der Schwerpunkt der Entwicklung auf das Schreiben einer neuen modernen Grafikbibliothek namens „Fitz“. Fitz begann als Forschungs- und Entwicklungsprojekt, um die veraltete Ghostscript-Grafikbibliothek zu ersetzen, wurde aber zur Rendering-Engine für MuPDF (zitiert aus Wikipedia).
4. So verwenden Sie
1. Importieren Sie die Bibliothek und überprüfen Sie die Version
import fitz print(fitz.__doc__) PyMuPDF 1.18.16: Python bindings for the MuPDF 1.18.0 library. Version date: 2021-08-05 00:00:01. Built for Python 3.8 on linux (64-bit).
Dadurch wird das Dokumentobjektdokument erstellt. Der Dateiname muss eine bereits vorhandene Python-Zeichenfolge sein.
Es ist auch möglich, ein Dokument aus Speicherdaten zu öffnen oder ein neues leeres PDF zu erstellen. Sie können Dokumente auch als Kontextmanager verwenden.
3. Dokument的方法和属性
方法/属性 | 描述 | |
| 页数 (int) | |
| 元数据 (dict) | |
| 获取目录 (list) | |
| 页数 (int) | |
|
🎜获取目录 (list)🎜🎜🎜<tr style="background-color: rgb(248, 248, 248); height: 30px;" >🎜🎜<code style="font-family: monospace; Schriftgröße: 12px; Hintergrundfarbe: rgba(0, 0, 0, 0.06); padding: 0px 2px; border-radius: 6px; line-height : inherit; overflow-wrap: break-word; text-indent: 0px;">Document.load_page()
示例:
>>> doc.count_page 1 >>> doc.metadata {'format': 'PDF 1.7', 'title': '', 'author': '', 'subject': '', 'keywords': '', 'creator': '', 'producer': '福昕阅读器PDF打印机 版本 10.0.130.3456', 'creationDate': "D:20210810173328+08'00'", 'modDate': "D:20210810173328+08'00'", 'trapped': '', 'encryption': None}
4. 获取元数据
PyMuPDF完全支持标准元数据。Document.metadata是一个具有以下键的Python字典。
它适用于所有文档类型,但并非所有条目都始终包含数据。元数据字段为字符串,如果未另行指示,则为无。还要注意的是,并非所有数据都始终包含有意义的数据——即使它们不是一个都没有。另外,搜索公众号Java架构师技术后台回复“面试题”,获取一份惊喜礼包。
Key | Value |
producer | producer (producing software) |
format | format: ‘PDF-1.4’, ‘EPUB’, etc. |
encryption | encryption method used if any |
author | author |
modDate | date of last modification |
keywords | keywords |
Titel | Titel |
Erstellungsdatum | Erstellungsdatum |
Ersteller | Bewerbung erstellen |
Betreff | Betreff |
5. 获取目标大纲
toc = doc.get_toc()
6. 页面(Page)
页面处理是MuPDF功能的核心。
- 您可以将页面呈现为光栅或矢量(SVG)图像,可以选择缩放、旋转、移动或剪切页面。
- 您可以提取多种格式的页面文本和图像,并搜索文本字符串。
- 对于PDF文档,可以使用更多的方法向页面添加文本或图像。
首先,必须创建一个页面Page。这是Document的一种方法:
page = doc.load_page(pno) # loads page number 'pno' of the document (0-based) page = doc[pno] # the short form
这里可以使用任何整数-inf 更高级的方法是将文档用作页面的迭代器: a. 检查页面的链接、批注或表单字段 使用某些查看器软件显示文档时,链接显示为==“热点区域”==。如果您在光标显示手形符号时单击,您通常会被带到该热点区域中编码的标记。以下是如何获取所有链接: links是一个Python字典列表。 还可以作为迭代器使用: 如果处理PDF文档页面,还可能存在注释(Annot)或表单字段(Widget),每个字段都有自己的迭代器: b. 呈现页面 此示例创建页面内容的光栅图像: pix是一个Pixmap对象,它(在本例中)包含页面的RGB图像,可用于多种用途。 方法Page.get_pixmap()提供了许多用于控制图像的变体:分辨率、颜色空间(例如,生成灰度图像或具有减色方案的图像)、透明度、旋转、镜像、移位、剪切等。 例如:创建RGBA图像(即,包含alpha通道),指定pix=page.get_pixmap(alpha=True)。 Pixmap包含以下引用的许多方法和属性。其中包括整数宽度、高度(每个像素)和跨距(一个水平图像行的字节数)。属性示例表示表示图像数据的矩形字节区域(Python字节对象)。 还可以使用page.get_svg_image()创建页面的矢量图像。 c. 将页面图像保存到文件中 我们可以简单地将图像存储在PNG文件中: d. 提取文本和图像 我们还可以以多种不同的形式和细节级别提取页面的所有文本、图像和其他信息: 对opt使用以下字符串之一以获取不同的格式: e. 搜索文本 您可以找到某个文本字符串在页面上的确切位置: 这将提供一个矩形列表,每个矩形都包含一个字符串“mupdf”(不区分大小写)。您可以使用此信息来突出显示这些区域(仅限PDF)或创建文档的交叉引用。 PDF是唯一可以使用PyMuPDF修改的文档类型。其他文件类型是只读的。 但是,您可以将任何文档(包括图像)转换为PDF,然后将所有PyMuPDF功能应用于转换结果,Document.convert_to_pdf()。 Document.save()始终将PDF以其当前(可能已修改)状态存储在磁盘上。 通常,您可以选择是保存到新文件,还是仅将修改附加到现有文件(“增量保存”),这通常要快得多。 下面介绍如何操作PDF文档。 a. 修改、创建、重新排列和删除页面 有几种方法可以操作所谓页面树(描述所有页面的结构): b. 连接和拆分PDF文档 方法Document.insert_pdf()在不同的pdf文档之间复制页面。下面是一个简单的joiner示例(doc1和doc2在PDF中打开): 下面是一个拆分doc1的片段。它将创建第一页和最后10页的新文档:for page in doc:
# do something with 'page'
# ... or read backwards
for page in reversed(doc):
# do something with 'page'
# ... or even use 'slicing'
for page in doc.pages(start, stop, step):
# do something with 'page'
# get all links on a page
links = page.get_links()
for link in page.links():
# do something with 'link'
for annot in page.annots():
# do something with 'annot'
for field in page.widgets():
# do something with 'field'
pix = page.get_pixmap()
pix.save("page-%i.png" % page.number)
text = page.get_text(opt)
areas = page.search_for("mupdf")
7. PDF操作
# append complete doc2 to the end of doc1
doc1.insert_pdf(doc2)
doc2 = fitz.open() # new empty PDF
doc2.insert_pdf(doc1, to_page = 9) # first 10 pages
doc2.insert_pdf(doc1, from_page = len(doc1) - 10) # last 10 pages
doc2.save("first-and-last-10.pdf")
c. 保存
Document.save()将始终以当前状态保存文档。
您可以通过指定选项incremental=True将更改写回原始PDF。这个过程(通常)非常快,因为更改会附加到原始文件,而不会完全重写它。
d. 关闭
在程序继续运行时,通常需要“关闭”文档以将底层文件的控制权交给操作系统。
这可以通过Document.close()方法实现。除了关闭基础文件外,还将释放与文档关联的缓冲区。
Das obige ist der detaillierte Inhalt vonPython-Verarbeitung von PDF: Installation und Verwendung von PyMuPDF!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

PHP ist hauptsächlich prozedurale Programmierung, unterstützt aber auch die objektorientierte Programmierung (OOP). Python unterstützt eine Vielzahl von Paradigmen, einschließlich OOP, funktionaler und prozeduraler Programmierung. PHP ist für die Webentwicklung geeignet, und Python eignet sich für eine Vielzahl von Anwendungen wie Datenanalyse und maschinelles Lernen.

PHP eignet sich für Webentwicklung und schnelles Prototyping, und Python eignet sich für Datenwissenschaft und maschinelles Lernen. 1.PHP wird für die dynamische Webentwicklung verwendet, mit einfacher Syntax und für schnelle Entwicklung geeignet. 2. Python hat eine kurze Syntax, ist für mehrere Felder geeignet und ein starkes Bibliotheksökosystem.

Python eignet sich besser für Anfänger mit einer reibungslosen Lernkurve und einer kurzen Syntax. JavaScript ist für die Front-End-Entwicklung mit einer steilen Lernkurve und einer flexiblen Syntax geeignet. 1. Python-Syntax ist intuitiv und für die Entwicklung von Datenwissenschaften und Back-End-Entwicklung geeignet. 2. JavaScript ist flexibel und in Front-End- und serverseitiger Programmierung weit verbreitet.

VS -Code kann zum Schreiben von Python verwendet werden und bietet viele Funktionen, die es zu einem idealen Werkzeug für die Entwicklung von Python -Anwendungen machen. Sie ermöglichen es Benutzern: Installation von Python -Erweiterungen, um Funktionen wie Code -Abschluss, Syntax -Hervorhebung und Debugging zu erhalten. Verwenden Sie den Debugger, um Code Schritt für Schritt zu verfolgen, Fehler zu finden und zu beheben. Integrieren Sie Git für die Versionskontrolle. Verwenden Sie Tools für die Codeformatierung, um die Codekonsistenz aufrechtzuerhalten. Verwenden Sie das Lining -Tool, um potenzielle Probleme im Voraus zu erkennen.

PHP entstand 1994 und wurde von Rasmuslerdorf entwickelt. Es wurde ursprünglich verwendet, um Website-Besucher zu verfolgen und sich nach und nach zu einer serverseitigen Skriptsprache entwickelt und in der Webentwicklung häufig verwendet. Python wurde Ende der 1980er Jahre von Guidovan Rossum entwickelt und erstmals 1991 veröffentlicht. Es betont die Lesbarkeit und Einfachheit der Code und ist für wissenschaftliche Computer, Datenanalysen und andere Bereiche geeignet.

VS -Code kann unter Windows 8 ausgeführt werden, aber die Erfahrung ist möglicherweise nicht großartig. Stellen Sie zunächst sicher, dass das System auf den neuesten Patch aktualisiert wurde, und laden Sie dann das VS -Code -Installationspaket herunter, das der Systemarchitektur entspricht und sie wie aufgefordert installiert. Beachten Sie nach der Installation, dass einige Erweiterungen möglicherweise mit Windows 8 nicht kompatibel sind und nach alternativen Erweiterungen suchen oder neuere Windows -Systeme in einer virtuellen Maschine verwenden müssen. Installieren Sie die erforderlichen Erweiterungen, um zu überprüfen, ob sie ordnungsgemäß funktionieren. Obwohl VS -Code unter Windows 8 möglich ist, wird empfohlen, auf ein neueres Windows -System zu upgraden, um eine bessere Entwicklungserfahrung und Sicherheit zu erzielen.

Im VS -Code können Sie das Programm im Terminal in den folgenden Schritten ausführen: Erstellen Sie den Code und öffnen Sie das integrierte Terminal, um sicherzustellen, dass das Codeverzeichnis mit dem Terminal Working -Verzeichnis übereinstimmt. Wählen Sie den Befehl aus, den Befehl ausführen, gemäß der Programmiersprache (z. B. Pythons Python your_file_name.py), um zu überprüfen, ob er erfolgreich ausgeführt wird, und Fehler auflösen. Verwenden Sie den Debugger, um die Debugging -Effizienz zu verbessern.

VS -Code -Erweiterungen stellen böswillige Risiken dar, wie das Verstecken von böswilligem Code, das Ausbeutetieren von Schwachstellen und das Masturbieren als legitime Erweiterungen. Zu den Methoden zur Identifizierung böswilliger Erweiterungen gehören: Überprüfung von Verlegern, Lesen von Kommentaren, Überprüfung von Code und Installation mit Vorsicht. Zu den Sicherheitsmaßnahmen gehören auch: Sicherheitsbewusstsein, gute Gewohnheiten, regelmäßige Updates und Antivirensoftware.
