PDFAttex – .NET / COM Komponente um ZUGFeRD-XML und andere Anhänge aus einer PDF zu extrahieren

PDF, PDF/A-3 sowie das ZUGFeRD Format ermöglichen es ein PDF Dokument als Container zu verwenden um beliebige Dateien in das PDF einzubetten. Der Empfänger benötigt eine Möglichkeit um die eingebetteten Dateien zu extrahieren. Das kann interaktiv z.b. über den Adobe Reader erfolgen. Will man jedoch diesen Vorgang automatisieren benötigt man eine entsprechende Software-Komponente die in eine Anwendung eingebunden werden kann um die Anhänge auszulesen und zu speichern.

Für das ZUGFeRD Format gibt es ein kostenloses Commandline Tool – ExtractZUGFeRD-XML sowie jetzt mit PDFAttex auch eine .NET / COM Komponente. Diese ist als Erweiterung jetzt im eDocPrintPro SDK  enthalten.

PDFAttex Funktionen:

  • .NET / COM Komponente
  • C# Beispiel/Test-Anwendung mit Source-Code
  • Auslesen wie viele Anhänge in der PDF enthalten sind
  • Auslesen und Speichern einzelner oder aller Anhänge (Name, Erweiterung) aus einer PDF, PDF/A-3 oder ZUGFeRD Datei
  • Auslesen mit welchem PDF/A Level die Datei erzeugt wurde – PDF/A-1b, 2b, 3b

PDFAttex als 32bit COM Komponente:

VisualBasic6 (VB6) benötigt z.B. eine 32bit Komponente. Standardmäßig kann VB nicht mit .NET Komponenten umgehen die für eine gemischte – 32/64bit Umgebung erstellt wurden. Deswegen stellen wir dafür eine eigene 32bit Variante der DLL zur Verfügung. Diese DLL muss um angesprochen werden zu können zuerst mit der 32bit RegAsm.exe von .NET 2.0 registriert werden. Dafür sollte das folgende  Kommando über eine CMD Datei als Administrator ausgeführt werden: “C:\Users\Admin\Desktop\VB Sample\RegAsm.exe” “C:\Users\Admin\Desktop\VB Sample\PDFAttex.dll” /codebase. Danach steht in VB die Komponente in der Liste der vorhandenen Referenzen zur Verfügung und kann verwendet werden.

PDFAttex ist Teil des eDocPrintPro SDK´s. und erfordert die .NET Runtime Version 2.0.

eDocPrintPro – Version 3.24.1 – PDF, PDF/A, ZUGFeRD, SDK

Neuerungen Version 3.24.1:

Mit der Version 3.24.1. wurden einige Erweiterungen und Verbesserungen vorgenommen die nicht direkt am Userinterface ersichtlich sind und alle Versionen des Druckertreibers betreffen.

ESFX – neues Datenformat für die Profile: Alle Einstellungen des Druckertreibers können als Profil gespeichert und bei Bedarf wieder geladen werden. Bisher wurde die Endung ESF verwendet. Die über das Userinterface erzeugten Profil-Daten sowie jene die über das SDK erzeugt werden konnten waren aus historischen Gründen nicht kompatibel. Deswegen haben wir ein neues einheitliches XML Datenformat mit der Erweiterung ESFX implementiert. Dieses ist jetzt zwischen Userinterface- sowie SDK-Funktion kompatibel.

Ebenso wurde die Profil Funktion am Userinterface und im SDK dahingehend erweitert dass jetzt alle Einstellungen der eDocPrintPro Add-Ons – PDF/A-1,2,3 ZUGFeRD, FLASH/SVG sowie die Konfiguration der Plugin Ketten in den Profilen gespeichert und wieder geladen werden.

SDK Erweiterungen: Speichern und Laden der Add-On Einstellungen als XML. Funktion um alle Einstellungen des Treibers als XML (ESFX) zu speichern und wieder zu laden. Geschwindigkeitsoptimierung bei der Kommunikation des SDK mit dem Druckertreiber. Möglichkeit bei PDF/A-3 die Option zur Abfrage der Anhänge per SDK zu aktivieren / deaktivieren. Funktion um die Versionsnummer des installierten eDocPrintPro Druckertreibers abzufragen.

Neues Datenformat ESFX für die Profile  PDFA-3 Einstellungen können jetzt über Profile gespeichert und wieder geladen werden #1  PDFA-3 Einstellungen können jetzt über Profile gespeichert und wieder geladen werden #2  edoc SDK mit PDFA3 - AttEnabled   eDocPrintPro SDK Neuerungen Version 3_24_0 #1  eDocPrintPro SDK Neuerungen Version 3_24_0 #2  eDocPrintPro SDK Neuerungen Version 3_24_1

