OOo 3.3: Serienbrief als PDF

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Pulastor
Beiträge: 8
Registriert: Mi, 13.07.2011 08:21

OOo 3.3: Serienbrief als PDF

Beitrag von Pulastor »

Hallo,

ich benutze zur Serienbrieferstellung ein VBS-Macro, welches neben der Mischfunktion, das Ergebnis auf einen PDF-Drucker ausgebit. Leider funktioniert ab OO-Vesion 3.3 die Umleitung auf den PDF-Drucker nicht mehr. Der Serienbrief wird immer auf den Window-Standarddrucker ausgegeben.
Folgendes Script wird verwendet :

Code: Alles auswählen

sub Main
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
dim Connection  as object
Dim InteractionHandler as Object
Dim  oDoc as Object

rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Printer"
args1(0).Value = "PDFCreator"

dispatcher.executeDispatch(document, ".uno:Printer", "", 0, args1())


' create a db context 
 dbContext = createUnoService("com.sun.star.sdb.DatabaseContext") 
 
 ' get the existing mysql data source 
 dbNwica = dbContext.getByName("SERIEODS") 
 
 ' supply the password 
	IF NOT dbNwica.IsPasswordRequired THEN
	Connction = dbNwica.GetConnection("","")' ("Benutzername","Passwort")
	else
   	InteractionHandler = createUnoService("com.sun.star.sdb.InteractionHandler")
   	Connection = dbNwica.ConnectWithCompletion(InteractionHandler)
	end if

MailMerge = createunoservice("com.sun.star.text.MailMerge")
MailMerge.DataSourceName="SERIEODS"
MailMerge.DocumentURL=thisComponent.getURL()
MailMerge.CommandType=1
MailMerge.Command="Abfrage1"
MailMerge.OutputType=1
Dim MyProps() as Object
if (inStr(thisComponent.getURL(),".ODT") > 0) Then
rc = msgbox("Haben Sie für diesen Brief die Calc-Datei Mischdaten.ods Im Verzeichnis U:\Serien ausgetauscht oder aktualisiert ?",36,"Sparkasse Jena - Sereinbriefdruck")
if (rc = 6) Then
MailMerge.execute(MyProps())
Else
msgbox ("1. Diesen Brief speichern und schließen " & Chr(13) & Chr(10)& "2.  Calc-Datei Mischdaten.ods Im Verzeichnis U:\Serien austauschen oder aktualisieren"  & Chr(13) & Chr(10)& "3. Diesen Brief wieder öffnen und Makro zum Seriendruck ausführen !",64,"Sparkasse Jena - Sereinbriefdruck"
end if
Else
msgbox "Serienbrief muß vor dem Druck gespeichert werden !",48,"Sparkasse Jena - Sereinbriefdruck"
end if
end sub

Evtl. kann mir jemand einen Tip geben.

Ralf



Moderation,4: verschoben in BASIC-Unterbereich, wo alle Makro-Fragen hin gehören; Betreff angepasst
Benutzeravatar
Feuerdrache
*****
Beiträge: 364
Registriert: Mi, 08.04.2009 23:00

Re: Serienbrief (OO 3.3)

Beitrag von Feuerdrache »

Hallo Pulastor,

willkommen im Forum. Leider kann ich Dir bezüglich Deines Problems nicht helfen, da ich mich bisher nicht mit Makro-Programmierung auseinandergesetzt habe bzw. musste.

Deshalb nur ein Hinweis, wenn Du erneut "Makro"-bezogene Probleme zur Diskussion stellst.

Deine Anfrage gehört eher in das "OOo Basic und Java"-Teilforum.

Ich denke aber, dass unter den "Writer"-Spezialisten auch welche mit Makro-Kenntnissen sich zu Deinem Problem zu Wort melden.

Gruß
Feuerdrache
"Die letzte Stimme, die man hört, bevor die Welt explodiert, wird die Stimme eines Experten sein, der sagt: 'Das ist technisch unmöglich!'"
(Peter Ustinov, engl. Schauspieler und Schriftsteller, 1921 - 2004)
Antworten