wxPdfDocument ist eine C++ Klasse, die es wxWidgets-Anwendungen erlaubt, PDF-Dateien zu generieren. Das Projekt ist als eine Portierung der frei verfügbaren PHP-Klasse FPDF (Free PDF) unter Verwendung der wxWidgets-Bibliothek gestartet. Mehrere Erweiterungsskripte, die auf den FPDF Web-Seiten zu finden sind, wurden eingearbeitet. In der Zwischenzeit sind einige Erweiterungen dazugekommen, die sich in FPDF nicht finden, u.a. etwa die Unterstützung von OpenType-Fonts, Kerning und Layern. wxPdfDocument greift dabei nicht auf Bibliotheken wie etwa PDFlib oder ClibPDF zurück, die zumindest für kommerzielle Nutzung gebührenpflichtig sind. wxPdfDocument steht unter der wxWidgets (früher wxWindows) Lizenz. Dies bedeutet, dass die Komponente auch in kommerziellen Anwendungen kostenlos eingesetzt und nach den Bedürfnisssen des Anwenders modifiziert werden kann. Die aktuelle und künftige Weiterentwicklung ist und wird stark beeinflusst durch die wohlbekannte Java PDF Bibliothek iText.
Aktuelle Version: 1.2.0 - Februar 2024
Web-Site und Download: https://github.com/utelle/wxpdfdoc
API-Dokumentation: https://utelle.github.io/wxpdfdoc
Die wichtigsten Eigenschaften von wxPdfDocument sind:
- Wahl der Einheit, des Seitenformats und der Seitenränder
- Verwaltung von Seitenkopf und Seitenfuß
- Automatischer Seitenumbruch
- Automatischer Zeilenumbruch und Textausrichtung
- Unterstützung verschiedener Grafik-Formate (GIF, JPEG, PNG und WMF)
- Farben
- Links
- 14 Adobe Standardschriften
- TrueType und Type1 Schriften (mit oder ohne Einbettung) und Unterstützung verschiedener Zeichensatzcodierungen
- TrueType Unicode, OpenType Unicode und Type0 Schriften (für Chinesisch, Japanisch und Koreanisch) in der Unicode-Version
- Seitenkomprimierung
- Graphikoperationen für die Erstellung einfacher Zeichnungen
- Definition von Bereichsbegrenzungen
- Erzeugung einer Gliederungsansicht
- Drehungen
- Passwort-Schutz und/oder Zugriffsrechteverwaltung für Dokumente
Mit dieser Klasse können Dokumente in vielen Sprachen erzeugt werden: westeuropäisch, zentraleuropäisch, kyrillisch, griechisch, baltisch und thailändisch, vorausgesetzt es stehen TrueType oder Type1 Schriften mit den benötigten Zeichensätzen zur Verfügung. Im Unicode-Modus werden auch Chinesisch, Japanisch und Koreanisch unterstützt.
Zahlreiche Beispiele, was mit wxPdfdocument möglich ist, finden sich unter http://utelle.github.io/wxpdfdoc. Die mit Doxygen erzeugte Schnittstellendokumentation findet sich unter http://utelle.github.io/wxpdfdoc/docs/html/index.html.
Feedback sowie Fehlerberichte sind willkommen.
Neuigkeiten
- Februar 2024
-
Die Version 1.2.0 wurde freigegeben und steht zum Download bereit.
Die neue Version 1.2.0 ist kompatibel zu wxWidgets 3.2.x und höher. Kompatibilität zur früheren stabilen Version wxWidgets 3.0.x kann im Prinzip bei entsprechend hohem Bedarf bereitgestellt werden.
Änderungen in Version 1.2.0
Allgemeine Änderungen:
- Unterstützung für Dokumentschutz mit AES-256-Verschlüsselung (PDF 2.0) hinzugefügt.
- Unterstützung für den Import von PDF-Dokumenten, die mit AES-Verschlüsselung geschützt sind, hinzugefügt.
- Für die Übersetzung der Bibliothek wird nun ein C++11-Compiler benötigt.
- Die Unterstützung für Visual C++ Versionen kleiner als 2015 wurde entfernt.
Behobene Fehler:
- Ein Problem mit Seitenumbrüchen innerhalb einer XML-Tabelle wurde behoben.
Hinweis
Die Eigenschaften-Datei wx_setup.props im Unterordner build wurde angepasst, um die AppVeyor CI ohne Modifikationen durchführen zu können.
Diese Modifikation bewirkt, dass Compiler-abhängig benannte Bibliotheksverzeichnisse genutzt werden (so wie es für die vorkompilierten wxWidgets-Bibliotheken der Fall ist). Dabei wird die Toolkit-Version (z.B. 141 für VS 2015, 142 für VS 2019) im Bibliothekspfadnamen hinzugefügt.
Für wxWidgets-Releases vor Version 3.1.3 wurde dieser Modus noch nicht für VS 2019 unterstützt; für wxWidgets-Version 3.0.4 und darunter betrifft das zusätzlich auch VS 2017. Für diese wxWidgets-Releases wird die falsche Toolkit-Version ausgewählt. Die Datei include/msvc/wx/setup.h ist im wxWidgets-GitHub-Repository bereits aktualisiert, aber die offiziell freigegebenen Versionen wählen noch die falsche Toolkit-Version aus.
Um das frühere Standardverhalten (Bibliothekspfadname ohne Toolkit-Version) zu erhalten, sind die beiden Parameter wxCompilerPrefix und wxMsvcVersionAuto in der Datei wx_setup.props wie folgt abzuändern:
<wxCompilerPrefix>vc</wxCompilerPrefix>
<wxMsvcVersionAuto></wxMsvcVersionAuto>
|
Historie
Neu in Version 1.2.0 - Februar 2024
Allgemeine Änderungen:
- Unterstützung für Dokumentschutz mit AES-256-Verschlüsselung (PDF 2.0) hinzugefügt.
- Unterstützung für den Import von PDF-Dokumenten, die mit AES-Verschlüsselung geschützt sind, hinzugefügt.
- Für die Übersetzung der Bibliothek wird nun ein C++11-Compiler benötigt.
- Die Unterstützung für Visual C++ Versionen kleiner als 2015 wurde entfernt.
Behobene Fehler:
- Ein Problem mit Seitenumbrüchen innerhalb einer XML-Tabelle wurde behoben.
Neu in Version 1.1.0 - Januar 2024
Allgemeine Änderungen:
- Die Signatur der Methoden ScaleX(), ScaleY(), ScaleXY(), Scale(), MirrorH(), MirrorV(), SkewX(), SkewY(), Skew(), Rotate() und UseTemplate() wurde geändert, um die negativen Default-Werte für die Positionsparameter zu vermeiden. Dies war erforderlich, um in allen Grafikoperationen negative Koordinaten unterstützen zu können. Falls eine Anwendung explizit den Default-Wert (-1) in Aufrufen einer der oben genannten Methoden verwendet hat, müssen diese Werte durch Aufrufe der Methode GetX() bzw GetY() ersetzt werden.
Behobene Fehler:
- Behebung des Problems "Rotierter Text an falscher Position" (Issue #92). Das Problem trat bei Verwendung negativer Koordinaten auf. Alle Grafikoperationen unterstützen jetzt auch negative Koordinaten.
- Behebung des Problems fehlerhafter Texthintergrundfarbe bei gedrehten Texten in wxPdfDC.
Neu in Version 1.0.3 - November 2023
Allgemeine Änderungen:
- Unicode-Daten für das Programm ShowFont aktualisiert
Behobene Fehler:
- Behandlung langer Tabellen korrigiert: Einbeziehung von Seitenrändern, Seitenkopf und Tabellenkopf bei Seitenumbrüchen
- Behandlung leerer Tabellenkörper korrigiert
- Behandlung der Höhe (optionaler) Tabellenkopfzeilen korrigiert
- Problem #81 behoben. Verbesserung der Behandlung von Rahmen für Tabellenzellen. Rahmen von Tabellenzellen konnten (teilweise) durch Tabellenzellenhintergrundfarben verdeckt werden
- wxPdfDocument::GetImageSize() MIME-Typ-Parameter tatsächlich verwenden
- Behandlung von Surrogaten für TrueType-Schriftarten korrigiert
- Problem mit automatischem Seitenumbruch behoben
Neu in Version 1.0.2 - Dezember 2021
Allgemeine Änderungen:
- Attribut "viewport" für das XML-Markup-Element "img" hinzugefügt
- Option hinzugefügt, die Einheit für numerische Attribute in XML-Markup-Elementen zu spezifizieren
- Behandlung des XML-Markup_Elements "img" optimiert
- Merkmal wxPDF_VIEWER_NOPRINTSCALING für die Methode wxPdfDocument::SetViewerPreferences hinzugefügt
- Methode wxPdfDocument::SetPaperHandling für bessere Druckausgabesteuerung hinzugefügt
Behobene Fehler:
- Behandlung von Paragraphen im XML-Markup für Tabellenzellen korrigiert
- Behandlung von Tabellen im XML-Markup korrigiert (es wurde eine falsche Gesamthöhe zur Platzreservierung verwendet)
- Problem mit dem Randausgleich in XML-Markup behoben
- Behandlung von Stiften (wxPen) und Pinseln (wxBrush) in wxPdfDC angepasst
Neu in Version 1.0.1 - September 2021
Behobene Fehler:
- Skalierung von Schraffurmustern in wxPdfDC korrigiert
- Fehler bei der Compilierung im ANSI-Modus behoben
Neu in Version 1.0.0 - September 2021
Allgemeine Änderungen:
- Unterstützung für wxWidgets 2.x entfernt
- Unterstützung für PDF/A-1B-Konformität hinzugefügt
- Unterstützung für Transformationsmatrizen in Klasse wxPdfDC hinzugefügt
- Attribut "char-spacing" für XML-Markup-Element "span" hinzugefügt
- Attribut für die maximale Zeilenhöhe einer Tabelle im XML-Markup hinzugefügt
- Erweiterte Unterstützung von Füllmustern (template-basierte Muster, verschiedene Schraffurmuster) implementiert
- Verbesserte Unterstützung für wxBrush-Stile in wxPdfDC implementiert ("stipple" und "hatch" Stile)
- Datentyp für die Bemessung von Bitmap-Grafiken im XML-Markup geändert (von integer zu double)
- wxPdfDC-Ausgabe hinsichtlich Setzen von Stiften (wxPen) und Pinseln (wxBrush) sowie Status-Änderungen optimiert
Behobene Fehler:
- Fehler beim Einbetten von Bitmap-Grafiken in wxPdfDC behoben (jetzt Verwendung global eindeutiger Namen)
- Probleme beim Setzen von Stift- und Pinselfarben in wxPdfDC behoben
- Fehler bei Verwendung von Füllmustern in Templates behoben
- Verwendung des Modus "transparenter Hintergrund" als Standardeinstellung (relevant für Alpha-Kanal-Unterstützung in wxPdfDC)
Neu in Version 0.9.8 - September 2019
Allgemeine Änderungen:
- Anpassung der Strichelungsmuster um (hoffentlich) perfekte Punkte für alle Stiftstile zu erhalten
- Unterstützung für Alpha-Transparenz für wxPdfDC (nur wxWidgets 3.x)
- Beseitigung von Fehlermeldungen, die von Methode wxPdfFontManager::RegisterSystemFonts bei der Registrierung von Bitmap-Schriftarten auftraten
- Aufruf der veralteten Funktion wxFillLogFont entfernt
- Konfigurationsoptionen hinzugefügt, um das Bauen von Beispielen und Hilfsprogrammen zu verhindern
- Unterstützung für die Compilierung mit Visual C++ 2019 hinzugefügt
- AppVeyor CI für Windows hinzugefügt
Behobene Fehler:
- Fehler bei XML-Tabellen behoben: Zeilen, die gemeinsame Zeilengruppierungen enthalten, werden nun auf der gleichen Seite zusammengehalten
Neu in Version 0.9.7 - Januar 2019
Allgemeine Änderungen:
- Anpassung der Strichelungsmuster um (hoffentlich) perfekte Punkte für alle Stiftstile zu erhalten
- Zusätzlicher Stil für den Abbildungsmodus (map mode): wxPDF_MAPMODESTYLE_PDFFONTSCALE
- Unterstützung für Text mit Randausgleich bei Verwendung von Unicoe-Schriftarten
- Attribute für Rahmenbreite und -farbe für die Ausgabe von Tabellen mit XML
- Verbesserte Ausgabegeschwindigkeit für Text in der wxPdfDC-Klasse
- Unterstützung mehrzeiligen Texts in Methode wxPdfDC::DoDrawRotatedText
- Unterstützung für Texthintergrundfarbe in den Methoden wxPdfDC::DoDrawText und wxPdfDC::DoDrawRotatedText
Behobene Fehler:
- Fehler bei Verwendung geschützter/verschlüsselter externer Templates behoben
- Fehler beim Laden einer Grafikdatei aus der einfachen XML-Markierungssprache wegen fehlendem Mime-Type behoben
- Fehler beim Lesen der Dokumentinformation einer bestehenden PDF-Datei behoben
- Fehler in Klasse wxPdfParser behoben, falls das Tag "startxref" nicht gefunden werden konnte
- Absturz beim Import einer vollständig leeren Seite behoben
- Fehler beim Import eines leeren Inhaltsstroms behoben
- Mehrere Fehler bei Verarbeitung der XML-Markierungssprache behoben
- Fehler in Methode wxPdfDC::DoDrawSplineFixed behoben (falsche Zeichenfarbe)
- Fehler in Klasse wxPdfDC behoben, indem die Transparenz von Zeichenfarbe und Hintergrundfarbe berücksichtigt wird.
Neu in Version 0.9.6 - April 2017
Allgemeine Änderungen:
- Überarbeitetes Build-System unter Verwendung von premake5 und autoconf
- Kontinuierliche Integration mit Travis CI
- Alle Vorkommen von wxT durch wxS ersetzt
- Versionsinformation als Windows-Resource für DLL-Builds unter Windows
Behobene Fehler:
- Fehler bei der Bestimmung der Winkel in Methode wxPdfDocument::Ellipse behoben
- Fehler beim Zeichnen von Bögen in wxPdfDC behoben, indem die Winkel in den für das Zeichnen gegen den Uhrzeigersinn korrekten Bereich transformiert werden
- MD5-Implementierung ersetzt, um Lizenz-Inkompatibilitäten zu beheben
- Grafik des Transparanz-Beispiels ersetzt, um potentielle Lizenz-Probleme zu beheben
Neu in Version 0.9.5 - Dezember 2015
Allgemeine Änderungen:
- Berücksichtigung der wxPen-Attribute "join" und "cap" in wxPdfDC (2.9)
- Verwendung von wxMemoryOutputStream-Instanzen aufgeräumt
- Abhängigkeiten von den wxWidgets-Bibliotheken für die Graphikformate GIF und JPEG aufgeräumt
Behobene Fehler:
- Fehler bei der Positionierung von gedrehtem Text behoben
- Fehler bei der Bestimmung der Zeilenlänge in XML-formatierter Ausgabe behoben.
- Fehler bei der Ausgabe eines Punktes in wxPdcDC (2.9) behoben
- Fehler beim Zeichnen elliptischer Bögen in wxPdfDC (2.9) behoben
Neu in Version 0.9.4 - August 2013
Allgemeine Änderungen:
- Behandlung von Unicode-Surrogaten für TrueType-Unicode.Fonts (in der wxPdfDocument-Bibliothek sowie im ShowFont-Programm) hinzugefügt
- Fehlende Initialisierung für den zu verwendenden Grafikformattyp in wxPdfDC hinzugefügt
- Unterstützung, wxImage-Objekte im JPEG-Format ins PDF-Dokument einzufügen (statt nur PNG-Format), hinzugefügt
Behobene Fehler:
- Korrigierte Behandlung von Sektoren in der Methode wxPdfDocument::Ellipse
- Fehler in ShowFont (Font-Index für TrueType-Kollektionen war nicht auswählbar) behoben
- Fehler im Type1-Font-Parser (Parsen von /Subrs konnte sich aufhängen) behoben
- Fehler im Type1-Font-Parser (Endlosschleife, wenn Type1-Multi-Master-Fontdateien geparst wurden) behoben
- Fehler im TrueType-Font-Parser (Lesen falscher Werte aus der OS/2-Tabelle Version 0) behoben
- Default-Font-Metrik in wxPdfDC angepasst und externer Durchschuss stets >= 0
- GDI-Objekt-Speicherleck im TrueType-Font-Parser behoben (nur Windows)
Desweiteren steht jetzt die neue Version 1.2 des Pakets mit ausführbaren Windows-Versionen der wxPdfDocument-Hilfsprogramme MakeFont und ShowFont zum Download in der Sektion wxPdfDocument Add-Ons bei SourceForge zur Verfügung, da diese in der Vergangenheit häufiger nachgefragt wurden. Zur Ausführung wird die Microsoft Visual C++ 2008 SP1 Laufzeitumgebung benötigt. Details sind in der beigefügten readme-Datei nachzulesen.
Auf der Basis von wxPdfDocument 0.9.3 hat Mark Dootson eine Schnittstelle zu wxPdfDocument für wxPerl zur Verfügung gestellt, die in CPAN: Wx::PdfDocument veröffentlicht wurde.
Neu in Version 0.9.3 - Juni 2012
Allgemeine Änderungen:
- Methoden für den Zugriff auf die Koordinaten der rechten unteren Ecke des zuletzt eingefügten Grafik hinzugefügt
- Unterstützung für das span-Tag wurde für die XML-Ausgabe ergänzt
- Methode wxPdfDocument::AttachFile zum Anhängen von Dateien an PDF-Dokumente wurde hinzugefügt
- Präprozessor-Symbol hinzugefügt, um wxPdfDocument optional von wxObject abzuleiten (erleichtert die Integration in wxPerl)
- Erweiterungen für wxPdfDC und MakeFont (zur Verfügung gestellt von Mark Dootson)
- Unterstützung für das wxWidgets printing framework ergänzt (zur Verfügung gestellt von Mark Dootson)
- Erweiterung des wxPdfDC-Beispielprogramms, um die Integration mit dem printing framework zu demonstrieren (zur Verfügung gestellt von Mark Dootson)
Behobene Fehler:
- Fehler in pdffontdatacore.cpp behoben (Nicht-ASCII-Zeichen wurden unter OSX nicht angezeigt)
- Fehler in pdfencrypt.cpp behoben (Setzen eines nicht-leeren Dokument-Ids)
- Fehler in pdfxml.cpp behoben (Zeilenumbruch für Wörter, die länger als eine Zeile sind, erzwingen)
- Fehler bei der Behandlung externer Templates in Verbindung mit Zugriffsschutz (die Verschlüsselung benutzte die falsche Objektkennung für Zeichenketten und Ströme)
Neu in Version 0.9.2 - September 2011
Allgemeine Änderungen:
- Methode wxPdfDC::GetPdfDocument für Anwendungen auf Basis von wxWidgets 2.9.x hinzugefügt
- Methode wxPdfDocument::WriteXml für die direkte Bearbeitung von wxXmlNode-Instanzen
- Unterstützung für die optionale Aktivierung/Deaktivierung von Textübersetzungen (msg tag) in XML-Ausgabemethoden
- Optionaler Dokument-Id-Parameter für Methode wxPdfEncrypt::GenerateEncryptionKey hinzugefügt
Behobene Fehler:
- Fehler in Methode wxPdfDocument::CalculatePageSize behoben
- Fehler in Methode wxPdfFontDataCore::ConvertCID2GID behoben
- Diverse Skalierungsprobleme in der Klasse wxPdfDC behoben
- Einige Compiler-Warnungen in der Datei pdfkernel.cpp im Zusammenhang mit der formatierten Ausgabe von Variablen des Typs size_t eliminiert
- Kleinere Mängel bei der Nutzung der Bengali-Schriftart behoben
Neu in Version 0.9.1 - Januar 2011
Erweiterungen:
- Unterstützung für Apple Unicode TrueType Schriften
- Zusätzliches Hilfsprogramm ShowFont, mit dem PDF-Tabellen ausgegeben werden können, die alle in einer Schrift enthaltenen Unicode-Zeichen darstellen
Allgemeine Änderungen:
- Verbesserte Verarbeitungsgeschwindigkeit von VOLT-Regeln
- Modifizierung zur besseren Unterstützung von wxMac
- Ergänzung von "Tutorial 7" um einen Test der neuen wxMac-Funktionalität
- Prüfung in wxPdfFontParserTrueType, ob eine gültige 'cmap'-Tabelle vorhanden ist
- Aufrufe der Methode wx_str für alle wxString-Parameter bei Aufrufen der Methode FromWChar ergänzt
- Methode RegisterSystemFonts für wxMac implementiert
- Setzen des Arbeitsverzeichnisses in den Beispielprogrammen geändert
Behobene Fehler:
- Speicherleck bei der Registrierung von Schriften auf Basis eines wxFont-Objekts beseitigt
- Fehler in der Methode ShowGlyph behoben
- Mehrere Kompilierfehler unter wxMac behoben
- Änderung der wxMac-spezifischen Includes im Beispielprogramm für wxPdfDC
Neu in Version 0.9.0 - Dezember 2010
Erweiterungen:
- Methoden, um Bezier-Splines durch eine Liste von Punkten zu zeichnen;
das 'drawing'-Beispiel wurde erweitert, um diese Funktionalität zu demonstrieren
- PDF-Zeichenkontext(wxPdfDC); noch nicht alle Methoden sind implementiert
- Unterstützung für Fonts mit VOLT-Daten (Visual Ordering and Layout Tables)
(z.Zt. nur 'visual ordering', eine Vorverarbeitung der Fonts ist erforderlich);
Fonts für 9 Indische Schriften sind beigefügt, um diese Erweiterung zu veranschaulichen
Allgemeine Änderungen:
- Erhöhte Ausgabegeschwindigkeit für Methode SaveAsFile (wenn große Grafik-Dateien eingebettet werden)
- Alle z.Zt. unterstützten CJK-Fontfamilien werden nun automatisch bei Programmstart durch den Font-Manager registriert
- MS CJK Fonts werden nicht automatisch als Type0-Fonts registriert,
das dies mit einer Registrierung dieser Fonts als TrueType Unicode Fonts kollidiert
- Die Behandlung von maskierten Grafiken wurde verbessert
Behobene Fehler:
- Das Öffnen von Font-Dateien konnte fehlschlagen, wenn der Pfad nicht-lateinische Zeichen enthielt.
Jetzt wird wxFileSystem::FileNameToURL genutzt, um gültige Dateinamen für die Verwendung in der Methode OpenFile der Klasse wxFileSystem zu erzeugen
- Ungültige Formatierungscodes in der Methode wxPdfUtility::Double2String konnten zu Problemen in einer MinGW-Umgebung führen
- Die Registrierung von halbweiten CJK-Fonts funktionierte nicht
- Fehler in der Behandlung der Seitengröße
- Es wurde keine PDF-Datei geschrieben, wenn Methode Close vor Methode SaveAsFile aufgerufen wurde
- Fehler in der Behandlung von Transparenz bei maskierten Grafiken
- Nicht initialisierte Klassenvariablen in Layer-Objekten konnten zur Unsichtbarkeit von Layern führen
- Überarbeitung der Ausgabe-Formatierungscodes im Hinblick auf 64-Bit-Systeme
- Übersetzungsfehler, wenn wxWidgets mit der Option wxUSE_STL erzeugt worden war
- Mehrere kleinere Fehler
Neu in Version 0.8.5.2 - November 2009
Zur Behebung von Kompatibilitätsproblemen mit wxWidgets 2.9.0 und zur Korrektur eines Fehlers in der Methode RegisterFontDirectory wurde ein neues File-Release, Version 0.8.5.2, bereitgestellt.
Neu in Version 0.8.5 - Oktober 2009
Erweiterungen in allen Modi:
- Unterstützung für individuelle Seitengrößen
- Unterstützung für das Setzen der Füllregel auf odd/even oder winding
- Unterstützung für das Setzen des Text-Render-Modus
- Unterstützung für Layer (optional content groups)
- Unterstützung für Muster (patterns) als Zeichen- oder Füllfarbe
- Unterstützung für Code 128 Barcodes
Erweiterungen im Unicode Modus:
- Unterstützung für Kerning
- Unterstützung für unterschiedliche Zeichencodierungen für Type1 und TrueType Schriften
- Unterstützung für das Laden von TrueType und OpenType Schriften direkt aus .ttf oder .otf Dateien
- Unterstützung für das Laden von Type1 Schriften direkt aus .pfb und .afm Dateien
- Unterstützung für die Verwendung von TrueType und OpenType Schriften, die durch ein wxFont Objekt definiert sind
- Eingebettete Untergruppen für OpenType Unicode Schriften (experimentell, derzeit nur Nicht-CID-Schriften)
- direkte Positionierung und Ausgabe von Glyph-Nummern für TrueType/OpenType Unicode Schriften (dies kann in Verbindung mit Werkzeugen zur Unterstützung komplexer Skripte - wie etwa ICU - nützlich sein)
Erweiterungen im ANSI Modus:
- Unterstützung für Schriften, die durch ein wxFont-Objekt definiert sind (Zuordnung zu Adobe-Standard-Schriften auf der Basis der Schriftfamilie und des Schriftstils)
Allgemeine Änderungen:
- Die Koordinatentransformation zur Festlegung des Ursprungs und der Orientierung der Y-Achse erfolgt nun direkt in PDF. Dies war eine Voraussetzung für die Bereitstellung eines wxGraphicsContext in einer zukünftigen Version. Die Skalierung entsprechend der Anwender-Einheiten wird weiterhin programmatisch erledigt.
- Vereinheitlichung der Benennung aller Methoden zur Farbmanipulation. Es wird nun stets die britische Schreibweise verwendet, also colour anstatt color.
Behobene Fehler:
- Linienstilabmessungen berücksichtigten nicht die Anwender-Einheiten
- Verschlüsselungsunterstützung für big endian Plattformen.
- Methode wxPdfDocument::ClippingText.
Neu in Version 0.8.0 - Dezember 2006
- Externe Templates: Seiten bestehender PDF Dokumente können importiert und als Template verwendet werden
- Einbettung von Untermengen von TrueType und TrueType Unicode Schriftarten (führt oft zu erheblich geringerer Größe der erzeugten PDF-Dateien)
- Verwendung und Einbettung von OpenType Unicode Schriftarten
- Verbesserte Unterstützung für Passwort-basierte Verschlüsselung, frei definierbare Schlüssellänge zwischen 40 und 128 Bits (Achtung: Adobe Reader unterstützt nur Schlüssel mit 40 oder 128 Bits.)
- Unterstützung für AES-Verschlüsselung (zusätzliche Standardmethode zur Verschlüsselung ab PDF-Version 1.6)
wxPdfDocument ist sowohl zu wxWidgets Version 2.8.x als auch Version 2.6.x kompatibel.
Achtung: Für die Unterstützung der Einbettung von Untermengen von Nicht-Unicode TrueType Schriftarten musste das Format der Beschreibungsdateien erweitert werden. Beschreibungsdateien, die mit früheren Versionen des Programms MakeFont erstellt wurden, sind weiter nutzbar, erlauben aber nicht die Einbettung von Untermengen. Es ist empfehlenswert, eigene Beschreibungsdateien erneut zu generieren. Leider enthalten die üblichen AFM Font Metrik Dateien keine Glyph-Information. Diese werden jedoch vom Programm MakeFont benötigt, um die Zuordnung zwischen Glyphen und Zeichencodes durchzuführen. Daher musste das Programm ttf2ufm
angepasst werden. Die modifizierte Version, einschließlich einer ausführbaren Windows-Version, ist im Rahmen der wxPdfDocument Add-Ons verfügbar.
Neu in Version 0.7.6 - Oktober 2006
- Setzen des Standard-Pfads für das Laden von Font-Beschreibungsdateien,
- Zugriff auf Eigenschaften des aktuellen Fonts,
- Laden von Grafiken aus einem wxInputStream,
- Behebung einiger bekannt gewordener Fehler.
Vielen Dank an Stuart Smith, der gute Anregungen gegeben und Code zur Verfügung gestellt hat.
Achtung: Die Struktur der Font-Beschreibungsdateien hat sich geändert. Dies macht es erforderlich, die Beschreibungsdateien für eigene Fonts mit Hilfe des Programms MakeFont neu zu generieren. Das Hilfsprogramm ttf2ufm wurde modifiziert, um das zusätzliche Attribut xHeight zu unterstützen.
wxPdfDocument 0.7.6 ist sowohl mit wxWidgets 2.6.x als auch mit wxWidgets 2.7.1 kompatibel. Aufgrund einer API-Änderung der Klasse wxGIFDecoder in wxWidgets 2.7.1 treten bei vorangehenden Versionen von wxPdfDocument Fehler bei der Kompilierung auf.
Neu in Version 0.7.5 - September 2006
- Seitenübergreifende Tabellen in der XML-Auszeichnungssprache,
- Interne Links in der XML-Auszeichnungssprache,
- Transparenz bei Zeichenoperationen,
- Maskierte Grafiken,
- Interne Templates,
- Clipping mittels Polygonen und Figuren (shapes),
- Textausgabe entlang eines frei definierbaren Pfads,
- Erweiterte Funktionalität für Füllgradienten (Schnittstelle geändert),
- Interne Farbverwaltung vollständig überarbeitet.
Neu in Version 0.7 - April 2006
- erweiterte Farbunterstützung (CMYK- und Spot-Farben, 486 vordefinierte benannte RGB-Farben, Farbnamen in HTML-Notation (#rrggbb)),
- Textannotationen,
- zusätzliche Schriftauszeichnungen (überstrichen, durchgestrichen),
- PDF-Formulare,
- JavaScript-Funktionen auf Dokumentebene,
- einfache XML-Auszeichnungssprache für Schriftstile und Textstrukturierungen.
Zurück zum Seitenanfang