PDF-Exporte mehrerer Calc-Tabellen

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

Moderator: Moderatoren

MB29
****
Beiträge: 113
Registriert: Fr, 10.03.2006 16:31

PDF-Exporte mehrerer Calc-Tabellen

Beitrag 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
OpenOffice in der gerade aktuellen Version (Stand Dez. 2009: 3.1.1 DE), und zwar auf diversen (bislang ausschließlich 32Bit-XP) Windows PCs (meist mit eher schwachen Prozessoren, wie z.Bsp. AMD Sokel A oder Intel-Atom).
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: PDF-Exporte mehrerer Calc-Tabellen

Beitrag 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
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
MB29
****
Beiträge: 113
Registriert: Fr, 10.03.2006 16:31

Re: PDF-Exporte mehrerer Calc-Tabellen

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