Seiten: 1 2 3 [4] 5   Nach unten
Drucken
Autor Thema: Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?  (Gelesen 1152 mal)
musikai
Adept
**
Beiträge: 62


Profil anzeigen
« Antworten #45 am: 05. Dezember 2017, 11:28:14 »

Da sorgt capella ja  ordentlichlich dafür, dass du immer besser programmieren lernst Smile
Eine Sache: Warum verschiebst du denn alle objekte und nicht einfach die viewbox?
Gespeichert

Win7 Pro, Lubuntu 15.10, Sibelius 7.1.3
Free Project: LibreOffice Songbook Architect (LOSA)
http://struckkai.blogspot.de/2015/04/libreofficesongbookarchitect.html
Theo
Gelehrter
***
Beiträge: 107


Profil anzeigen
« Antworten #46 am: 05. Dezember 2017, 14:48:51 »

ja, da müsste ich Capella sogar noch dankbar sein Zwinker. Doch hätte ich ehrlich gesagt noch genügend andere Sachen, mit denen ich mir die Nächte um die Ohren schlagen könnte.
Eine Sache: Warum verschiebst du denn alle objekte und nicht einfach die viewbox?
Gute Frage. Ich hab das so gemacht, weil das Inkscape das so macht. Denn bei "Fit Page to Content" passiert genau das.
Ich dachte auch, man könnte einfach den Ausschnitt (ViewBox) auf der Seite verschieben. Doch das kommt nicht so raus wie Du Dir das vorstellst. Das skaliert und schiebt anders als man sich das vorstellt. Ich glaube da sind irgendwie die Einheiten px und mm und Offsets "schuld". Die Breite bzw. Höhe der Noten sind 87.54 mm bzw. 16.91 mm. Du kannst gerne mal mit der angehängten SVG-Datei spielen (Endung .png entfernen, da man hier keine SVG anhängen kann). Sag mir Bescheid wenn Du einen Weg gefunden hast, einfach nur die ViewBox zu verschieben. Und dann binde das SVG mal in LibreOffice ein.
Wenn es einfacher gehen sollte, bin ich auf jeden Fall gerne dafür zu haben.
Gespeichert
Paul Villiger
Allwissendes Orakel
*****
Beiträge: 513


Profil anzeigen WWW
« Antworten #47 am: 05. Dezember 2017, 17:36:06 »

Hallo Theo

ich habe den SVG Export per Skript bei capella eingekippt. Dies sollte mit dem Nachführen der Skriptschnittstelle kommen.

Das oben beschriebene Verfahren scheint mir recht kompliziert. Ich habe mal folgendes ausprobiert:
- Datei als SVG exportieren
- SVG Seiten in Inkscape laden
- Doppelklick auf Grafik -> damit lassen sich die einzelnen Elemente selektieren
- gewünschte Elemente mit der Maus markieren
- Kopieren mit Strg+C
- in Word oder Libreoffice mit Strg+V einfügen
- Eventuell Grafikgrösse noch auf 100% skalieren.

Mit diesem Verfahren spielt es keine Rolle ob noch ein Rahmen im Hintergrund vorhanden ist.

Gruss Paul
Gespeichert
musikai
Adept
**
Beiträge: 62


Profil anzeigen
« Antworten #48 am: 05. Dezember 2017, 19:39:31 »

@Theo
Hier die Spielerei:
Einfach die x,y Werte, die Du bei der Translation abziehst, stattdessen zu den vorhandenen Viewbox x,y Werten addieren:
x=2540
y=2833.906
Vorher:
Code:
viewBox="200 200 8754 1691.877"
Nachher:
Code:
viewBox="2740 3033.906 8754 1691.877"

Gespeichert

Win7 Pro, Lubuntu 15.10, Sibelius 7.1.3
Free Project: LibreOffice Songbook Architect (LOSA)
http://struckkai.blogspot.de/2015/04/libreofficesongbookarchitect.html
Theo
Gelehrter
***
Beiträge: 107


Profil anzeigen
« Antworten #49 am: 05. Dezember 2017, 22:52:30 »

Hallo Paul,
Dein Vorschlag überzeugt mich nicht.
Nachteile:
- Inkscape GUI starten dauert "ewig"
- mühsame, zeitaufwändige Handarbeit mit Selektieren usw.
- Dir ist schon bewusst, dass Ctrl+C / Ctrl+V eine Pixelgrafik und keine Vektorgrafik in Word oder LibreOffice einfügt? Zumindest bis Word2013 kann sowieso gar kein SVG einbinden.*
- Die Markier-Selektier- und Kopier-Prozedur möchtest Du nicht bei jeder kleinen Korrektur in den Noten wiederholen.

