Discussion:
VB6 und Office Word
(zu alt für eine Antwort)
Lothar Geyer
2023-09-03 08:17:52 UTC
Permalink
Ich erstelle in einem VB6-Programm ein Word-Dokument. Nun möchte ich
dieses Dokument als pdf-Datei speichern. Wie geht das bzw. wo finde ich
eine entsprechende Doku? Seit welcher Word-Version ist das verfügbar?
Gibt es auch in OpenOffice eine entsprechende Funktion?

Vielen Dank im Voraus.

Lothar Geyer
Wendelin Uez
2023-09-03 12:16:10 UTC
Permalink
Post by Lothar Geyer
Ich erstelle in einem VB6-Programm ein Word-Dokument. Nun möchte ich
dieses Dokument als pdf-Datei speichern. Wie geht das bzw. wo finde ich
eine entsprechende Doku? Seit welcher Word-Version ist das verfügbar?
Gibt es auch in OpenOffice eine entsprechende Funktion?
Doe Speicherung als PDF-Dokument erfolgt durch Ausgabe über einen externen
PDF-Druckertreiber oder ein Textprogramm mit PDF-Export, einem quasi
internen Treiber für PDF-Code.


Statt OpenOffice nutze ich u.a. den Abkömmling Libre Office, der hat
mindestens seit 6.3 einen PDF-Export.
Textmaker hat ebenfalls einen, weitere Office-Programme sehr wahrscheinlich
auch.

Ich würde aber nicht den Umweg über die Ansteuerung durch eine
Office-Anwendung gehen (die sich jederzeit vom Acker oder anderen Ärger
machen kann), sondern schlicht über einen frei verfügbaren
PDF-Druckertreiber. Es gibt einige davon. Im Zweifel nimmt man den
kostenpflichtigen(?) von Adobe.

Man kann zur Laufzeit die aktuell verfügbaren Druckertreibernamen auslesen
und denjenigen nehmen, der ein 'PDF' im Namen trägt, dann muß der Kunde nur
irgendeinen beliebigen installiert haben.
Lothar Geyer
2023-09-03 12:35:08 UTC
Permalink
Post by Wendelin Uez
Doe Speicherung als PDF-Dokument erfolgt durch Ausgabe über einen
externen PDF-Druckertreiber oder ein Textprogramm mit PDF-Export, einem
quasi internen Treiber für PDF-Code.
Ich dachte, da gibt es einfach einen Menü-Punkt in Word, den man über
eine API ansteuern kann, so wie man Textmarken ersetzen kann usw.

Anwendung: mit meinem Programm kann man Anfrage, Angebote, Aufträge,
Rechnungen usw. erstellen, ggfls. manuell ändern und dann ausdrucken.
Das möchte ich nun so erweitern, dass man ohne viel Aufwand z.B. ein
Angebot als pdf per E-Mail versenden kann (das Programm hat einen
E-Mail-Client).
Post by Wendelin Uez
Statt OpenOffice nutze ich u.a. den Abkömmling Libre Office, der hat
mindestens seit 6.3 einen PDF-Export.
Textmaker hat ebenfalls einen, weitere Office-Programme sehr
wahrscheinlich auch.
Libre Office und Textmaker hat noch niemand gefordert. Wo finde ich die
Dokus zu den Schnittstellen?
Post by Wendelin Uez
Ich würde aber nicht den Umweg über die Ansteuerung durch eine
Office-Anwendung gehen (die sich jederzeit vom Acker oder anderen Ärger
machen kann), sondern schlicht über einen frei verfügbaren
PDF-Druckertreiber. Es gibt einige davon. Im Zweifel nimmt man den
kostenpflichtigen(?) von Adobe.
Office ist halt immer noch die meist gebräuchliche Textverarbeitung.
Post by Wendelin Uez
Man kann zur Laufzeit die aktuell verfügbaren Druckertreibernamen
auslesen und denjenigen nehmen, der ein 'PDF' im Namen trägt, dann muß
der Kunde nur irgendeinen beliebigen installiert haben.
Wie macht man das? Muss ich mir mal ansehen.

Lothar Geyer
Wendelin Uez
2023-09-04 14:09:57 UTC
Permalink
Ich dachte, da gibt es einfach einen Menü-Punkt in Word, den man über eine
API ansteuern kann, so wie man Textmarken ersetzen kann usw.
Den Menüpunkt "Export" kannst du so wie jeden anderen auch ansteuern.
Libre Office und Textmaker hat noch niemand gefordert. Wo finde ich die
Dokus zu den Schnittstellen?
Weiß ich nicht, Hersteller fragen. Gibt es denn für Word ein API? Soweit ich
weiß geht das doch bloß per VB-Makro.