Download – eDocPrintPro, PDF/A, ZUGFeRD

Download – eDocPrintPro 32 und 64bit (ca. 63 MB) >>>
Download – eDocPrintPro PDF/A 32 und 64bit (ca. 63 MB) >>>
Download – eDocPrintPro ZUGFeRD – PDF/A-3 Druckertreiber >>>

GhostScript 9.18.1 Setup

Download – GhostScript 9.18.1 MSI Setup – 32bit (ca. 16MB) >>>
Download – GhostScript 9.18.1 MSI Setup – 64bit (ca.16MB) >>>

eDocPrintPro & SDK Version 3.23.0 verfügbar

Neuerungen Version 3.23.0:

  • Neuimplementierung der Events für die Ablaufsteuerung

Bei Tests mit hoher Last, falls eine große Menge an Druckjobs schnell hintereinander bzw. parallel von mehreren Programmen oder Anwendern im Druckspooler von eDocPrintPro ankommen, mussten wir feststellen dass es manchmal vorkommen kann dass Events verloren gehen.

So sind bei z.b. bei 1000 Druckjobs einige Dokumente “verloren” gegangen.  An sich ist das Problem bisher nicht aufgefallen da normalerweise eine Ablaufsteuerung über das eDocPrintPro SDK zu erfolgen hatte. Dabei sollte ein neuer Druckjob erst gestartet werden wenn für den vorhergehenden Job der Event für die Fertigstellung des PDF´s gekommen ist.

Es gibt jedoch auch Einsatzbereich bei denen es nicht möglich ist eine Ablaufsteuerung über eine Programmierung in die Anwendung zu integrieren und die Anwendung daher viele Einzeljobs bzw. Einzelseiten schnell hintereinander erzeugt. Die nachfolgende Anwendung sollte aber alle Einzeljobs mitbekommen und weiterverarbeiten ohne dass die druckenden Anwendung gesteuert werden kann, da keine programmgesteuerter Eingriff in die druckende Anwendung möglich ist um die Druck mit der Weiterverarbeitung der PDF´s zu synchronisieren.

Mit der Version 3.23.0 funktioniert das jetzt auch bei der parallelen multithread Verarbeitung von Druckjobs 100% zuverlässig. Auch bei hoher Last und bei einer großen Zahl an Printjobs die über die Print-Queue verarbeitet werden gehen keine Events und keine Dokumente mehr verloren. Aus Gründen des Speicherverbrauchs sollte die Anzahl der parallelen Threads nicht zu hoch sein. In unserem SDK Beispiel haben wir diese auf 50 begrenzt. Das SDK Version 3.23.0 enthält auch ein C# Beispielprojekt “Multithread Batch Printing Demo” inkl. SourceCode um zu zeigen wie dies in eigenen Anwendungen angewendet werden kann und ermöglicht es diese Funktion gleich auch zu testen.

 eDoc SDK Multithread Batch Print Test application

  • Tschechisch und Slowakisch – als neue Sprachen für das eDocPrintPro Userinterface verfügbar.  Sprachen werden automatisch über die Sprache des Betriebssystems eingestellt, können  aber auch manuell ausgewählt werden.

eDocPrintPro - Auswahl der verfügbaren Sprachen

Download – eDocPrintPro 32 und 64bit (ca. 63 MB) >>>

eDocPrintPro SDK – um die PDF/A und ZUGFeRD Funktionen erweitert

Das eDocPrintPro SDK ermöglicht es alle Einstellungen und Konfigurations-Optionen des PDF Druckertreibers aus der eigenen Anwendung heraus abzufragen und zu setzen. Neben der Plugin Schnittstelle lassen sich die Funktionen des Treibers auch über “Add-On” Module erweitern.

Das PDF/A sowie das ZUGFeRD Format wurde in Form solcher Add-On´s implementiert.  Jedes Add-On hat eine Reihe von Eigenschaften die auch abgefragt und gesetzt werden können. Welche verschiedenen Eigenschaften (Properties) für ein bestimmtes Add-On zur Verfügung steht ist aus der SDK-Dokumentation ersichtlich.

Mit der aktuellen Version des eDocPrintPro SDK gibt es jetzt auch die Möglichkeit die Eigenschaften für den PDF/A sowie den ZUGFeRD Add-On auszulesen und zu setzen. Ebenso wurde ein Beispiel hinzugefügt das zeigt wie speziell die ZUGFeRD Parameter ausgelesen und gesetzt werden können.

