Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

VB6 und Office Word

10 views
Skip to first unread message

Lothar Geyer

unread,
Sep 3, 2023, 4:18:05 AM9/3/23
to
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

unread,
Sep 3, 2023, 8:19:32 AM9/3/23
to
> 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

unread,
Sep 3, 2023, 8:35:19 AM9/3/23
to
> 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).

> 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?

> 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.

> 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

Klaus Ketelaer

unread,
Sep 3, 2023, 9:36:47 AM9/3/23
to
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

unread,
Sep 3, 2023, 9:39:15 AM9/3/23
to

Wolfgang Bußmann

unread,
Sep 3, 2023, 1:03:07 PM9/3/23
to

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

unread,
Sep 3, 2023, 3:34:59 PM9/3/23
to
Hallo,

Am 03.09.2023 um 19:03 schrieb 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

unread,
Sep 4, 2023, 10:15:01 AM9/4/23
to
> 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.


>> 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

Wendelin Uez

unread,
Sep 4, 2023, 10:15:01 AM9/4/23
to
> Besser ein PDF-Printer, von MS oder ein Fremdprodukt.

Hat MS/Windows wirklich einen separat nutzbaren PDF-Treiber?

Wolfgang Bußmann

unread,
Sep 4, 2023, 12:11:56 PM9/4/23
to

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

Ulrich Möller

unread,
Sep 4, 2023, 3:01:21 PM9/4/23
to
Hallo,


Am 04.09.2023 um 16:13 schrieb Wendelin Uez:
>> 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

Dieter Strassner

unread,
Sep 4, 2023, 3:53:36 PM9/4/23
to
Am 03.09.2023 um 10:17 schrieb 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

unread,
Sep 6, 2023, 3:49:55 AM9/6/23
to
> 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

unread,
Sep 8, 2023, 1:51:42 PM9/8/23
to
Hallo Wendelin,
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.
0 new messages