PdfConverter

  HKEY...[]\Config\PdfConverter\: Assembly (Zeichenfolge)
  HKEY...[]\Config\PdfConverter\: Class (Zeichenfolge)
  HKEY...[]\Config\PdfConverter\: Types (Zeichenfolge)
  HKEY...[]\Config\PdfConverter\: DefaultAuthor (Zeichenfolge)
  HKEY...[]\Config\PdfConverter\: DefaultCreator (Zeichenfolge)
  HKEY...[]\Config\PdfConverter\: UseAlternativePdfFormGroupMethodForApple (DWORD)

Die Angaben unterhalb OpenXmlConverter ermöglichen das Einbinden eines selbst gewählten PDF-Konvertierers. Eingeführt wurde dies für die Konvertierung von OpenXML nach PDF.

Wenn diese Angaben nicht gesetzt werden, nutzt TAA eine eigene Basisimplementierung des Konverters, welche mit Hilfe von Microsoft Word eine OpenXML-Datei (*.docx) in eine PDF-Datei (*.pdf) umwandelt.

Mit der Angabe Assembly kann man einen anderen Konverter einbinden. Die angegebene Assembly wird über ComponentPath gesucht und sollte eine Klasse enthalten, die von der Klasse TeamWiSE.TAA.Common.IPdfConverter abgeleitet ist. Diese Klasse wird in der Registry unter Class eingetragen. In dieser eigenen Klasse ist es möglich, Overrides auf Eigenschaften und/oder Methoden aus der Basisimplementierung zu implementieren.

Mittels die Angaben DefaultAuthor und DefaultCreator ist es möglich um im erstellten PDF-Datei die Author- und Creator-Metadaten zu setzen. Diese Angaben werden als MetaDaten am Konverter übergeben und sollten vom Konverter in der PDF-Datei gesetzt werden. Die Beispielimplementierungen in TAA unterstützen das setzen von diese Metadaten ab TAA 9.03.

Standardmäßig wird dieser Konvertierer für OpenXml-Dateien (*.docx und *.doc) aufgerufen. Er kann aber auch für andere Typen verwendet werden. Dafür dient der Eintrag Types: Hier kann man durch Semikolon getrennt die Datei-Erweiterungen eintragen, die vom Konverter umgewandelt werden sollen, zum Beispiel: „docx;doc;rtf“.

Beim Erstellen eines PDF-Formulars gibt es in der TAA zwei unterschiedliche Arten, wie Checkbox-Gruppen generiert werden. Die Generierung, die standardmäßig verwendet wird, entspricht der eigentlich empfohlenen Vorgehensweise. Leider gibt es dabei aber teilweise Probleme bei Darstellung und Druck auf Apple-Systemen. Deshalb gibt es zusätzlich eine Möglichkeit, die Checkbox-Gruppen anders zu generieren, sodass Apple damit umgehen kann. Allerdings ist es dabei nicht möglich, ein Kreuz zu entfernen. Die alternative Generierung wird mit der Einstellung UseAlternativePdfFormGroupMethodForApple ausgewählt.

Die Klasse IPdfConverter ist wie folgt in der Namespace TeamWiSE.TAA.Common definiert:

	//	I P d f C o n v e r t e r
	//	-------------------------
	public Interface IPdfConverter
	{
		string LastError { get; }
		string Trace{ get; }
		string SupportsFileTypes { get; }
		bool CanSign { get; }
		void MetaDataClear();
		void MetaDataAdd(string sIdentifier, string sValue);
		bool Convert(string szSourceFile, string szPdfFile, string szTitle);
		void Cleanup();
	}

Falls der Aufruf von Convert durch den Rückkehrwert false angibt, dass beim Konvertieren ein Fehler aufgetreten ist, kann über LastError ein Fehlertext abgefragt werden.