eDocPrintPro SDK - PDFA Add-On properties  eDocPrintPro SDK - ZUGFeRD Add-On properties   eDocPrintPro SDK - Beispiel zeigt wie Add on Parameter ausgelesen und gesetzt werden können  eDocPrintPro SDK - Eigenes ZUGFeRD Beispiel um Parameter auszulesen und zu setzen

eDocPrintPro 3.19.0 – Neue SDK Version verfügbar

Mit der Version 3.19.0 gibt es auch jetzt ein neues SDK.

Neuerungen:

  • Die PDF/A Level 1 bis Level 3 – Funktionen des Treibers können jetzt auch über das SDK angesprochen werden.
  • VBA Unterstützung für MS-Office 32 und 64bit wurde ergänzt, VBA Beispielmakros sind verfügbar.
  • Die im Souce Code bzw. als VS-Projekte mitgelieferten Beispiel Anwendungen wurden um die neuen Funktionen erweitert.
  • Die CHM (Compiled HTML Help) Dokumentation wurde aktualisiert und ergänzt.

Das SDK liefert Beispiele für für folgende Umgebungen als SourceCode bzw. VS-Projekte:

  • 32bit Anwendung unter 32bit OS – C# / VB.NET / VB6
  • 32bit Anwendung unter 64bit OS – C# /  VB.NET / VB6
  • 64bit Anwendung unter 64bit OS – C# / VB.NET

eDocPrintPro SDK documentation  eDoCPrintPro SDK Demo

Um die Funktionen des SDK unter den verschiedenen Betriebssystemen und mit den unterschiedlichen Druckerversionen testen zu können gibt es eine SDK Demo. Damit können die Druckereinstellungen ausgelesen bzw. gesetzt werden. Die Events vom Drucker für Start und Ende des Druckvorgangs = Erstellen der PDF Datei wird ausgewertet und am Userinterface angezeigt.

Testprogramm um die Events des Treibers anzeigen zu können  eDocPrintPro SDK Demo Anwendung

Download – eDocPrintPro SDK Demo 32 und 64bit >>>

eDocPrintPro SDK – VB Beispielprogramme als EXE zum Testen für 64bit OS verfügbar

Bisher hat es nur eine Versiongegeben die mit dem 32bit eDocPrintPro auf 32bit Betriebsystemen funktioniert hat. Siehe hier >>>

Jetzt gibt es auch eine Version mit der man die eDoc SDK Funktionen unter 64bit Betriebsystemen ausprobieren und testen kann.

Das Programm zeigt als ausführbares EXE mit Setup welche Funktionen des Druckertreibers aus eigenen Anwendungen heraus gesetzt, abgefragt und genutzt werden können.

eDocPrintPro 64bit SDK Beispiele als EXE >>>

Bitte beachten Sie dass für diese Beispiele die 64bit Version des eDocPrintPro Druckertreibers erforderlich ist.

Bei Erwerb des SDK erhalten Sie sowohl eine Dokumentation der Funktionen sowie Beispielanwendungen im Source Code.

eDocPrintPro SDK – Interop.EDocPort.dll und Interop.EDocPort32.dll

Das eDocPrintPro SDK ab der Version 3.17 beinhaltet die signierte Version der Interop.EDocPort.dll sowie der Interop.EDocPort32.dll

Download – Interop.EDocPort.dll und Interop.EDocPort32.dll >>>

Object: Port

the main interface object, the only creatable object by the ID “eDocPort.port”. All the other objects must be obtained from the Port object.

Dim WithEvents eDoc As eDocPort.Port

Set eDoc = CreateObject(“eDocPort.port”)

Set eDoc = nothing

Remark1: for 32-bit applications on 64-bit operating systems, a new 32-bit COM server is added in the SYSWOW64 folder, eDocPort32.dll; the differences being the progID, eDocPort32.Port and the namespace eDocPort32; you can also use eDocPort32 COM objects for 32-bit applications running on 32-bit operating system, to write uniform applications on 32 bit and 64 bit platforms.

Remark2: for .NET applications, the eDocPort.dll and eDocPort32.dll must be added as COM references, unsigned interop will be automatically generated; if the application needs signed interops, they must be  created directly by the tlbimp.exe, with an appropriate command-line parameter:

“[tlbimp_folder]tlbimp.exe” “%windir%\system32\eDocPort.dll” /out:”[project_folder]Interop.EDocPort.dll” /keyfile:”[key_file_folder][key_file_name].snk” /namespace:”Interop.EDocPort”

or:

“[tlbimp_folder]tlbimp.exe” “[eDocPort32.dll_folder]eDocPort32.dll” /out:”[project_folder]Interop.EDocPort.dll” /keyfile:”[key_file_folder][key_file_name].snk” /namespace:”Interop.EDocPort32″