* was man in MSWord allerdings offenbar als Vektor einbinden kann, ist die Noten in Inkscape mit Ctrl+C in die Zwischenablage kopieren und in MSWord per Einfügen | Inhalte einfügen | Bild (Erweiterte Metadatei). In LibreOffice heißt das GDI Metafile. Da ziehe ich aber immer noch eine Verlinkung zu einer SVG Datei auf der Platte vor.

Desweiteren binde mal die SVG-Datei mit dem komischen transparenten Rechteck in eine Homepage ein, oder noch einfacher,... ziehe die ursprüngliche SVG Datei mal in Deinen Browser. Da stört das Rechteck eben schon und Ctrl+C/Ctrl+V nützt Dir nicht viel. Da ist es besser wenn Du eine SVG-Datei hast, die die richtige Seitengröße und ViewBox hat.

Die Vorteile der "komplizierten" Prozedur oben sind:
- alles wird durch das Python-Skript und Inkscape Kommandozeilen erledigt, kein GUI, keine Handarbeit
- da Grafiken in LibreOffice nicht nur hineinkopiert sondern auch verlinkt werden können, muss man bei kleinen Änderungen an den Noten, nur die SVG-Datei aus Capella nochmals exportieren und beim Aktualisieren bzw. beim nächsten Öffnen der Textdatei ist die neue Version der SVG enthalten.
Gespeichert
Theo
Gelehrter
***
Beiträge: 107


Profil anzeigen
« Antworten #50 am: 05. Dezember 2017, 22:54:51 »

@musikai, haha, Lachen Danke stimmt... keine Ahnung mehr, was ich alles rumprobiert hatte.
Und keine Ahnung warum Inkscape das so umständlich macht... die Inkscape Entwickler werden doch wohl einen Grund gehabt haben? Warum umständlich wenn es auch einfacher geht? Blöd
Gerne würde ich auch für das Berechnen der Bounding Box auf Inkscape verzichten, doch ich kenne noch keine reine Python-Routine, die die Gesamt-Bounding Box einer SVG-Datei berechnet, vielleicht wäre das auch noch schneller, als Inkscape jedesmal zu starten.
Gespeichert
Paul Villiger
Allwissendes Orakel
*****
Beiträge: 513


Profil anzeigen WWW
« Antworten #51 am: 08. Dezember 2017, 08:05:29 »

Hallo Theo

- Dir ist schon bewusst, dass Ctrl+C / Ctrl+V eine Pixelgrafik und keine Vektorgrafik in Word oder LibreOffice einfügt? Zumindest bis Word2013 kann sowieso gar kein SVG einbinden.*
Wieder etwas dazu gelernt  angel

Habe jetzt das Skript erweitert und den Aufruf von Inkscape eingebaut. Ist sicher nicht die schnellste Prozedur, aber nach den ersten Tests sollte es funktionieren.
http://sins942.ch/skripts/Fix_Svg_File.py
Der Pfad von Inkscape und dem SVG Verzeichnis werden im Dialog abgefragt.

Gruss Paul
Gespeichert
Theo
Gelehrter
***
Beiträge: 107


Profil anzeigen
« Antworten #52 am: 09. Dezember 2017, 20:37:18 »

Hallo Paul,
vielen Dank für Deine Mühen. Was wäre Capella ohne Deine Skripts und die Skripts der anderen fleissigen Skriptschreiber?
Doch leider funktioniert's bei mir (noch) nicht...
Ich habe von Python noch zu wenig Ahnung, als dass ich sagen könnte woran das liegt.
Offenbar startet Python zwar Inkscape, aber bekommt keine Antwort.... wäre meine Vermutung...

Gespeichert
Paul Villiger
Allwissendes Orakel
*****
Beiträge: 513


Profil anzeigen WWW
« Antworten #53 am: 09. Dezember 2017, 21:37:25 »

Hallo Theo
ich kann den Fehler nicht reproduzieren. Die Datei DoReMi_Cap8.svg hier im Forum ist nicht mehr aktuell. Kannst Du es einmal mit einer frisch aus capella (Version 8.0-02) exportierten SVG ausprobieren und wenn es nicht geht mir die Dateien per Mail zusenden, CAP und SVG

Das zeigt mir inkscape nach der Umwandlung an

Gruss Paul
Gespeichert
Theo
Gelehrter
***
Beiträge: 107