Die Eigenschaft SupportsFileTypes wird genutzt, um abzufragen, welche Datei-Typen dieser Konverter verarbeiten kann. Der Konverter kann für mehrere Datei-Typen verwendet werden. Als Rückkehrwert sollte der Konverter ein durch Semikolon getrennte Liste von Datei-Erweiterungen zurückgeben, die vom Konverter umgewandelt werden können, zum Beispiel: „docx;doc;rtf“

Die Eigenschaft CanSign ist als Vorbereitung für das Signieren von PDF-Dateien aufgenommen worden. Da noch nicht festgelegt wurde, wie dies erfolgen soll, ist noch keine eine weitere Implementierung des Signierens vorhanden. Die Basisimplementierung unterstützt das Signieren von PDF-Dokumenten somit auch noch nicht.

Beim Aufruf von Convert wird mit dem Argument szSourceFile die Datei übergeben, die konvertiert werden soll. Das erstellte PDF wird in die Ergebnis-Datei szPdfFile geschrieben.

Das letzte Argument szTitle wird verwendet, um den Titel des Dokuments zu übergeben. Dieses Argument wird nicht unbedingt benötigt, ermöglicht aber das Erstellen von für den Benutzer besser lesbaren Fehlertexten (siehe auch LastError).

Als Vorbereitung für die Unterstützung zum Setzen von MetaData an PDF-Dokumenten gibt es die Methoden MetaDataAdd und MetaDataClear. Die Basis-Implementierung unterstützt jedoch das Setzen von Metadaten im PDF-Dokument noch nicht.

Beispielimplementierungen

In der TAA gibt es bereits zwei Beispielimplementierungen für einen Konverter. Diese Implementierungen können auch für die Konvertierung genutzt werden.

Einer dieser Konvertierer nutzt Microsoft Word, um OpenXML in PDF zu konvertieren. Hierzu muss Microsoft Word auf dem Rechner installiert sein. Für diesen Konvertierer sind folgende Einträge erforderlich:

  HKEY...[]\Config\PdfConverter\: Assembly (Zeichenfolge)       "TeamWiSE.CommonControls"
  HKEY...[]\Config\PdfConverter\: Class (Zeichenfolge)          "TeamWiSE.TAA.Common.PdfConverterWord"
  HKEY...[]\Config\PdfConverter\: Types (Zeichenfolge)          "rtf;doc;docx"
  

Der zweite Konvertierer nutzt das TX-TextControl für die Konvertierung. Hierfür ist folgendes einzutragen:

  HKEY...[]\Config\PdfConverter\: Assembly (Zeichenfolge)       "TeamWiSE.CommonControls"
  HKEY...[]\Config\PdfConverter\: Class (Zeichenfolge)          "TeamWiSE.TAA.Common.PdfConverterTxText"
  HKEY...[]\Config\PdfConverter\: Types (Zeichenfolge)          "rtf;doc;docx"
  HKEY...[]\Config\PdfConverter\: DefaultAuthor (Zeichenfolge)  "ALTE LEIPZIGER - HALLESCHE Konzern"
  HKEY...[]\Config\PdfConverter\: DefaultCreator (Zeichenfolge) "ALTE LEIPZIGER - HALLESCHE Konzern"

Weiter gibt es mithilfe vom Tx-TextControl auch noch eine Server-Implementierung. Hierfür bitte folgendes eintragen:

  HKEY...[]\Config\PdfConverter\: Assembly (Zeichenfolge)       "TeamWiSE.CommonControls"
  HKEY...[]\Config\PdfConverter\: Class (Zeichenfolge)          "TeamWiSE.TAA.Common.PdfConverterTxTextServer"
  HKEY...[]\Config\PdfConverter\: Types (Zeichenfolge)          "doc;docx"
  HKEY...[]\Config\PdfConverter\: DefaultAuthor (Zeichenfolge)  "ALTE LEIPZIGER - HALLESCHE Konzern"
  HKEY...[]\Config\PdfConverter\: DefaultCreator (Zeichenfolge) "ALTE LEIPZIGER - HALLESCHE Konzern"