then add the output file as a project reference. The tlbimp_folder is usually %programfiles%\Microsoft SDKs\Windows\v6.0A\bin, and can vary on different Visual Studio versions and installation options. The eDocPort32.dll_folder is %windir%\system32 for 32-bit systems and %windir%\SysWOW64 for 64-bit systems.

Bitte verwenden Sie die aktuelle Version des Treibers ab 3.17

Download – eDocPrintPro 32bit (~5MB) >>>
Download – eDocPrintPro 64bit (~5MB) >>>

eDocPrintPro – Tool um die Druckertreiber-Events zu testen

Für Softwareentwickler die unser eDoc SDK verwenden ist es wichtig die Events des Treibers richtig zu erkennen und an die Anwendung weiterzugeben. Ein Event wird beim Start des Druckvorgangs ausgelöst und der 2. Event sobald die PDF Datei fertig erstellt und weggeschrieben wurde. Beim 2. Event wird auch der Pfad und der Name der erzeugten PDF Datei zurückgeliefert.

Um auf den verschiedenen Plattformen – von Windows XP bis zu den aktuellen MS-Windows 2008 Server 64bit und Terminalserver testen zu können  ob die Events richtig ausgelöst und geschickt werden, stellen wir einen einfachen Tester zur Verfügung.

Warten auf die Events Events erhalten - für Start und Ende der PDF Erstellung

Download – Event Test für eDocPrintPro >>>

Kombinierte 32/64bit Programmierschnittstelle ab eDocPrintPro 3.17.0

Bereits jetzt und in nächster Zukunft werden immer mehr Rechner – nicht nur Server sondern auch Desktop Recher mit 64bit Betriebsystemen z.b. Windows 7 – 64bit ausgerüstet. An sich kein grosses Problem für viele bestehenden Anwendungen da auch 32bit Programme unter 64bit Betriebsystemen verwendet werden können.

Für Druckertreiber sieht das anders aus – für ein 64bit Betriebsystem ist auch ein 64bit Druckertreiber erforderlich. Nun ist es technisch nicht möglich aus 32bit Anwendungen heraus eine 64bit Programmierschnittstelle anzusprechen und zu nutzen – das funktioniert nur bei “gleicher Bit-Breite”. Viele 32bit Anwendungen lassen sich jedoch auf Grund der verwendeten Programmierumgebung nicht so einfach auf 64bit “umstellen”. Softwareentwickler wünschen sich daher dass ihre 32bit Anwendung ohne grosse Anpassung und ohne verschiedene EXE Versionen erstellen zu müssen – sowohl mit der 32bit als auch mit der 64bit Version zusammenarbeiten.

Aus diesem Grund haben wir das eDocPrintPro Programmier-Interface entsprechend erweitert und bieten nun auch eine einheitliche 32/64bit Programmierschnittstelle an. Entwickler können nun 32bit Anwendungen erstellen die mit einer einzigen 32bit EXE sowohl mit dem 32bit als auch mit dem 64bit edocPrintPro Druckertreiber zusammenarbeiten.

Wir liefern dazu eine 32bit Visual Basic Anwendung im Source Code als auch eine 32bit EXE um zu zeigen welche Funktionen zur Verfügung stehen und wie diese in eigene Anwendungen eingebunden werden können. Weiters kann damit auch die Funktionalität unter den verschiedenen Betriebssystemversionen (32/64bit) getestet werden.

32bit VB sample application - demo to show 32bit and 64bit printer driver support

Bei der “alten” 32bit Version des eDocPrintPro SDK unter Verwendung der eDocPort.dll – wird ein COM Objekt eDocPort.Port zur Verfügung gestellt. Um dieses nun auf die neue 32/64bit kompatible eDocPort32.dll mit dem Objekt eDocPort32.Port umzustellen sind folgende Schritte erforderlich:

  1. Entfernen der Referenz auf die “alte” eDocPort.dll (falls für “early binding” Anwendungen vorhanden )
  2. Hinzufügen der neuen Referenz für die eDocPort32.dll (falls für “early binding” Anwendungen notwending )
  3. Ändern der Haupt COM Objekt ID (falls verwendet) von “eDocPort.Port” auf  “eDocPort32.Port”
  4. Ändern aller Instanzen des eDocPrintPro SDK COM Object Namespace von eDocPort  auf eDocPort32 – üblicherweise mit einem einzigen “Ersetzen” Befehl.

Diese zusätzliche kombinierte 32/64bit Schnittstelle steht ab der Version 3.17.0 zur Verfügung.