| 

.NET C# Java Javascript Exception

4
objWordDoc.ExportAsFixedFormat _
OutputFileName:= "G:\temp\test.pdf", _
ExportFormat:=wdExportFormatPDF, _
OpenAfterExport:=False, _
Item:=wdExportDocumentContent, _
IncludeDocProps:=False, ...


ist / wäre perfekt für meine Aufgabenstellung: Im Access-Frontend verwaltete Worddokumente still und leise in ein pdf zu kopieren und dabei den Dateinamen zu kontrollieren, damit ich die so erzeugte pdf als E-Mail-Anhang verwenden kann. Ohne Zusatzkosten für den Nutzer, der für den Einsatz unseres Produkts ohnehin Microsoft-Office-Lizenzen erwerben musste. Bloß, der Hasenfuß: Die Methode ExportAsFixedFormat ExportFormat:=wdExportFormatPDF existiert erst ab Word 12 ("2007"). Und davor? Welche möglichst lizenzkostenfreie Lösung bietet sich dafür an? Wir versprechen, dass unser Produkt mit allen Officeversionen ab 9 ("2000") bis zur aktuellen läuft.

Früher haben wir das und Anderes mit Acrobat gemacht, aber den haben wir zum Glück schon an allen anderen Stellen als Zwangslizenz abgelöst, und er lässt sich beim Word-PDF-"Druck" auch nicht mehr so schick steuern.

Die auf codekicker diskutierten pdflibs, die ich gefunden habe, erzeugen pdfs from scratch oder durch Konversion aus Bilddateien, nicht aus Word.

Einige der pdflibs, die ich im Netz gefunden habe, konvertieren aus Word, aber sind extrem teuer, vor allem, wenn wir nur einen Bruchteil ihrer Möglichkeiten nutzen. Das kauft mir die Firma nie. Der PDFCreator von pdfforge.org / sourceforge.net bietet eine vielversprechende COM-Automatisierungsschnittstelle, aber die darf mein Unternehmer höchstwahrscheinlich nicht nutzen, weil das Produkt closed-source ist.

Vergleichsweise aufwändig stelle ich mir als Sharp-Anfänger vor, eine .NET-dll selbst zu programmieren und für Access mit einem COM-Wrapper zu versehen. Oder kennt jemand Beispielcode?

Was habe ich noch nicht gefunden? Öffnet mir bitte die Augen.
15.04.2012
mupan 575 1 8
mupan 575 1 8
3 Antworten
2
Ich würde das auch über einen PDF Drucker lösen. Meine Empfehlung: eDocPrintPro.
Habe damit mal ein kleines Tool erstellt, welches über Outlook eine Email mit Word, Excel oder PowerPoint Anhängen öffnet, die Anhänge und PDF umwandelt und das PDF an den Absender zurücksendet. Ging alles mit der kostenlosen Version. Für komplexere Programmieraufgaben haben die auch ein SDK (habe ich aber selber noch nicht benutzt, kann daher nichts über die Qualität sagen).
16.04.2012
Jaksa 4,0k 1 8
Ich hab eDocPrintPro bei mir installiert und mir die Schnittstelle angesehen. Bis jetzt hab ich noch keine Konvertiermethode gefunden, und es sieht mir auf xkey.at so aus, als sei die dem SDK (600 Euro) vorbehalten. Vielleicht steh ich auf dem Schlauch ... wie stellst du dir vor soll ich den Drucker steuern?
mupan 16.04.2012
OK, .ps lässt sich direkt in .pdf konvertieren mit dem kostenlosen Druckertreiber. Damit lässt sich was anfangen, Word anweisen, in eine .ps zu drucken, und mit eDocPrintPro in eine .pdf konvertieren. Könnte passen, muss ich ausprobieren. Danke!
mupan 16.04.2012
1
Hm, mit den älteren Word-Versionen, die noch kein PDF abspeichern konnten, mußte man sich ja auch als ganz normal davorsitzender Anwender irgendwie behelfen. Die Lösungen liefen in der Regel darauf hinaus, einen Druckertreiber zu installieren, der das Dokument "gedruckt" hat, in dem er es als PDF abgespeichert hat. Vielleicht kannst Du ja diesen Ansatz verfolgen? Herausforderung dürfte sein, den normalerweise dann irgendwann erscheinenden Dateiauswahl-Dialog (der ja nicht mehr zu Word gehört, sondern zu dem Druckertreiber) mit dem richtigen Input zu versorgen.
Konkrete Produktnamen hab ich gerade nicht parat, sollten sich aber googeln lassen. Sollte auch Freeware dabei sein, ob quell-offen, weiß ich aber nicht - bis auf eine Ghostscript-basierende Lösung, die so soder so ähnlich bei einem früheren Arbeitgeber von mir tatsächlich im Einsatz war. War qualitativ für meinen Geschmack nicht das beste, aber dafür sollten hier die Chancen recht gut stehen, an den Quellcode des Treibers bzw. PS-nach-PDF-Konverters zu kommen und so den Dateinamen programmatisch einzusteuern.
16.04.2012
Matthias Hlawatsch 13,2k 4 9
Ich dachte zuerst, du wolltest mir in etwa

Shell "gs.exe -pdfwrite ... -output " & strPathFileName & "..."

verkaufen ;-) Ich hab aber mal in den Ghostscript-Programmordner geschaut. gsdll32.dll (auf Windows) bietet eine etwas gruselige API. Als Übergangslösung für ältere Wordversionen durchaus okay. Wenn jetzt noch die Lizenz passt ...
mupan 16.04.2012
Danke, guter Hinweis.
mupan 16.04.2012
0
Hi Mupan,

ich verwende für COM Sachen immer noch den PDFCreator. Dieser bietet eine entsprechende Schnittstelle. Der PDFCreator ist auch Ghostscript basierend.

Gruß Karl

http://de.pdfforge.org/pdfcreator
16.04.2012
Karl 958 8

Stelle deine Pdf-Frage jetzt!