from ironpdf import *
# Instantiate Renderer
renderer = ChromePdfRenderer()
# Create a PDF from a HTML string using Python
pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")
# Export to a file or Stream
pdf.SaveAs("output.pdf")
# Advanced Example with HTML Assets
# Load external html assets: Images, CSS and JavaScript.
# An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", r"C:\site\assets")
myAdvancedPdf.SaveAs("html-with-assets.pdf")
msgpack python (Wie es für Entwickler funktioniert)
Kannapat Udonpant
29. September 2024
Teilen Sie:
Einführung
MessagePackist ein effizientes binäres Serialisierungsformat, das den Datenaustausch zwischen mehreren Sprachen ermöglicht, es ist ähnlich wie JSON, aber schneller und kompakter. DiemsgpackBibliothek in Python bietet die notwendigen Werkzeuge, um mit diesem Format zu arbeiten und stellt sowohl CPython-Bindings als auch eine reine Python-Implementierung zur Verfügung.
Hauptmerkmale von MessagePack
Effizienz:MessagePackist darauf ausgelegt, effizienter als JSON zu sein, sowohl in Bezug auf Geschwindigkeit als auch Größe. Dies erreicht es durch die Verwendung eines binären Formats.(msgpack-Spezifikation), was den Overhead reduziert, der mit textbasierten Formaten wie JSON verbunden ist.
Unterstützung für mehrere Sprachen: MessagePack unterstützt mehrere Programmiersprachen und ist somit ideal für Anwendungen, bei denen Daten zwischen verschiedenen Systemen und Sprachen geteilt werden müssen.
Kompatibilität: Die msgpack-Bibliothek in Python ist kompatibel mit sowohl Python 2 als auch Python 3, sowie den CPython- und PyPy-Implementierungen.
Benutzerdefinierte Datentypen: MessagePack ermöglicht das Packen und Entpacken von benutzerdefinierten Datentypen mit echter fortschrittlicher Entpackungskontrolle, was für komplexe Anwendungen hilfreich sein kann.
Einrichtung
Bevor Sie mit dem Lesen und Schreiben von MessagePack-Daten beginnen können, müssen Sie das installieren.msgpackBibliothek, die mit pip installiert werden kann:
pip install msgpack
Grundlegende Verwendung
Hier ist ein einfaches Beispiel, wie man MessagePack zur Serialisierung und Deserialisierung von Daten verwendet:
import msgpack
# Serialize key value pairs or file like object
data = {'key': 'value', 'number': 42}
packed_data = msgpack.packb(data, use_bin_type=True)
# Deserialize data
unpacked_data = msgpack.unpackb(packed_data, raw=False)
print(unpacked_data)
import msgpack
# Serialize key value pairs or file like object
data = {'key': 'value', 'number': 42}
packed_data = msgpack.packb(data, use_bin_type=True)
# Deserialize data
unpacked_data = msgpack.unpackb(packed_data, raw=False)
print(unpacked_data)
PYTHON
Erweiterte Funktionen
Streaming-Entpacken: MessagePack unterstützt das Streaming-Entpacken, bei dem mehrere Objekte aus einem einzigen Stream entpackt werden. Dies ist nützlich für die Verarbeitung großer Datensätze oder kontinuierlicher Datenströme.
import msgpack
from io import BytesIO
# Create a buffer
buf = BytesIO()
for i in range(100):
buf.write(msgpack.packb(i))
buf.seek(0)
unpacker = msgpack.Unpacker(buf)
for unpacked in unpacker:
print(unpacked)
import msgpack
from io import BytesIO
# Create a buffer
buf = BytesIO()
for i in range(100):
buf.write(msgpack.packb(i))
buf.seek(0)
unpacker = msgpack.Unpacker(buf)
for unpacked in unpacker:
print(unpacked)
PYTHON
Benutzerdefinierte Datentypen: Sie können benutzerdefinierte Funktionen zum Packen und Entpacken für benutzerdefinierte Datentypen definieren. Zum Beispiel, um den benutzerdefinierten Datentyp datetime zu handhaben:
import datetime
import msgpack
# uses default sequence type
def encode_datetime(obj): # default value
if isinstance(obj, datetime.datetime):
return {'__datetime__': True, 'as_str': obj.strftime('%Y%m%dT%H:%M:%S.%f')}
return obj
def decode_datetime(obj):
if '__datetime__' in obj:
return datetime.datetime.strptime(obj['as_str'], '%Y%m%dT%H:%M:%S.%f')
return obj
data = {'time': datetime.datetime.now()}
packed_data = msgpack.packb(data, default=encode_datetime)
unpacked_data = msgpack.unpackb(packed_data, object_hook=decode_datetime)
print(unpacked_data)
import datetime
import msgpack
# uses default sequence type
def encode_datetime(obj): # default value
if isinstance(obj, datetime.datetime):
return {'__datetime__': True, 'as_str': obj.strftime('%Y%m%dT%H:%M:%S.%f')}
return obj
def decode_datetime(obj):
if '__datetime__' in obj:
return datetime.datetime.strptime(obj['as_str'], '%Y%m%dT%H:%M:%S.%f')
return obj
data = {'time': datetime.datetime.now()}
packed_data = msgpack.packb(data, default=encode_datetime)
unpacked_data = msgpack.unpackb(packed_data, object_hook=decode_datetime)
print(unpacked_data)
PYTHON
Einführung in IronPDF
IronPDF ist eine leistungsstarke Python-Bibliothek zum Erstellen, Bearbeiten und Signieren von PDFs mit HTML, CSS, Bildern und JavaScript. Sie bietet kommerzielle Leistung bei geringem Speicherbedarf. Die wichtigsten Merkmale sind:
Konvertierung von HTML in PDF
Konvertieren Sie HTML-Dateien, HTML-Strings und URLs in PDFs. Sie können zum Beispiel eine Webseite mit dem Chrome PDF-Renderer als PDF wiedergeben.
Plattformübergreifende Unterstützung
Kompatibel mit verschiedenen .NET-Plattformen, einschließlich .NET Core, .NET Standard und .NET-Framework. Es unterstützt Windows, Linux und macOS.
Bearbeitung und Unterzeichnung
Legen Sie Eigenschaften fest, fügen Sie Sicherheit mit Passwörtern und Berechtigungen hinzu, und wenden Sie digitale Signaturen auf Ihre PDFs an.
Seitenvorlagen und Einstellungen
PDFs mit Kopf- und Fußzeilen, Seitenzahlen und einstellbaren Rändern anpassen. Unterstützt responsive Layouts und benutzerdefinierte Papierformate.
Einhaltung von Normen
Einhaltung von PDF-Standards wie PDF/A und PDF/UA. Unterstützt UTF-8-Zeichencodierung und verarbeitet Assets wie Bilder, CSS und Schriftarten.
Generieren Sie PDF-Dokumente mit IronPDF und msgpack
import msgpack
import datetime
from ironpdf import *
# Apply your license key
License.LicenseKey = "key"
# Serialize data
data = {'key': 'value', 'number': 42}
packed_data = msgpack.packb(data, use_bin_type=True)
# Deserialize data
unpacked_data = msgpack.unpackb(packed_data, raw=False)
print(unpacked_data)
#Custom Data Types
def encode_datetime(obj):
if isinstance(obj, datetime.datetime):
return {'__datetime__': True, 'as_str': obj.strftime('%Y%m%dT%H:%M:%S.%f')}
return obj
def decode_datetime(obj):
if '__datetime__' in obj:
return datetime.datetime.strptime(obj['as_str'], '%Y%m%dT%H:%M:%S.%f')
return obj
datat = {'time': datetime.datetime.now()}
packed_datat = msgpack.packb(datat, default=encode_datetime)
unpacked_datat = msgpack.unpackb(packed_datat, object_hook=decode_datetime)
print(unpacked_datat)
renderer = ChromePdfRenderer()
# Create a PDF from a HTML string using Python
content = "<h1>Awesome Iron PDF with msgpack</h1>"
content += "<h3>Serialize data</h3>"
content += "<p>"+str(data)+"</p>"
content += "<p> msgpack.packb(data, use_bin_type=True):</p><p>"+str(packed_data)+"</p>"
content += "<h3>Deserialize data</h3>"
content += "<p> msgpack.unpackb(packed_data, raw=False):</p><p>"+str(unpacked_data)+"</p>"
content += "<h3>Encode Custom Data Types</h3>"
content += "<p>"+str(datat)+"</p>"
content += "<p> msgpack.packb(datat, default=encode_datetime):</p><p>"+str(packed_datat)+"</p>"
pdf = renderer.RenderHtmlAsPdf(content)
# Export to a file or Stream
pdf.SaveAs("Demo-msgpack.pdf")
import msgpack
import datetime
from ironpdf import *
# Apply your license key
License.LicenseKey = "key"
# Serialize data
data = {'key': 'value', 'number': 42}
packed_data = msgpack.packb(data, use_bin_type=True)
# Deserialize data
unpacked_data = msgpack.unpackb(packed_data, raw=False)
print(unpacked_data)
#Custom Data Types
def encode_datetime(obj):
if isinstance(obj, datetime.datetime):
return {'__datetime__': True, 'as_str': obj.strftime('%Y%m%dT%H:%M:%S.%f')}
return obj
def decode_datetime(obj):
if '__datetime__' in obj:
return datetime.datetime.strptime(obj['as_str'], '%Y%m%dT%H:%M:%S.%f')
return obj
datat = {'time': datetime.datetime.now()}
packed_datat = msgpack.packb(datat, default=encode_datetime)
unpacked_datat = msgpack.unpackb(packed_datat, object_hook=decode_datetime)
print(unpacked_datat)
renderer = ChromePdfRenderer()
# Create a PDF from a HTML string using Python
content = "<h1>Awesome Iron PDF with msgpack</h1>"
content += "<h3>Serialize data</h3>"
content += "<p>"+str(data)+"</p>"
content += "<p> msgpack.packb(data, use_bin_type=True):</p><p>"+str(packed_data)+"</p>"
content += "<h3>Deserialize data</h3>"
content += "<p> msgpack.unpackb(packed_data, raw=False):</p><p>"+str(unpacked_data)+"</p>"
content += "<h3>Encode Custom Data Types</h3>"
content += "<p>"+str(datat)+"</p>"
content += "<p> msgpack.packb(datat, default=encode_datetime):</p><p>"+str(packed_datat)+"</p>"
pdf = renderer.RenderHtmlAsPdf(content)
# Export to a file or Stream
pdf.SaveAs("Demo-msgpack.pdf")
PYTHON
Code Erläuterung
Dieses Skript demonstriert die Integration von msgpack mit IronPDF für die Serialisierung und Deserialisierung von Daten sowie die Erstellung eines PDF-Dokuments aus HTML-Inhalten.
Aufschlüsselung
Serialisierung von Daten mit msgpack:
Konvertiert Python-Daten(Dikt in diesem Fall)in ein Binärformat(gepackte_daten)Verwendung von msgpack.packb()mit use_bin_type=True.
Deserialisieren von Daten mit msgpack:
Wandelt die binären packed_data in Python-Daten zurück(entpackte_daten)mithilfe von msgpack.unpackb()mit raw=False.
Benutzerdefinierte Datentypen-Verarbeitung:
Definiert benutzerdefinierte Kodierung(encode_datetime)und Dekodierung(decode_datetime)Funktionen zur Handhabung von Datum-Zeit-Objekten während der Serialisierung und Deserialisierung mit msgpack.
HTML-Inhalt für PDF-Erstellung:
Konstruiert eine HTML-Zeichenkette(inhalt) das beinhaltet:
Header und Unterabschnitte zur Darstellung der serialisierten Daten(Daten und gepackte_Daten).
Deserialisierte Daten(entpackte_Daten).
Seriellisierung benutzerdefinierter Datentypen(datat und packed_datat).
PDF-Erzeugung mit IronPDF:
Verwendet IronPDF(ChromePdfRenderer)um ein PDF-Dokument zu erstellen(pdf)aus dem erstellten HTML-Inhalt(inhalt).
Speichern des PDF:
Speichert das generierte PDF-Dokument als "Demo-msgpack.pdf".
Ausgabe
PDF
IronPDF-Lizenz
IronPDF läuft mit dem Lizenzschlüssel für Python. IronPDF Python bietet einkostenloser Test lizenzschlüssel, damit die Benutzer die umfangreichen Funktionen vor dem Kauf testen können.
Setzen Sie den Lizenzschlüssel an den Anfang des Skripts, bevor Sie das IronPDF-Paket verwenden:
from ironpdf import *
# Apply your license key
License.LicenseKey = "key"
from ironpdf import *
# Apply your license key
License.LicenseKey = "key"
PYTHON
Schlussfolgerung
MessagePack ist ein leistungsstarkes Werkzeug für effiziente Datenserialisierung in Python. Sein kompaktes binäres Format, die plattformübergreifende Unterstützung und die Fähigkeit, benutzerdefinierte Datentypen zu verarbeiten, machen es zu einer vielseitigen Wahl für verschiedene Anwendungen. Egal, ob Sie an einem Datenaustausch zwischen verschiedenen Systemen arbeiten oder die Leistung Ihrer Datenverarbeitungsaufgaben optimieren, MessagePack bietet eine robuste Lösung.
IronPDFist eine vielseitige Python-Bibliothek, die zum Erstellen, Bearbeiten und Rendern von PDF-Dokumenten direkt aus Python-Anwendungen konzipiert ist. Es vereinfacht Aufgaben wie das Umwandeln von HTML in PDF, das Erstellen interaktiver PDF-Formulare und das Durchführen verschiedener Dokumentenbearbeitungen wie das Zusammenfügen und Aufteilen von PDF-Dateien. Mit nahtloser Integration in bestehende Webtechnologien bietet IronPDF Entwicklern ein leistungsstarkes Werkzeugset zur Erstellung dynamischer PDFs, das die Produktivität bei Aufgaben im Dokumentenmanagement und in der Präsentation steigert.
Bevor er Software-Ingenieur wurde, promovierte Kannapat an der Universität Hokkaido in Japan im Bereich Umweltressourcen. Während seines Studiums wurde Kannapat auch Mitglied des Vehicle Robotics Laboratory, das Teil der Abteilung für Bioproduktionstechnik ist. Im Jahr 2022 wechselte er mit seinen C#-Kenntnissen zum Engineering-Team von Iron Software, wo er sich auf IronPDF konzentriert. Kannapat schätzt an seiner Arbeit, dass er direkt von dem Entwickler lernt, der den Großteil des in IronPDF verwendeten Codes schreibt. Neben dem kollegialen Lernen genießt Kannapat auch den sozialen Aspekt der Arbeit bei Iron Software. Wenn er nicht gerade Code oder Dokumentationen schreibt, kann man Kannapat normalerweise beim Spielen auf seiner PS5 oder beim Wiedersehen mit The Last of Us antreffen.
< PREVIOUS Py2neo (Wie es für Entwickler funktioniert)
NÄCHSTES > PyYAML (Wie es für Entwickler funktioniert)