Seite 1 von 1

PDF-Exporte mehrerer Calc-Tabellen

Verfasst: Mo, 28.12.2009 00:25
von MB29
Hallo,

ich brauche wieder Hilfe. Gerade sitze ich an der Datei aus diesem Thread: viewtopic.php?f=18&t=28422&p=117571&hil ... rt#p117571

Ich hatte es geschafft mittels einer Prozedur (damit meine ich das was zwischen Sub und End Sub steht) bestimmte Zellen eines Calc-Tabellenblatt mit Daten aus einer anderen Tabelle dieser Datei zu füttern und die so aktualisierte Tabelle zu kopieren und ans Ende der Calc-Datei zu stellen.

Code: Alles auswählen

Dim ... As Objekt
Dim NeuerName As String
Dim I As Integer

Doc = ThisComponent
...

For I 5 to 20
Cell01 = Sheet.getCellRangeByName("C3")
Cell01.Formula = "=$Tabelle04.$D" & I
...

NeuerName = LTRIM(Cell01.String)
Doc.Sheets.CopyByName("Tabelle05", NeuerName, Sheets.Count)

Next I
End Sub
Nun gelingt es mir leider nicht, die die neu erstellten Tabellen, bzw. die vollständig gefüllte Tabellenvorlage (Tabelle05) auch als seperate .pdf-Dateien zu exportieren.

Kann/soll man diese weitere Aufgabe in dieser Prozedur hinzu programmieren? Ich wüßte nicht wie. So eine Funktion wie

Code: Alles auswählen

Doc.Sheets.ExportToPDF(...)

scheint es nicht zu geben, zumindest finde ich dazu nichts.

Mir ist in dem gesamten Zusammenhang insbesondere folgendes unklar:

a) Kann ich die obige Schleife nutzen um in dem Zwischenstadium (also unmittelbar vor Next I) in dem die Vorlagetabelle geade vollständig mit den Daten aus dem Datensatz der anderen Tabelle gefüllt ist, bzw. gerade eine neue Tabelle kopiert und ans Ende gestellt wurde den .pdf-Export einbauen oder muss ich dazu, wohl mit einer zweiten Prozedur, eine neue/weitere Schleife durchlaufen lassen und wie müsste diese ggf. aufgebaut werden (lässt man wieder die Datensätze der anderen Tabelle durchlaufen oder die neuen Tabellennamen?).

b) Wie definiere ich den Druckbereich, bzw. die Zellen die - im gleichen Verzeichnis jeweils in eine eigene neue .pdf-Datei mit dem Namen des neuen Tabellenblatts - exportiert werden sollen. Im konkreten Fall lautet der Druckbereich dieser Tabelle (also der jeweils zu exportierende Zellbereich): C3:G40, bzw. $C$3:$G$40;$C$3:$G$40

c) Wenn ich nach Code-Beispielen suche stoße ich immer wieder auf den Befehl: >> Redim << Kann mir bitte jemand erklären was das bewirkt und wann man das wozu einsetzt.

d) Schließlich habe ich u.a. hier im Forum: BeispielCode zum .pdf-Export wie z.Bsp. auszugsweise diesen gefunden: viewtopic.php?f=2&t=22029&p=94124&hilit ... ame#p94124

Code: Alles auswählen

dim args11(1) as new com.sun.star.beans.PropertyValue
args11(0).Name = "URL"
args11(0).Value = dateipfad
args11(1).Name = "FilterName"
args11(1).Value = "calc_pdf_Export"
dispatcher.executeDispatch(document, ".uno:ExportDirectToPDF", "", 0, args11())
Weiß jemand wo man diese Funktion, insbesondere die Bedeutung der Parameter nachlesen kann? (Insbesondere ist mir der Sinn der Zahlen in den Klammern (Bsp.: args11(1))


Vielen Dank vorab - Mo

.
Die nachfolgenden Links sind zur eigenen Erinnerung gedacht.
viewtopic.php?f=18&t=14222&p=57193&hili ... ame#p57193
viewtopic.php?f=2&t=6710&p=25508&hilit= ... ame#p25508
.
http://wiki.services.openoffice.org/wik ... PDF_export
http://api.openoffice.org/docs/Develope ... rint_Areas

http://www.ooowiki.de/FeldinhaltAlsDateiname

Re: PDF-Exporte mehrerer Calc-Tabellen

Verfasst: Mo, 28.12.2009 06:24
von Karolus
Hallo

Code: Alles auswählen

dim args11(1) as new com.sun.star.beans.PropertyValue
'in der 1. Zeile wird ein "Array-objekt" erzeugt mit 2 Argumentpaaren (Indexzählung beginnt mit 0 'daher die (1) ) , und an den Namen "args11" gebumden 
'in den folgenden Zeilen werden den Argumentpaaren Namen und Werte zugewiesen -
args11(0).Name = "URL"
args11(0).Value = dateipfad
args11(1).Name = "FilterName"
args11(1).Value = "calc_pdf_Export"
-und in der nächsten Zeile wird das "Gesamtobjekt" args11 in die Dispatcherausführung übergeben.
dispatcher.executeDispatch(document, ".uno:ExportDirectToPDF", "", 0, args11())
Gruß Karo

Re: PDF-Exporte mehrerer Calc-Tabellen

Verfasst: Mo, 28.12.2009 07:37
von MB29
Hallo und danke für die Hinweise Karo!
Karolus hat geschrieben:

Code: Alles auswählen

dim args11(1) as new com.sun.star.beans.PropertyValue
'in der 1. Zeile wird ein "Array-objekt" erzeugt mit 2 Argumentpaaren (Indexzählung beginnt mit 0 'daher die (1) ) , und an den Namen "args11" gebu[i]n[/i]den
Endlich habe ich das soweit verstanden.
Kann man irgendwo zu den Argumentenpaaren genaueres nachlesen? In manchen Codebeispielen habe ich im vorliegenden Zusammenhang mehr als nur zwei Argumentenpaare gesehen (z.Bsp.:

Code: Alles auswählen

args(2).Name = "CompressMode"
args(2).Value = 0
)
- Welche Argumentenpaare kann man neben den beiden oben verwendeten noch erzeugen? Was passiert im Gegensatz dazu wenn man das nicht macht?
- Kann man diese Argumente in beliebiger Reihenfolge verwenden (z.Bsp. etwa "FilterName" mit "(0)" vor "URL" mit "(1)")?
Karolus hat geschrieben:

Code: Alles auswählen

 
'und in der nächsten Zeile wird das "Gesamtobjekt" args11 in die Dispatcherausführung übergeben.
dispatcher.executeDispatch(document, ".uno:ExportDirectToPDF", "", 0, args11())
Wo kann ich zur "Dispatcherausführung", insb. zur Bedeutung und Reihenfolge der Argumente genaueres nachlesen? Warum heißt es dort: ... "", 0, args11()) ? Ich meine mich an Codebeispiele zu erinnern, in denen es nicht "args()" sondern z.Bsp. "args(1)" hieß.

Nochmals danke und hoffentlich bekomme ich auch noch Beiträge zu den anderen angesprochenen Fragen.