Profil anzeigen
« Antworten #54 am: 09. Dezember 2017, 21:45:59 »

Hallo Paul,
auch mit SVG Export von Cap8.02 kommt dieser Fehler beim Skript... vielleicht liegt's an meinem System?
.capx und .svg Siehe Anhang (einfach Endung .png entfernen).
Gespeichert
Paul Villiger
Allwissendes Orakel
*****
Beiträge: 513


Profil anzeigen WWW
« Antworten #55 am: 09. Dezember 2017, 22:04:13 »

Hallo Theo
bei mir funktioniert Deine SVG Datei. Ich habe Win10-64 und Inkscape Version "Inkscape 0.92.2 (5c3e80d, 2017-08-06)" installiert.
Kannst Du mal unter cmd.exe folgendes Kommando ausführen:
Code:
"c:\Program Files\Inkscape\inkscape.exe" -S DoReMi_Cap8.02.svg > DoReMi_Cap8.02.txt
Das ist ungefähr der Befehl, welcher vom Skript ausgeführt wird ( alles vor ">")
Die TXT Datei sollte "svg422,0,-2.2677165e-006,330.85984,63.944956" enthalten.
Gruss Paul
Gespeichert
Theo
Gelehrter
***
Beiträge: 107


Profil anzeigen
« Antworten #56 am: 09. Dezember 2017, 22:24:12 »

Hallo Paul,
in der Konsole funktioniert bei mir "inkscape -S DoReMi_Cap8.02.svg" ganz normal und es spuckt mir alle Bounding Boxen aus. Die erste Zeile heisst bei mir
svg422,95.99999974810889,107.1082674354977,330.8598416515532,63.94495554087845
Und die graue Box ist herausgelöscht. Das heisst, das Skript funktioniert bis dahin.
Aber danach erhält es die Antwort von Inkscape offenbar nicht mehr...
Ich habe 3 Pythons auf der Platte: Python2.3 für Capella7, Python2.7 für Capella8 und Python3.6 für sonst... aber da sollte ja eigentlich nichts durcheinandergeraten, weil Capella8 ja Python2.7 aus dem eigenen Verzeichnis startet.
Habe Win7 und ebenfalls Inkscape 0.92.2 (5c3e80d, 2017-08-06).  Kopfkratzen
Gespeichert
Paul Villiger
Allwissendes Orakel
*****
Beiträge: 513


Profil anzeigen WWW
« Antworten #57 am: 09. Dezember 2017, 22:43:23 »

Hallo Theo
die verschiedenen Python Installationen stören nicht. Eventuell liegt das Problem bei Windows, wie es die Kommandozeile interpretiert. Habe kein Win7 mehr zum Testen.
Noch ein Versuch: Kannst Du in dieser Skriptzeile (65) das erste %s durch "%s" ersetzen:
Code:
    x = subprocess.check_output('"%s" -S "%s"' % (inkscape, fname) )
Gespeichert
Theo
Gelehrter
***
Beiträge: 107


Profil anzeigen
« Antworten #58 am: 09. Dezember 2017, 22:59:58 »

hmm, Du hast den Verdacht, das Leerzeichen im Pfad stören könnten... das gibt's immer wieder, aber %s durch "%s" ersetzen hilft nicht.
Der Inkscape Pfad ist bei mir in der PATH-Umgebungsvariablen, aber z.B. auch
Code:
   x = subprocess.check_output('inkscape -S "%s"' % (fname) )
hilft nicht.
Gespeichert
Theo
Gelehrter
***
Beiträge: 107


Profil anzeigen
« Antworten #59 am: 09. Dezember 2017, 23:35:28 »

ok...
Code:
x = subprocess.check_output('inkscape -S "%s"' % (fname) )
geht nicht.  Ratlos

Code:
x = subprocess.check_output('inkscape.exe -S "%s"' % (fname) )
geht nicht.  Ratlos

Code:
x = subprocess.check_output('inkscape.com -S "%s"' % (fname) )
scheint zu gehen.  Freundensprung
Aber frag mich nicht warum. Das ist mal wieder Windoofs. Blöd
Das SVG sieht nun endlich so aus wie ich mir das von Capella von Anfang an gewünscht hätte. Dass man mit Hilfe von Deinem Skript ein Verzeichnis Batch-Korrigieren kann ist schon mal eine Erleichterung. Noch schöner wäre es natürlich wenn man es gleich beim Exportieren so hinkriegen würde (am besten noch ohne Inkscape).
Gespeichert
Seiten: 1 2 3 [4] 5   Nach oben
Drucken
 
Gehe zu: