Seite 1 von 2

[gelöst] PDF-Dateien mit Tabellennamen

Verfasst: Di 3. Jan 2017, 21:43
von compiopa
Hallo Allerseits,

habe folgendes Problem:
Mein calc Datei hat ca. 100 Tabellen mit individuellen Namen.
Auf jeder Tabelle ist ein Druckbereich definiert.
Das jetzt als PDF auszugeben ist ja kein Problem, ergibt 1 Datei mit ca. 100 Seiten.
Das kann ich aber nicht brauchen.

Ich bräuchte eben diese ca. 100 Tabellen als einzelne PDF-Dateien, die jeweils den Namen der Tabelle haben.
Ist das mit LO machbar?

Ich hatte vor Jahren in meiner MS Zeit viel mit VBA und Excel gemacht, da hätte ich das auch locker hinbekommen. Aber die Zeiten sind lange vorbei.
Nun nutze ich zu 99% Linux und mache mit LO auch keine so komplexen Sachen mehr wie früher mit VBA.
Den ganzen "normalen" Rechen- und Darstellungskram bekomme ich in LO gebacken, das ist ja auch fast identisch, nur eben diese eine PDF-geschichte kommt immer wieder als Problem zutage.

Wäre nett wenn ihr mir weiterhelfen könntet.

Gruß compiopa
:-)

Re: PDF-Dateien mit Tabellennamen

Verfasst: Di 3. Jan 2017, 21:53
von gogo

Re: PDF-Dateien mit Tabellennamen

Verfasst: Di 3. Jan 2017, 22:02
von compiopa
Hallo gogo,