Deswegen würde ich auch nicht den Weg über ein spezifische Textprogramm
nehmen, sondern einen PDF-Drucker installieren, dann bist du vom
Textprogramm unabhängig.
Office ist halt immer noch die meist gebräuchliche Textverarbeitung.
PDFAusgabe hat mit Office,s.o., nix zu tun. Mit einem einmal installierten
PDF-Treiber kann **jedes** Windowsprogramm, das drucken kann, die
Druckausgabe als PDF-File ablegen. Bei ganz dummen Programmen ohne
Druckerauswahlmöglichkeit, die also nur auf den Standarddrucker ausgeben,
müsste man zuvor halt den Standard-Drucker ändern. Dann können auch
Ururaltprgramme PDFs erstellen.
Post by Wendelin Uez
Man kann zur Laufzeit die aktuell verfügbaren Druckertreibernamen
auslesen und denjenigen nehmen, der ein 'PDF' im Namen trägt, dann muß
der Kunde nur irgendeinen beliebigen installiert haben.
Wie macht man das? Muss ich mir mal ansehen.
on the fly:

Dim PRN As Printer
For Each PRN in Printers
IF Instr(UCase$(PRN.DeviceName)."PDF") >0 Then
Set Printer = PRN
Printer.Print "irgendwas"
Printer.EndDoc
Exit For
End If
Next PRN
Klaus Ketelaer
2023-09-03 13:36:45 UTC
Permalink
Post by Lothar Geyer
Ich erstelle in einem VB6-Programm ein Word-Dokument. Nun möchte ich
dieses Dokument als pdf-Datei speichern. Wie geht das bzw. wo finde ich
eine entsprechende Doku? Seit welcher Word-Version ist das verfügbar?
Gibt es auch in OpenOffice eine entsprechende Funktion?
Vielen Dank im Voraus.
Lothar Geyer
Schau Dir mal https://www.7-pdf.de an. Die bieten diverse Tools zum
PDF-Export an, u.a. ein Active-X Modul, das man direkt in VB nutzen
kann.

Gruß Klaus
Klaus Ketelaer
2023-09-03 13:39:13 UTC
Permalink
Hier gehts zum COM-Modul

https://www.7-pdf.de/produkte/pdf-maker/com-interface-pdf-erzeugung-fuer-entwickler
Wolfgang Bußmann
2023-09-03 17:03:04 UTC
Permalink
Hallo Lothar,

ich vermute, Du erzeugst die Word Datei über das ("Word.Application")
Objekt mit den entsprechenden COM-Befehlen.

In diesem Fall hilft Dir vielleicht folgender Link weiter:
https://www.codeproject.com/Questions/4114400/How-to-convert-word-document-to-PDF-in-VB-6-0

Leider weiß ich nicht, ob das erforderliche AddIn jetzt evt. in Word
enthalten ist.

Laut folgendem Link muss es aber auch so gehen.
https://praxistipps.chip.de/word-dokumente-in-pdf-umwandeln_3039

Hierzu auch noch folgender Link von Microsoft:

https://learn.microsoft.com/de-de/office/vba/api/word.saveas2

In den "WdSaveFormat" Konstanten gibt es auch ein PDF Format.

Das dürfte wahrscheinlich die einfachste Variante sein. Aus meiner
Erfahrung mit einem anderen Textverarbeitungsprogramm könnte es aber
beim Speichern durch leicht unterschiedliche Blattgrößen zu ungeplanten
Umbrüchen kommen. Hier reichten schon 0,01 cm.

Gruß

Wolfgang
Ulrich Möller
2023-09-03 19:34:58 UTC
Permalink
Hallo,
Post by Wolfgang Bußmann
In den "WdSaveFormat" Konstanten gibt es auch ein PDF Format.
Das dürfte wahrscheinlich die einfachste Variante sein.
... wahrscheinlich aber nicht, denn das bedeutet, daß Word auch in der
32Bit Variante installiert sein muß, wenn das aus VB6 angesteuert werden
soll. Das ist heute aber leider immer seltener der Fall.

Besser ein PDF-Printer, von MS oder ein Fremdprodukt.

