Seite 1 von 1

PDF Export mit Dateiname aus Zelle

Verfasst: Sa, 23.01.2010 13:10
von Thorsten_Z
Moin Forum,
Mit folgendem Code möchte ich meine ausgewählten Taellen als PDF exportieren und dabei den Dateinamen aus einer Zelle wählen.
Habe den Code hier aus dem Forum, und versucht ihn für mich anzupassen... ohne Erfolg. Wer kann mir helfen?

Code: Alles auswählen

Dim myProps(0) as New com.sun.star.beans.PropertyValue

meinPfad = "C:\Dokumente%20und%20Einstellungen\All%20Users\Desktop\"   ' Windows

' Wert aus Tabelle Stammdaten, K1
meinDateiname = ThisComponent.getSheets().getByName( "Stammdaten").getCellRangeByName( "K1" ).getString()

adresse = ("meinPfad" & "meinDateiname")

myProps(0).Name="FilterName"
myProps(0).Value = "calc_pdf_Export"

ThisComponent.storetoUrl(adresse ,myProps(0))   'hier bricht er ab....
Was mache ich falsch?

Gruß
Thorsten

Re: PDF Export mit Dateiname aus Zelle

Verfasst: Sa, 23.01.2010 13:59
von turtle47
Hallo Thorsten,
Thorsten_Z hat geschrieben:Was mache ich falsch?
Auf den ersten Blick hast Du Converttourl vergessen.

OO.o-Basic erwartet die Pfadangabe so:

Code: Alles auswählen

meinPfad =  converttourl("C:/Dokumente und Einstellungen/All Users/Desktop/")
Die Leerzeichen werden automatisch umgewandelt. :lol:

Das kannst Du Dir ja mal in einer MsgBox anzeigen lassen wie es dann aussieht:

Code: Alles auswählen

MsgBox converttourl("C:/Dokumente und Einstellungen/All Users/Desktop/")
Oder aber Du schreibst direkt:

Code: Alles auswählen

meinPfad = "file:///C:/Dokumente%20und%20Einstellungen/All%20Users/Desktop/" 
Viel Erfolg.

Jürgen

Re: PDF Export mit Dateiname aus Zelle

Verfasst: Sa, 23.01.2010 14:24
von Thorsten_Z
Hallo Jürgen,
danke für deine Antwort.
Wg. der Lesezeichen... bin totaler Oo Neuling.Habe nur Erfahrung in VBA :(
Hab jetzt also den Code nach deiner Anweisung geändert. Es ist auch nur ein Ausschnitt aus meinem Code. Er bricht mit der gleichen Fehlermeldung ab. "cannot coerce agument type during corereflection call!"
Schau doch bitte nochmal drüber. Mu0 ich noch was deklarieren o.ä.?

Code: Alles auswählen

sub DruckJan
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
....... 'ganz viel Code zum erstellen der Druckbereiche
rem ----------------------------------------------------------------------
Dim myProps(0) as New com.sun.star.beans.PropertyValue

meinPfad = "file:///C:/Dokumente%20und%20Einstellungen/All%20Users/Desktop/"   ' Windows

' Wert aus Tabelle Stammdaten, K1
meinDateiname = ThisComponent.getSheets().getByName( "Stammdaten").getCellRangeByName( "K1" ).getString()

adresse = ("meinPfad" & "meinDateiname")

myProps(0).Name="FilterName"
myProps(0).Value = "calc_pdf_Export"

ThisComponent.storetoUrl(adresse ,myProps(0)) 'bricht wieder hier ab.

rem ----------------------------------------------------------------------
'...... Ganz viel Code zum aufheben der Druckbereiche 
rem ----------------------------------------------------------------------
end Sub 
Wäre toll, wenn du noch eine Idee hättest.

Gruß
Thorsten

Re: PDF Export mit Dateiname aus Zelle

Verfasst: Sa, 23.01.2010 15:10
von turtle47
Hi Thorsten,

der erste Fehler liegt in der Zeile:

Code: Alles auswählen

adresse = ("meinPfad" & "meinDateiname")
Dort übergibst Du keine Variablen sondern nur Text, nämlich "meinPfad" und "meinDateiname"

Richtig ist

Code: Alles auswählen

adresse = (meinPfad & meinDateiname)
Der zweite Fehler liegt bei der Übergabe der Exportparameter. Dort muss der Filter und die URL übergeben werden:

Hier mal ein funktionierender Code:

Code: Alles auswählen

sub DruckJan
	dim document   as object
	dim dispatcher as object
	rem ----------------------------------------------------------------------
	'ganz viel Code zum erstellen der Druckbereiche
	rem ----------------------------------------------------------------------
	meinPfad = "C:/Dokumente und Einstellungen/All Users/Desktop/"   ' Windows
    ' Wert aus Tabelle Stammdaten, K1
	meinDateiname = ThisComponent.getSheets().getByName( "Stammdaten").getCellRangeByName( "K1" ).getString()
	adresse = converttourl(meinPfad & meinDateiname & ".pdf")'Suffix PDF mitgeben wenn nicht im Dateinamen enthalten!
	document = ThisComponent.CurrentController.Frame
	dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
	dim args1(1) as new com.sun.star.beans.PropertyValue
	args1(0).Name = "URL"
	args1(0).Value = adresse
	args1(1).Name = "FilterName"
	args1(1).Value = "calc_pdf_Export"
	dispatcher.executeDispatch(document, ".uno:ExportDirectToPDF", "", 0, args1())

    rem ----------------------------------------------------------------------
    '...... Ganz viel Code zum aufheben der Druckbereiche
    rem ----------------------------------------------------------------------
end Sub [code]
[/code]

Wenn der Dateiname in der Zelle ohne den Suffix steht muss man diesen mit

Code: Alles auswählen

& ".pdf"
auch noch mitgeben!

Ich hoffe das hilft weiter.

Jürgen

Re: PDF Export mit Dateiname aus Zelle

Verfasst: Sa, 23.01.2010 18:01
von Thorsten_Z
.... Das hat ja mal gut geklappt :D :D . Vielen Dank Jürgen.
Funktioniert perfekt.

Gruß
Thorsten