danke für deine schnelle Antwort. Genau das war der Thread, der mich veranlasst hat mich anzumelden und mein Problem zu schildern.
Ich kapier das aber leider nicht mehr. Habe mit so Programmierung schon Jahre nichts mehr zu tun. Außerdem ist das Objektmodell von LO ja komplett anders. :-(
Ich kapier das nicht mehr und brauche es auch zu wenig, eigentlich gar nicht. Nur dieses Ausgabeproblem lässt sich vermutlich nicht ohne Programmierung lösen. Außer jede Tabell per Hand...

Gruß compiopa

Re: PDF-Dateien mit Tabellennamen

Verfasst: Di 3. Jan 2017, 22:39
von craig
Hallo,
compiopa hat geschrieben:Ich bräuchte eben diese ca. 100 Tabellen als einzelne PDF-Dateien, die jeweils den Namen der Tabelle haben.
Ist das mit LO machbar?
Befinden sich die Tabellen auf einem Tabellenblatt oder sprichst Du von 100 Tabellenblätterm (Sheets).

Wenn 100 einzelne Tabellenblätter, enthalten dieses mehrere Seiten?

Erbitte genauere Hinweise.

Re: PDF-Dateien mit Tabellennamen

Verfasst: Mi 4. Jan 2017, 00:27
von F3K Total
Hallo,
weil ich Lust dazu hatte, und etwas ähnliches schon gemacht habe. Anbei eine Datei, die genau das kann. In der Menüleiste findest du ein zusätzliches Symbol:
TB.PNG
TB.PNG (15.48 KiB) 4402 mal betrachtet
Einfach anklicken, Speicherordner wählen, und alle Blätter werden einzeln als PDF mit dem Namen des jeweiligen Tabellenblattes in den Speicherordner geschrieben.
Die Datei enthält Basic-Makros:

Code: Alles auswählen

Sub alle_Tabellen_einzeln_exportieren
    nCounterExported = 0
    if Thiscomponent.isModified then ThisComponent.store
    ALL_PrintAreas = F_Get_PrintAreas
    sFolderUrl = F_getfolderUrl
    if sFolderUrl = false then exit sub
    S_Delete_PrintAreas
    nCounterExported = 0
    for j = 0 to uBound(ALL_PrintAreas)
            S_Store_to_PDF(j,ALL_PrintAreas(j),sFolderUrl)
            nCounterExported = nCounterExported + 1
    next j
    msgbox (""+nCounterExported+" PDF Dateien in den Ordner "+CHR(13)+sFolderUrl+CHR(13)+"exportiert",64,"Erfolgreich")  
    F_Set_PrintAreas(ALL_PrintAreas)
    thisComponent.Modified = false
end sub

function F_getfolderUrl
    if not bLastDirectory then
        oPS = createUnoService("com.sun.star.util.PathSettings")
        sUSER_Work = oPS.Work
    endif
    MyDialog = createunoservice("com.sun.star.ui.dialogs.FolderPicker")
    MyDialog.Title = "PDF - Ordner wählen"
    myDialog.displaydirectory = sUSER_Work
    if mydialog.execute = 0 then
        F_getfolderUrl = false
    else
        sURL = mydialog.directory
        F_getfolderUrl = ConvertfromUrl(sURL)
        bLastDirectory = true
        sUSER_Work = ConvertFROMUrl(sURL)
    endif
end function

function F_getfileName(sSheetName)
    F_getfileName = "/"+sSheetname+".pdf"
end function

Function F_Get_PrintAreas
    oSheets = ThisComponent.Sheets
    DIM ALL_PrintAreas(oSheets.count - 1) as Variant
    for i = 0 to oSheets.count - 1
        oSheet = oSheets(i)
        oSheetPrintareas = oSheet.PrintAreas
        ALL_PrintAreas(i) = oSheetPrintareas
    next i
    F_Get_PrintAreas = ALL_PrintAreas
end function

Sub S_Delete_PrintAreas
    oSheets = ThisComponent.Sheets
    for i = 0 to osheets.count - 1
        osheet = oSheets(i)
        osheet.setPrintAreas(Array())
    next i
end Sub

sub S_Store_to_PDF(nSheet,aPrintAreas,S_Folder_URL)
    Dim myProps(0) as New com.sun.star.beans.PropertyValue
    myProps(0).Name="FilterName"
    myProps(0).Value = "calc_pdf_Export"
    osheets = thisComponent.Sheets(nSheet)
    oSheet = osheets(nSheet)
    sSheetName = oSheet.Name
    sFileName = F_getfileName(sSheetName)
    oSheet.setPrintAreas(aPrintAreas)
    sUrl = converttoURL(S_Folder_URL & sFilename)    'Speicherpfad zusammensetzen
    ThisComponent.storetoUrl(sUrl,myProps()) 'Speichern
    oSheet.setPrintAreas(Array())
end sub

Sub F_Set_PrintAreas(ALL_PrintAreas)
    oSheets = ThisComponent.Sheets
    for i = 0 to oSheets.count - 1
        oSheet = oSheets(i)
        oSheet.PrintAreas = ALL_PrintAreas(i)
    next i
end Sub
Damit die Makros laufen dürfen, stellst du unter Extras/Optionen/LibreOffice/Sicherheit/Makrosicherheit mindestens die Stufe "Mittel" ein, dann wirst du beim Öffnen von Dokumenten gefragt, ob du Makros ausführen möchtest.

Nimm einfach dieses Dokument, kopiere deine Tabellenblätter hinein, überprüfe die Druckbereiche und setze sie ggf. neu. WICHTIG: Je Tabellenblatt genau einen Druckbereich! Auf Leer- und Sonderzeichen in den Tabellennamen verzichten!
Gruß R

Re: PDF-Dateien mit Tabellennamen

Verfasst: Mi 4. Jan 2017, 21:05
von compiopa
Hallo F3K Total,


Habe das Makro in meine Worksheet eingebaut. :arrow: PERFEKT!!! :D
Das ist genau das was ich brauche und leider nicht selbst zustande gebracht habe.
WICHTIG: Je Tabellenblatt genau einen Druckbereich!
Warum das? Habe das ausprobiert mit mehreren Druckbereichen, da hat die PDF dann eben mehrere Seiten. Oder habe ich da jetzt was überehen, was zu schwerwiegenderen Fehlern führen könnte?
Auf Leer- und Sonderzeichen in den Tabellennamen verzichten!
Das versteht sich von selbst.

Wo hast du das Icon her? Selfmade?

Besten Dank, du hast mir sehr geholfen. Habe nachgesehen, inzwischen hat mein Worksheet ca. 150 Tabellenblätter. Da jedes einzeln... :shock:

Gruß compiopa

Re: PDF-Dateien mit Tabellennamen

Verfasst: Do 5. Jan 2017, 01:01
von F3K Total
compiopa hat geschrieben:Wo hast du das Icon her? Selfmade?
Yess
Gruß R

[gelöst] Re: PDF-Dateien mit Tabellennamen

Verfasst: Do 5. Jan 2017, 15:58
von compiopa
na dann werde ich auch kreativ werden müssen. :mrgreen:

Danke noch mal.

Gruß compiopa

Re: [gelöst] PDF-Dateien mit Tabellennamen

Verfasst: Do 5. Jan 2017, 16:41
von F3K Total
compiopa hat geschrieben:na dann werde ich auch kreativ werden müssen.
Nein, musst Du nicht, das Logo ist in meiner Datei (kann man entzippen) enthalten:
Logo.png
Logo.png (12.27 KiB) 4336 mal betrachtet
Gruß R

Re: [gelöst] PDF-Dateien mit Tabellennamen

Verfasst: Fr 6. Jan 2017, 23:07
von compiopa
Hallo F3K Total,

bin ich jetzt total blind?
Ich sehe weit und breit kein ZIP-File nur ein ODS-File, geschweige denn ein sc_userimages.png


Kannst du mich erhellen :?:

Gruß compiopa