Gruß Ulrich
Wendelin Uez
2023-09-04 14:13:52 UTC
Permalink
Post by Ulrich Möller
Besser ein PDF-Printer, von MS oder ein Fremdprodukt.
Hat MS/Windows wirklich einen separat nutzbaren PDF-Treiber?
Ulrich Möller
2023-09-04 19:01:18 UTC
Permalink
Hallo,
Post by Wendelin Uez
Post by Ulrich Möller
Besser ein PDF-Printer, von MS oder ein Fremdprodukt.
Hat MS/Windows wirklich einen separat nutzbaren PDF-Treiber?
ja, heißt Microsoft Print to Pdf. Das ist aber ein PDF-Drucker,kein Treiber.

Ich verwende zusätzlich noch den FreePDF, der tut es immer noch, sogar
unter Windows 11

Gruß Ulrich
Wolfgang Bußmann
2023-09-04 16:11:54 UTC
Permalink
Hallo Lothar,

es wäre sicher für alle interessant, wie Du die Word-Dokumente erstellst
und wie Du die Dokumente aus Deiner Anwendung genau drucken möchtest.

Gruß

Wolfgang
Dieter Strassner
2023-09-04 19:53:33 UTC
Permalink
Post by Lothar Geyer
Ich erstelle in einem VB6-Programm ein Word-Dokument. Nun möchte ich
dieses Dokument als pdf-Datei speichern. Wie geht das bzw. wo finde ich
eine entsprechende Doku? Seit welcher Word-Version ist das verfügbar?
Gibt es auch in OpenOffice eine entsprechende Funktion?
Vielen Dank im Voraus.
Lothar Geyer
Hallo Lothar,

wir erstellen ebenfalls WORD-Dokumente, Als Basis benutzen wir die vom
Kunden erstellten DOTX-Vorlagen. Diese werden dann -ohne MS-WORD-
ausgefüllt und dabei in ein DOCX-Dokument umgewandelt. Dann kommt das
eingekaufte Tool "DOCX to PDF Converter" (DPS32.DLL) zum Einsatz. Dieses
Tool ist sehr flott, stellt keine "unnötigen Fragen" und speichert die
PDF -wo auch immer- ab. Diesen Ablauf können wir daher auch im
Server-Betrieb und unter MSTS+Citrix regfree einsetzen.
--
Viele Grüße - Dieter

Strassner Informatik GmbH & Co KG
68623 Lampertheim
Internet: www.strassner.biz
Wendelin Uez
2023-09-06 07:49:08 UTC
Permalink
Post by Dieter Strassner
wir erstellen ebenfalls WORD-Dokumente, Als Basis benutzen wir die vom
Kunden erstellten DOTX-Vorlagen. Diese werden dann -ohne MS-WORD-
ausgefüllt und dabei in ein DOCX-Dokument umgewandelt.
Mit welchem Nicht-MS-OCX/DLL kann man denn sowas machen? Ich kenne das
bisher nur per Aufruf und Kontrolle eines anderen kompatiblen Textprogramms
wie z.B. Textmaker.
Dieter Strassner
2023-09-08 17:51:40 UTC
Permalink
Hallo Wendelin,
Post by Wendelin Uez
Post by Dieter Strassner
wir erstellen ebenfalls WORD-Dokumente, Als Basis benutzen wir die vom
Kunden erstellten DOTX-Vorlagen. Diese werden dann -ohne MS-WORD-
ausgefüllt und dabei in ein DOCX-Dokument umgewandelt.
Mit welchem Nicht-MS-OCX/DLL kann man denn sowas machen? Ich kenne das
bisher nur per Aufruf und Kontrolle eines anderen kompatiblen
Textprogramms wie z.B. Textmaker.
Wir haben uns eine eigene (umfangreiche) DLL programmiert, die die dotx
zerlegt in die Einzelzeile, die Replaces durchführt, dann wieder gezippt
und in docx umbekannt (....war jetzt die Kurzform). Anschliessend kommt
die gekaufte DLL zum Einsatz und erstellt die PDF aus der DOCX.

Die eigene DLL ist allerdings stark verwoben mit den SEMINAR-Funktionen.
Die zu adaptieren wird sehr arbeits-/zeitintensiv sein.
--
Viele Grüße - Dieter

Strassner Informatik GmbH & Co KG
68623 Lampertheim
Internet: www.strassner.biz
Loading...