Date: prev next · Thread: first prev next last
2018 Archives by date, by thread · List index


Hallo Jörn,

na fein, dass das Makro gleich funktionierte und auch in Deinem Kontext tut was es soll :-)) ...

Die Symbol-Problematik kann ich Dir leider nicht bestätigen, da ich keine eigenen Symbole in die Symbolleiste einfüge und auch mein Bildschirm kein hochauflösender ist ("EIZO FlexScan L768" Baujahr 2004 - http://www.usedcomp.de/pdf/EIZO-FlexScan-L768-Datenblatt.pdf ), aber er tut was er soll ...

Aber den BUG-Report solltest Du trotzdem schreiben, da findet sich hier im Forum bestimmt jemand, der dass dann auch mit einem "Comment" bestätigen wird - es hilft ja schließlich LibreOffice immer weiter zu verbessern.

Bezüglich MAKRO hätte ich da noch eines für CALC-Tabellen, aber nur für solche Tabellenblätter, die nur Zellen beinhalten und keine Zeichnungsobjekte (Diagramme etc.):

[1] Vorarbeiten

[1.1] Makro "Sub SeitenFormat_CALC" in die BASIC-IDE laden.
[1.2] Makro "Sub SeitenFormat_CALC" lokal für CALC mit Taste, beispielsweise [Strg][F], verknüpfen.

[2] Arbeitsablauf
[2.1] CALC-Dokument öffnen.
[2.2] Tabellenblatt (über Reiter unten) auswählen (darf keine Zeichnungsobjekte (Diagramme etc.) enthalten. [2.3] Makro Starten mit [Strg][F]: Das Seitenformat (für das CALC-Dokument) ist jetzt genauso groß wie der genutzte Zellenbereich im ausgewählten Tabellenblatt. [2.4] Mit [Datei][Als PDF exportieren...] von dem genutzte Zellenbereich eine PDF-Datei erstellen.
[2.5] Weiter bei [2.2] ...

Grüße
Hans-Werner :-))


  Sub Seitenformat_CALC
' ===================================================================================
     Dim oCD as Object ' object Calc Dokument
     Dim oTB as Object ' object Tabellen Blatt
     Dim oC as Object ' object Cursor
     Dim TBB as Long ' Tabellen Blatt Breite [1/100mm]
     Dim TBH as Long ' Tabellen Blatt Höhe [1/100mm]
     Dim X as Long ' X [0 = 1.Spalte]
     Dim Xmax as Long ' X maximal
     Dim Y as Long ' Y [0 = 1.Zeile ]
     Dim Ymax as Long ' Y maximal
' -----------------------------------------------------------------------------------
     Const PS = "PageStyles" ' Page Styles
     Const D = "Default" ' Default
' ===================================================================================
     oCD = ThisComponent ' init. CALC-Dokument
     oTB = oCD.currentController.activeSheet ' init. Tabellenblatt
     oC = oTB.createCursor ' init. Cursor
     oC.GotoEndOfUsedArea(False) ' Cursor nach unten rechts
     Xmax = oC.getRangeAddress().endColumn ' letzte genutzte Spalte
     Ymax = oC.getRangeAddress().endRow ' letzte genutzte Zeile
     TBB = 0 ' init. T'blatt-Breite
     For X=0 To Xmax Step 1 ' über Spalten
TBB = TBB + oTB.getCellByPosition(X,0).Size.Width ' aufsummieren Breite
     Next X
     TBH = 0 ' init. T'blatt-Höhe
     For Y=0 To Ymax Step 1 ' über Zeilen
TBH = TBH + oTB.getCellByPosition(0,Y).Size.Height ' aufsummieren Höhe
     Next Y
     With oCD.StyleFamilies.getByName(PS).getByName(D) ' Seite:
        .Width = TBB ' Breite Blatt [1/100mm]
        .Height = TBH ' Höhe Blatt [1/100mm]
        .IsLandscape = True ' Seitenformat
        .TopMargin = 0 ' Dr'rand oben [1/100mm]
        .BottomMargin = 0 ' Dr'rand unten [1/100mm]
        .LeftMargin = 0 ' Dr'rand links [1/100mm]
        .RightMargin = 0 ' Dr'rand rechts [1/100mm]
        .CenterHorizontally = True ' zentrieren horizontal
        .CenterVertically = True ' zentrieren vertikal
        .HeaderIsOn = False ' keine Kopfzeile
        .FooterIsOn = False ' keine Fußzeile
        .ScaleToPages = 1 ' skal. auf Seitengröße
     End With
  End Sub


------ Originalnachricht ------
Von: "icetex@web.de" <icetex@web.de>
An: users@de.libreoffice.org
Gesendet: 10.02.2018 12:07:59
Betreff: Re: [de-users] LO 6: Export von Vektorgrafiken aus Calc und Draw

Hallo Hans-Werner,

…. ich bin enthusiasmiert! – Das ist ja toll, dass Du mir ein Makro programmiert hast.
Ich habe es gestern abend installiert,
und es funktionierte sofort perfekt.
Damit bin ich einen großen Schritt weiter – Vielen herzlichen Dank!

Ich habe das Makro auch gleich auf eine freie Funktionstaste gelegt
und auch ein Symbol einer Symbolleiste zugefügt.
Funktioniert alles hervorragend.

… Leider ist das eingefügte Symbol sehr klein.
Das ist ein Problem, bei dem mir Regina von ca. 2 Monaten
schon einige Tipps gegegeben hatte,
die aber letztendlich keine wirkliche Lösung darstellen:
Wenn man bei einem hochauflösenden Bildschirm
ein neues Symbol einfügt, erscheint dies sehr klein,
in allen Versionen der letzten beiden Jahre.

Kannst Du das vielleicht bestätigen?
Wenn ja, würde ich auch dafür einen Bug-Report erstellen.

Mit freundlichen Grüßen
Jörn





Am 09.02.2018 um 09:41 schrieb OoOHWHOoO:
Hallo Jörn,

als Übergangslösung, bis der BUG-Report "RESOVED FIXED" und in eine LO-Version eingearbeitet ist, kannst Du mit dem kleinen BASIC-Makro "Sub SeitenFormat_DRAW" die Folien-Formatierung in DRAW mit Tastendruck an das dorthin kopierte CALC-Diagramm anpassen und dann anschließend dieses CALC-Diagramm automatisch passgenau als PDF-Datei exportieren.

[1] Vorarbeiten

[1.1]   Makro "Sub SeitenFormat_DRAW" in die BASIC-IDE laden.
[1.2] Makro "Sub SeitenFormat_DRAW" lokal für DRAW mit Taste, beispielsweise [Strg][F], verknüpfen.

[2]   Arbeitsablauf

[2.1]   Neues DRAW-Dokument öffnen.
[2.2]   Jeweiliges CALC-Dokument mit den Diagrammen öffnen.
[2.3] Ein CALC-Diagramm mit Maus kopieren und mit Maus im DRAW-Dokument, z.B. Ebene "Layout", einfügen. [2.4] Makro Starten mit [Strg][F]: Das Folien-Seitenformat ist jetzt genauso groß wie das Diagramm. [2.5] Mit [Datei][Als PDF exportieren...] von dem Diagramm eine PDF-Datei erstellen.
[2.6]   Jetzt nur das Diagramm aus DRAW löschen.
[2.7] Das Folien-Format kann so bleiben. Es wird beim nächsten Tastendruck wieder automatisch an das nächste eingefügte Diagramm angepasst.
[2.8]   Weiter bei [2.3] ...

Grüße
Hans-Werner



  Option Explicit

  Sub SeitenFormat_DRAW
' ===================================================================================
     Dim oDD  as Object  ' object Draw Dokument
     Dim oF   as Object  ' object Folie
     Dim oZO  as Object  ' object Zeichnungs Objekt
     Dim oZOG as Object  ' object Zeichnungs Objekte Gruppierung
     Dim iZO  as Integer ' index  Zeichnungs Objekt
Dim ZOGB as Long ' Zeichnungs Objekte Gruppierung Breite [1/100mm] Dim ZOGH as Long ' ZeichnungsObjekteGruppierungHöhe [1/100mm] ' -----------------------------------------------------------------------------------
     Dim   NP as New com.sun.star.awt.Point            ' Neue Position
Const SC = "com.sun.star.drawing.ShapeCollection" ' Shape Collection
     Const FN = 0                                      ' Folie Nummer
' =================================================================================== oDD = ThisComponent ' initialisieren DrawDokument
     oF  = oDD.DrawPages(FN)               ' initialisieren Folie
oZO = CreateUnoService(SC) ' initialisieren ZeichnungsObjekte
     For iZO = 0 To oF.getCount()-1 Step 1 ' über ZeichnungsObjekte
oZO.add(oF.getByIndex(iZO)) ' erfassen ZeichnungsObjekte
     Next iZO
oZOG = oF.group(oZO) ' gruppieren Z'Objekte zu Z'ObjekteGruppe ZOGB = oZOG.getSize().Width ' bestimmen Breite Z'ObjekteGruppe ZOGH = oZOG.getSize().Height ' bestimmen Höhe Z'ObjekteGruppe
     With oF                               ' Folie:
        .Height = ZOGH                     ' setzen Seite Höhe
        .Width  = ZOGB                     ' setzen Seite Breite
        .BorderTop    = 0                  ' setzen Seite oberer Rand
        .BorderBottom = 0                  ' setzen Seite untere Rand
        .BorderLeft   = 0                  ' setzen Seite linker Rand
        .BorderRight  = 0                  ' setzen Seite rechter Rand
     End With
     With NP                               ' Neue Position:
        .X = 0                             ' setzen X-Position
        .Y = 0                             ' setzen Y-Position
     End With
oZOG.Position = NP ' verschieben Z'ObjekteGruppe nach (X,Y)
  End Sub



-- Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert
--
Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.