Forum Notensatz

Unterforen => capella => Thema gestartet von: Theo am 18. November 2017, 11:00:11



Titel: Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Theo am 18. November 2017, 11:00:11
Hallo,
weiss von Euch vielleicht jemand wie man vermeiden kann, dass Capella8 (genau wieder der Reader8) beim Druck und beim PDF Export zwei(!) unnötige, seitengroße Rechtecke hinter die Noten macht?
Wozu braucht es ein weisses UND dahinter noch ein graues "Blatt"? Die Seitengröße war doch früher (Capella<=7) auch anders definiert als durch zwei übereinander gemalte Rechtecke im Hintergrund.

Diese verhindern, dass man beim Export die Noten ohne zusätzlichen, großen Aufwand auf den tatsächlich benötigten Platz zuschneiden (croppen) kann. Ich will nicht immer A4 exportieren oder jedesmal die Seitegröße in Capella anpassen, wenn nur eine oder wenige Notenzeilen exportiert werden sollen.
Kennt da vielleicht jemand einen Trick wie man die Rechtecke im Hintergrund abstellen kann?



Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: brunsbox am 18. November 2017, 12:00:08
Moin Theo,
leider kann ich bei mir keine Rechtecke beim pdf-Export im reader oder Cap 8 unter Win 10 feststellen. Nach dem Öffnen der exportierten Datei im Adobe Reader kann ich sie problemlos über die Funktion an Seite anpassen auf einem Blatt DIN A5 ausdrucken


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Theo am 18. November 2017, 12:10:18
ja, der Adobe Reader skaliert die Rechtecke dahinter wohl mit. Das ist nicht das Problem.
Ich bin aber nur an den Notenobjekten interessiert, ich möchte quasi einen transparenten Hintergrund. Früher ging das ja auch ohne Hintergrundblätter. Oweh, das scheint mir auf eine längere Diskussion mit Capella hinauszulaufen...


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: brunsbox am 18. November 2017, 12:54:04
Kannst Du mir mal eine Mail mit den Rechecken schicken? Ich habe die bisher noch nicht gesehen


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: PeterBecker am 18. November 2017, 13:07:11
Bei mir werden weder beim Drucken noch beim Export als PDF zusätzliche Rechtecke angezeigt.

Datei/Export/PDF


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Theo am 18. November 2017, 14:04:33
Ein weisses Rechteck ist auf einem weissen Hintergrund auch schwierig zu sehen ;).

Da Capella7 ja keinen direkten PDF Export hat, läuft das (bei mir) über Druck in eine PS (Postscript)-Datei und automatischer Umwandlung in PDF, EPS, SVG. Das hatte bislang auch gut funktioniert.
Die gleiche Prozedur funktioniert mit Capella8 und Reader8 nun nicht mehr.

"Sichtbar" machen kann man die Rechtecke, wenn man das von Capella 8 exportierte PDF in Inkscape importiert.
Capella8 PDF Export und Inkscape PDF Import resultiert in einer Seitengröße von 213x314mm mit einem weissen und dahinter einem grauen Rechteck.
Da das mit Capella7 nicht so ist, wurde mit Capella8 etwas "verschlimmbessert".


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: brunsbox am 18. November 2017, 14:45:15
Moin Theo,
ich habe eben Inkscape installiert und eine Cap 8 pdf importiert. Ich habe keinerlei Rechtecke oder andere Dinge auf meinem Bildschirm außer eines sauberen Bildes der importierten Datei :jump:


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: brunsbox am 18. November 2017, 15:03:12
habe Dir noch ein Video per Mail geschickt


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: notenfischer am 18. November 2017, 15:27:14
Ich kann den Sachverhalt nachvollziehen.
Die pdf-Datei habe ich mit dem capella reader 8 erstellt und dann die pdf-Datei in Corel Draw X7 importiert.
Nach dem Import habe ich die Gruppierung der Objekte aufgehoben und habe beide Rechtecke gefunden.
(http://www.notensatz-s-fischer.de/Voschau_Front/Test_01.jpg)


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Theo am 18. November 2017, 16:17:07
...@notenfischer, genau das meine ich...
...@brunsbox, und was sind die Dimensionen der importierten Datei? Eben, ungruppiere das Objekt (Shift+Ctrl+G), dann kannst Du zwei Hintergründe selektieren.
Ich möchte keine doppelt hinterlegte Seite, sondern nur die Noten mit transparentem Hintergrund!


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: brunsbox am 18. November 2017, 16:24:04
Tut mir leid, auch ungruppieren bringt kein anderes Ergebnis, hab Dir noch ein Video geschickt


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Theo am 18. November 2017, 16:32:23
...laut dem Video ist Deine ungruppierte Gruppe wiederum eine Gruppe von 170 Objekten... gruppiere mal weiter "un"... Du wirst die zwei Rechtecke schon noch finden... ;)


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: brunsbox am 19. November 2017, 08:20:53
Das Video ist ein Bildschirmvideo, dann kannst Du eigentlich keine Dateien draus lesen


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Theo am 19. November 2017, 08:52:18
... im Video zeigt es nach dem Ungruppieren es in der Statuszeile von Inkscape an, dass es es noch eine Gruppe von 170 Objekten ist. (Glaub mir ;-)... Also ungruppiere das mal weiter... dann siehst Du die Rechtecke schon noch...


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Anton Stabentheiner am 19. November 2017, 09:22:10
Ich habe jetzt mal aus der Beispieldatei "Ave verum" eine Seite exportiert und in CorelDraw X5 importiert.
Im Hintergrund befinden sich ein fast seitengroßes graues und darüber ein weißes Viereck.
Erzeugt wird das von Capella 8 selbst, mit PDFCreator 'gedruckt' bringt dasselbe Ergebnis.
Bedeutet, daß man auf farbigem oder 'strukturiertem' Papier wahrscheinlich einen weißen Hintergrund kriegt.

Mit PDFCreator aus Word exportierte Dokumente haben das nicht, sie sind transparent.


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Theo am 19. November 2017, 09:55:53
Bedeutet, daß man auf farbigem oder 'strukturiertem' Papier wahrscheinlich einen weißen Hintergrund kriegt.
Von Druckern mit weißem Toner oder weißer Tinte habe ich noch nicht gehört ;)

Mit PDFCreator aus Word exportierte Dokumente haben das nicht, sie sind transparent.
Eben, das ist eine Besonderheit von Capella8 und Reader8. Mir erschliesst sich der Sinn dieser Rechtecke nicht, ausser dass sie alles wieder komplizierter machen!


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: brunsbox am 19. November 2017, 10:18:19
 :teufel:
Ich bekomme das ums Verrecken nicht zu sehen.
Ist doch komisch da das ja andere Mitglieder reproduzieren können.


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Theo am 19. November 2017, 10:39:12
im Anhang... ein einfaches PDF und das resultierende SVG wenn in Inkscape importiert. in Inkscape im SVG habe ich alles markiert und sooft Ungruppieren (Shift+Ctrl+G) gedrückt, bis in der Statuszeile angezeigt wird, dass das markierte Objekt nicht mehr aus (Unter-)Gruppen besteht.
Da man hier keine SVGs anhängen kann (bennene es um, indem Du .png wegnimmst).


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Anton Stabentheiner am 19. November 2017, 10:41:53
Gemeint war der graue Hintergrund, da war ich wohl etwas zu schnell...
Ist aber auch nicht richtig, der Ausdruck ist am Papier (HP Color LaserJet) trotzdem transparent wie er sein soll!
Hat das dann noch eine Bedeutung?


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: musikai am 19. November 2017, 15:02:21
Vielleicht können die Capella-Entwickler da noch was ändern, wenn Du sie fragst.
Ansonsten müßtest Du die Rechtecke aus den .ps-Dateien per Text-Kommando entfernen.
Folgende Zeilen in der .ps scheinen die Rechrecke zu definieren:
Code:
: 80 70 4792 6817 rc N 80 70 M 4872 70 I 4872 6886 I 80 6886 I 80 70 I C
0.863 0.863 0.863 1 scol  O ; : 80 70 4792 6833 rc N 37 28 M 4917 28 I 4917 6935 I 37 6935 I 37 28 I C
1 1 1 1 scol  O ;
Die erste und 3.Zeile kann ich per Text-Suche finden. Die mittlere scheint zu differieren.
Kommen bei mehrseitigen .ps mehrfach vor. (komischerweise kamen sie bei der 4seitigen nur 3mal vor, aber sind im Resultat dann doch komplett weg.)
Die erste PDF-Datei ist Original aus dem Reader 8, die 2te habe ich so erstellt:
Druck nach FreePDF, temporäre .ps Datei (per Hand) editiert, weiter mit FreePDF PDF erstellt.
(Geöffnet in Inkscape kommt jetzt allerdings wieder das alte Font-Problem. Aber da hattest Du doch glaube ich eh einen Ersatz programmiert(?))


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Theo am 20. November 2017, 20:56:10
@musikai, ja, das sind sicherlich die "bösen" Zeilen in der Postscript-Datei. :teufel:
Als Test habe ich die identische "leere" Datei (d.h. nur Violinschlüssel und Systemzeile) einmal aus Capella7 und einmal aus Capella8 in eine PS-Datei "gedruckt". Die Dateien sind im Wesentlichen gleich.
Die auffallendsten Unterschiede sind Folgende:

Capella 7
Code:
...
0 0 0 1 scol 1 Lj 1 Lc 4 Lw solid N 502 790 M 827 790 I K
N 502 747 M 827 747 I K
N 502 705 M 827 705 I K
N 502 662 M 827 662 I K
N 502 620 M 827 620 I K
3546 VM?
...
Capella 8
Code:
...
: 0 0 4751 6800 rc N 0 0 M 4750 0 I 4750 6801 I 0 6801 I 0 0 I C
0.848 0.848 0.848 1 scol  O ; : 0 0 4758 6800 rc N -97 -105 M 4848 -105 I 4848 6892 I -97 6892 I -97 -105 I C
1 1 1 1 scol  O ; N 499 786 M 827 786 I 827 790 I 499 790 I 499 786 I C

0 0 0 1 scol  O N 499 744 M 827 744 I 827 747 I 499 747 I 499 744 I C
 O N 499 701 M 827 701 I 827 705 I 499 705 I 499 701 I C
 O N 499 659 M 827 659 I 827 662 I 499 662 I 499 659 I C
 O N 499 617 M 827 617 I 827 620 I 499 620 I 499 617 I C
 O 3546 VM?
...
Die Zeilenanfänge bei Capella 8 (hier in der 2. und 3. Zeile) sind irgendwie die grauen "0.848 0.848 0.848 1 scol  O ; "  und weißen "1 1 1 1 scol  O ; " Rechtecke.
Aber auch an anderen Stellen gibt es abweichende Zeichen (ich meine nicht Datum, Uhrzeit, Printjob, etc..) ... vermutlich irgendwelche Koordinaten...
Wenn man diese Anfänge der 2. und der 3. Zeile löscht, scheinen die Rechtecke dadurch entfernt zu werden  :jump:.
Da ich mich mit Postscript aber nicht auskenne, bin ich vorsichtig mit Löschen von Zeilen, die auf den ersten Blick das Problem zu beheben scheinen aber vielleicht woanders neue Probleme hervorrufen.  :kratz:

Am Besten wäre es natürlich wenn die Hintergrundseiten durch Capella8 gar nicht erst eingebaut würden. Die Anfrage bei den Verursachern läuft...



Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: brunsbox am 22. November 2017, 12:12:57
Theo, probier doch mal bitte folgendes:
Schalte doch vor dem Export mal "Anordnung der Seiten" (Strg+E) auf "ohne Seitenränder" und exportiere dann. Bleiben die Rechtecke dann auch?


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Theo am 22. November 2017, 19:26:49
@brunsbox, ja die Hintergrundseiten bleiben auch dann.
Ich glaube Ctrl+E (ohne Seitenrand) ist nur für die Bildschirmdarstellung, nicht aber für den Druck oder den Export.
Hast Du die Rechtecke übrigens inzwischen gefunden?


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Theo am 22. November 2017, 20:10:09
Am Besten wäre es natürlich wenn die Hintergrundseiten durch Capella8 gar nicht erst eingebaut würden. Die Anfrage bei den Verursachern läuft...
Apropos, Capella hat ultraschnell geantwortet. Es gebe momentan andere Prioritäten. Also, ob überhaupt und wann diese Hintergrundseiten abgestellt werden können, steht in den Sternen.

Im Prinzip funktioniert es für mich mit einem Python-Skript, das den o.g. Code abändert. Aber um es sauber zu machen, müsste ich verstehen, was diese Postscript-Zeilen wirklich bedeuten. Das sollte eigentlich nicht so schwierig sein, aber auf den ersten Blick habe ich im 774-seitigen Postscript-Handbuch nichts hilfreiches gefunden.

Ach, übrigens Capella8 hat tatsächlich neu einen SVG-Export :), doch leider eben auch mit diesen Hintergrundseiten :(.
Ein SVG, das immer eine ganze Seite umfasst, ist zur Einbindung in einem Textverarbeitungsprogramm denkbar schlecht geeignet.

Folgendes Bild soll illustrieren, worauf ich hinaus will.
Links: Cap7-Druck-SVG-Prozedur; Rechts: Cap8-SVG-Export
(https://i.imgur.com/l7Br7B4.png)


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Klaus am 22. November 2017, 21:19:37
Apropos, Capella hat ultraschnell geantwortet. Es gebe momentan andere Prioritäten.
Und welche? :kratz:


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Theo am 22. November 2017, 21:35:03
...Bugfixing... ?! ;)
Aber dabei sind diese Hintergrundseiten leider (noch) nicht als Bug "anerkannt".


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Paul Villiger am 22. November 2017, 23:15:33
Hallo Theo
habe ein kleines Skript geschrieben, welches den/die Seitenrahmen aus einer SVG Datei entfernt.
http://sins942.ch/skripts/Fix_Svg_File.py
Es werden alle SVG Dateien in einem Verzeichnis bearbeitet.

Gruss Paul


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: musikai am 22. November 2017, 23:21:20
Im Prinzip funktioniert es für mich mit einem Python-Skript, das den o.g. Code abändert. Aber um es sauber zu machen, müsste ich verstehen, was diese Postscript-Zeilen wirklich bedeuten. Das sollte eigentlich nicht so schwierig sein, aber auf den ersten Blick habe ich im 774-seitigen Postscript-Handbuch nichts hilfreiches gefunden.

Hi Theo,
Ja, man hat immer 'n besseres Gefühl, wenn man weiss, was man da löscht  :lupe:
Hatte mich ja erst auf gut Glück in die .ps-Datei-Suche begeben und meinte
Code:
rc
könnte Rectangle bedeuten, eben mit Koordinaten und Farbangaben. Und es passt ja auch. Ist aber doch ein bißchen ausgefuchster. Am Anfang der .ps-Datei werden Kürzel für postscript-Befehle definiert:
rc steht z.B. für rectclip
: = gsave
N = newpath
M = moveto
I = lineto
C = closepath
scol = in etwa soviel wie /DeviceRGB setcolorspace Rot Grün Blau setcolor
O = eofill
; = grestore

Die Befehle sebst kann man dann hier nachschauen:
https://staff.science.uva.nl/a.j.p.heck/Courses/Mastercourse2005/tutorial.pdf (https://staff.science.uva.nl/a.j.p.heck/Courses/Mastercourse2005/tutorial.pdf)

Code:
: 80 70 4792 6817 rc N 80 70 M 4872 70 I 4872 6886 I 80 6886 I 80 70 I C
0.863 0.863 0.863 1 scol  O ;
Erst wird also ein clipping-Bereich definiert, dann ein Pfad gezeichnet und geschlossen, Farben zugeordnet und gefüllt.


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Theo am 23. November 2017, 05:24:39
Lieber Paul,
vielen Dank für das Skript. Soweit ich es bislang testen konnte, entfernt das Skript zwar die graue Seite, aber nicht die Weiße. Vermutlich reicht es auch nicht ganz, nur die beiden Hintergrundseiten zu entfernen, sondern es müsste noch eine "Boundingbox" berechnet werden, d.h. die Seitengröße des SVGs auf den vorhandenen Inhalt angepasst werden. In Inkscape heißt das "Fit Size to Content". Nur dann kann man später das SVG ohne weiteres einfach in die Textverarbeitung einbinden.


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Paul Villiger am 23. November 2017, 09:09:19
War auch nur ein einfaches Skript um diese beiden Einträge aus einer SVG zu entfernen
<rect x="200" y="200" width="21000" height="29700"/>
<rect x="-1499.18" y="-2199.18" width="20996.4" height="29698.4"/>

Geht aber nur bei einer von capella generierten SVG Datei.


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: brunsbox am 23. November 2017, 09:11:11
Zitat

Hast Du die Rechtecke übrigens inzwischen gefunden?

 :teufel: leider nein!!


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: musikai am 26. November 2017, 22:40:27
 :)
Hehe, kannst auch mit strg+click z.B. auf die weisse Hintergrundfläche direkt ein gruppiertes Element anwählen. Danach einfach mit der Maus zur Seite schieben. Dann siehst Du die graue Fläche. Die kannst Du auf gleiche Art anwählen und rumschieben.

@Theo
Na, schon ne Lösung gefunden?


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Theo am 26. November 2017, 23:31:45
@musikai, @brunsbox, stimmt, mit Ctrl+Click kannst Du in Inkscape die Rechtecke direkt selektieren und mit der Del-Taste löschen.

@musikai, jein!
Das alte Lied: hast Du ein Problem gelöst, tauchen zwei Neue auf. :bloed:
Ich kann die PS-Dateien im "Druckprozess" mit einem Python-Skript im Prinzip weiter bearbeiten, z.B. bestimmten Code herauslöschen oder ändern, soweit so gut. Doch was ich nun festgestellt habe, dass es doch wieder unschöne Unterschiede gibt.
Im Folgenden ein Screenshot von drei verschieden erstellten SVG-Dateien in LibreOffice eingebunden und als PDF exportiert.
(https://i.imgur.com/99NcNuL.png)

Capella7-SVG-Druck:
gut soweit. Hier erscheint die zweite Linie von unten etwas dünner, aber das ist ein Artefakt in der Darstellung im Acrobat Reader.

Capella8-eigener-SVG-Export:
im Prinzip gut. "Saudumm" ist halt die Notwendigkeit der Nachbearbeitung von Hand.

Capella8-SVG-Druck:
nicht zufriedenstellend. Die Linien scheinen dicker und dünner zu sein. Und das sind sie auch tatsächlich schon im SVG. Ich weiss noch nicht woher das nun wieder kommt. :ratlos:

Was mir noch aufgefallen ist: Die Notenlinien bei Capella7 sind Linien mit gerundeten Enden und mit einer bestimmten Strichstärke, wohingegen es bei Capella8 Flächen sind. Vielleicht gibt es da beim SVG-Druck Rundungsfehler? Die Suche geht weiter...  :lupe:
Mal noch das PDF im Anhang... wenn Du reinzoomst, siehst Du die Unterschiede...


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: musikai am 27. November 2017, 00:35:09
Ja, die ersten beiden schauen einwandfrei aus.
Hatte ich auch schon, dass der CapellaReader8 keine 100% gleichstarken Linien(-Rechtecke) in die .ps druckt.
Wenn man allerdings die Dpi-Auflösung in den Druckeinstellungen erhöht, wird's besser.



Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Theo am 27. November 2017, 06:59:04

@musikai, danke für den Tipp mit den dpi!  :)
Ojeh, ich hätte nicht gedacht, dass bei Vektorgrafiken mir die dpi-Angaben auch noch einen Streich spielen.
Offenbar sind in .ps Dateien nur ganzzahlige Koordinaten erlaubt. Daher kann es dann vermutlich beim Umrechnen von dünnen oder kleinen Strukturen zu Rundungsfehlern kommen?!  :kratz:
Mein PS-Drucker hatte standardmässig in 600 dpi gedruckt. Puh, das war wieder eine Sucherei, bis ich ihn dauerhaft auf 1200 dpi umstellen konnte, denn er hatte nach jedem Drucken wieder auf 600 dpi zurückgestellt. Ich hoffe schwer, dass 1200 dpi nun reichen, denn zumindest bei diesem Drucker (Generic C MF310P-1 PS) kann man keine höheren dpi einstellen.

So, nun werde ich versuchen, bei nächster Gelegenheit das Ganze nochmals zusammenzufassen und für Interessierte zur Verfügung zu stellen. Mein Skript ist momentan zwar in Python3.6, was nicht notwendigerweise mit Python2.3 (Capella7) und Python2.7 (Capella8) kompatibel ist, aber es sollte hoffentlich kein Problem sein, dies anzupassen.


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: bassklampfe am 27. November 2017, 11:16:21
Offenbar sind in .ps Dateien nur ganzzahlige Koordinaten erlaubt.
Wo hast du das denn her? Mal eben auf die Schnelle ein PDF nach Postscript gewandelt:
Code:
357.602 6880.8 5308.8 4.80078 re
f
357.602 6931.2 5308.8 4.80078 re
f
357.602 6981.6 5308.8 4.79688 re
f
357.602 7032 5308.8 4.80078 re
f
357.602 6832.8 7.19922 796.801 re
Geht also auch mit Floatingpoint. Ich würde eher sagen, das ist ein Capella Problem


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Theo am 27. November 2017, 19:34:16
@bassklampfe, hmmm, hast völlig recht...
Das war ein Fehlschluss meinerseits, basierend darauf, dass ich in aus Capella heraus generierten .ps Dateien bislang noch nie Floatingpoint-Zahlen gesehen habe. Wenn ich z.B. eine Capella8-SVG-Export Datei nehme, sie in Inkscape lade und als .ps abspeichere, bekomme ich darinnen jedenfalls auch Floatingpoint-Zahlen.

Wenn man bei dem obigen Capella7 Beispiel ganz pingelig ist, dann sind zwar die Linien per Definition gleich dick, aber die Abstände der Linien sind doch nicht ganz genau gleich. Die sind nämlich 42 oder 43 in (was-auch-immer)-.ps-Einheiten. Aber eben wiederum alles ganzzahlig.
Und im Capella8-SVG-Druck Beispiel von oben sind die Linien in Inkscape zwischen 0.317 px und 0.479 px breit, das sind 50%(!) dicker, das sieht man nun also wirklich mit bloßem Auge. :lupe:

Ich weiss nicht in welcher Sprache Capella programmiert ist, aber manche Programmiersprachen geben bei a=5, b=3 bei der Division das Ergebnis a/b = 2 aus (Integer-Division). Sollte das etwa ein Programmierfehler bzw. eine Nachlässigkeit in Capella sein, was es an den Drucker schickt... ? :bad: Oder macht der verwendete Postscript-Drucker Ganzzahlen daraus? Fragen über Fragen...  :kratz:


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Paul Villiger am 27. November 2017, 20:39:28
Bei einem capella 8 SVG Export sind alle Notenlinien gleich.
<rect x="0" y="-7.30078" width="17466" height="14.6016"/>
Das sieht nicht nach Integerdivision aus.
Verwendete Datei: Bach Klaviersatz aus den Beispieldateien.
Gruss Paul


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Theo am 29. November 2017, 23:11:35
Offenbar hat es für Capella8 ein Update gegeben.
http://notensatz.forumprofi.de/index.php?topic=1710.0
Dadurch wird "mein" Druckproblem noch schlimmer  :(

Beim Druck in eine Postscript-Datei:
- die "gedruckte" ("leere") PS-Datei ist jetzt neu 1'940 kB anstatt 28 kB groß.
- im daraus mit Inkscape generierten SVG sieht man warum: es sind 12 "unsichtbare" Quadrate/Rechtecke auf der Seite verteilt und es sieht so aus als sind das Pixelgrafiken. Inkscape sagt: "Image 2048x2048 px embedded" (im Bild unten als Umriss sichtbar gemacht).
- diese Quadrate/Rechtecke kann man auch im daraus generierten PDF "selektieren"

Der original-Capella8-PDF-Ganzseiten-Export scheint davon nicht betroffen.

Beim Capella8-SVG-Export:
Das weiße Rechteck ist offenbar weg und das graue Rechteck jetzt transparent. Aber dennoch ist damit ein Rechteck vorhanden, was so gross wie die Seite ist. Und damit kann man die Noten immer noch nicht auf den eigentlichen Inhalt croppen...

hmmm...
(https://i.imgur.com/ZYb3ctV.png)


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Theo am 30. November 2017, 07:34:15
Vielleicht wird es hiermit klarer...?
Um Noten auf ihren tatsächlich benötigten Platzbedarf zu limitieren (croppen) ist es ein entscheidender Unterschied ob ich für den Druck oder Export
a) definiere, die Seite (PageSize, ViewBox, MediaSize oder wie auch immer man es nennt) ist A4 297x210mm gross
ODER
b) ein 297x210mm großes, weißes oder transparentes Rechteck dahinter male...


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Bernd Jungmann am 30. November 2017, 09:47:59
Zitat
nicht auf den eigentlichen Inhalt croppen
Wir haben ja bei capella-software nicht das SVG-Format erfunden, sondern benutzen hier einfach eine Funktion von Qt. Für viele uns geläufige Anwendungen kann man die exportierten SVG-Bilder durchaus benutzen. Seit Version 8.0.2 kann man sie auch z.B. in OpenOffice Writer über einem vorhandenen Hintergrund darstellen.
Wenn Sie uns erklären, mit welchem Verfahren und welcher Software Sie croppen wollen, können wir da vielleicht noch was erreichen.


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: brunsbox am 30. November 2017, 10:24:07
Zitat
"Sichtbar" machen kann man die Rechtecke, wenn man das von Capella 8 exportierte PDF in Inkscape importiert.
Capella8 PDF Export und Inkscape PDF Import resultiert in einer Seitengröße von 213x314mm mit einem weissen und dahinter einem grauen Rechteck.
Da das mit Capella7 nicht so ist, wurde mit Capella8 etwas "verschlimmbessert".

Theo macht es mit Inkscape, ich kann es damit nicht nachvollziehen


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Theo am 01. Dezember 2017, 21:05:01
Seit Version 8.0.2 kann man sie auch z.B. in OpenOffice Writer über einem vorhandenen Hintergrund darstellen.
Wenn Sie uns erklären, mit welchem Verfahren und welcher Software Sie croppen wollen, können wir da vielleicht noch was erreichen.
Es tut mir leid, ich weiss langsam bald nicht mehr wie ich es noch erklären soll, damit es allgemein verständlich wird. :ratlos:

Der einzige Wunsch an Capella8 war, die Rechtecke im Hintergrund wegzulassen. Welchen Zweck haben die überhaupt?

Vielleicht wird's mit dem PNG-Export verständlicher oder anschaulicher?
PNG als Pixelgrafik bietet auch die Möglichkeit eines transparenten Hintergrunds.
Wenn ich aus Capella8 einen PNG-Export mache, erhalte ich das erste Bild (oben), mit seitengroßem, weißem Hintergrund. Wie will ich so ein Bild vernünftig in eine Textverabeitung einbinden, ohne es vorher noch von Hand beschneiden zu müssen?
Das zweite Bild (unten) ist so wie ich mir das vorstelle: nur der wirklich benötigte Platz mit transparentem Hintergrund.
So, und nun das Ganze einfach halt im SVG-Format. Was ist daran nicht verständlich?

Die Verschlimmbesserung vom Capella8.0.2 Update macht nun beim SVG-Export zwar einen transparenten Hintergrund aber der Platzbedarf ist immer noch die ganze Seite. Das alles hatte ich mit meinem PS-Druckprozess in Capella7 umgehen können, aber seit Capella8 sind die Hintergrundseiten dahinter und seit Capella8.0.2 ist der PS-Druck komplett "vermurkst".

Original Capella8-PNG-Export
(https://i.imgur.com/eYwtIfd.png)

Nachbearbeitung eines Capella8-SVG-Exports mit Inkscape zugeschnitten und gespeichert als PNG mit transparentem Hintergrund.
(https://i.imgur.com/Jv0okXN.png)


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Klaus am 01. Dezember 2017, 22:00:53
Was mir noch aufgefallen ist: Die Notenlinien bei Capella7 sind Linien mit gerundeten Enden und mit einer bestimmten Strichstärke, wohingegen es bei Capella8 Flächen sind.
Meines Wissens war das mit den "runden Linienenden" ab capella 3 der Fall. Fein, dass das nun mit capella 8 endlich korrigiert wurde.


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Theo am 05. Dezember 2017, 01:32:49
Mit folgender Prozedur kann man die Capella8-SVG-Export-Dateien korrigieren.
Das gilt momentan für den Capella8.0.2-SVG-Export, der ein unnötiges, seitengroßes, transparentes Rechteck hinter den Noten anbringt. Aber wer weiss, was sich da bei den nächsten Updates noch ändert...
Für die sinnvolle Einbindung in eine Textverarbeitung muss das SVG auf den eigentlichen Inhalt zugeschnitten werden. Diese Bounding-Box kann das Vektorgrafikprogramm Inkscape berechnen (vielleicht gibt's auch noch andere Routinen oder Software dafür?).

In Kürze wäre die Prozedur folgendermaßen:
1. graues (transparentes) Rechteck entfernen
2. mit Hilfe von Inkscape Bounding Box berechnen
3. Seitengröße und ViewBox entsprechend anpassen
4. Translation hinzufügen um Objekte in den Sichtbereich zu verschieben

Es fällt noch auf, dass das Capella8-SVG viele leere(?) bzw. unnötige(?) Objekte zu enthalten scheint. Inkscape gibt in dem obigen DoReMi-Beispiel an, es sei eine Gruppe von 172 Objekten und nach dem Ungruppieren sind es nur noch 35 Objekte. Das Capella8-SVG ist daher mit 45 kB etwas "aufgeblasen", man könnte es auch als optimiertes SVG speichern, dann hat es nur noch 8 kB oder als komprimiertes SVGZ sind es noch 3 kB. Na, egal... halb so wild...

Nun also der Anfang des von Capella8.0.2 exportierten SVG-Codes des oben gezeigten DoReMi-Beispiels:
Code:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="210mm" height="297mm"
 viewBox="200 200 21000 29700"
 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"  version="1.2" baseProfile="tiny">
<title>capella 8 Notensatz</title>
<desc>DoReMi.capx Seite 1</desc>
<defs>
</defs>
<g fill="none" stroke="black" stroke-width="1" fill-rule="evenodd" stroke-linecap="square" stroke-linejoin="bevel" >

<g fill="none" stroke="#000000" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(1,0,0,1,0,0)"
font-family="Segoe UI" font-size="317.5" font-weight="400" font-style="normal"
>
</g>

<g fill="none" stroke="#000000" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(1,0,0,1,0,0)"
font-family="Segoe UI" font-size="317.5" font-weight="400" font-style="normal"
>
</g>

<g fill="#d8d8d8" fill-opacity="0" stroke="none" transform="matrix(1,0,0,1,0,0)"
font-family="Segoe UI" font-size="317.5" font-weight="400" font-style="normal"
>
<rect x="200" y="200" width="21000" height="29700"/>
</g>

<g fill="none" stroke="#000000" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(1,0,0,1,0,0)"
font-family="Segoe UI" font-size="317.5" font-weight="400" font-style="normal"
>
</g>

...

Mit Python (oder Perl) kann man z.B. recht einfach mit Hilfe von sog. "Regular Expressions" nach Textmustern suchen und diese ersetzen bzw. löschen.

Schritt 1: "graues", transparentes Rechteck entfernen:
Die folgenden Zeilen ersatzlos löschen:
Code:
<g fill="#d8d8d8" fill-opacity="0" stroke="none" transform="matrix(1,0,0,1,0,0)"
font-family="Segoe UI" font-size="317.5" font-weight="400" font-style="normal"
>
<rect x="200" y="200" width="21000" height="29700"/>
</g>
In Python sieht das in etwa so aus... (ohne Gewähr)
Code:
SVGCode = re.sub(r'<g fill="#d8d8d8".+?</g>', '', SVGCode, flags=re.DOTALL)

Schritt 2: mit Inkscape Bounding Box berechnen
Mittels Python wird Inkscape gestartet und die Kommandozeilenoption --query-all aufgerufen.
Code:
inkscape --query-all SVGFile.svg
Dazu muss natürlich Inkscape installiert sein, wobei es sinnvoll ist, den Pfad von inkscape.exe in der Windows PATH-Umgebungsvariable einzutragen.
In Python sieht das in etwa so aus... (ohne Gewähr)
Code:
BoundingBoxes = subprocess.check_output(["inkscape", "--query-all", svgfile])
Die Variable BoundingBoxes enthält nun die Angaben zu den Bounding Boxen aller Elemente der SVG-Datei. Die erste Zeile ist dabei die Gesamt-Bounding Box aller Objekte,
z.B. svg422,95.999,107.108,330.859,63.944
<ObjectName>,<x>,<y>,<width>,<height>

Schritt 3: Seitengröße und ViewBox anpassen:
Der erste Ausdruck <ObjectName> kann ignoriert werden. Wichtig sind die nachfolgenden vier durch Komma getrennten Zahlen. Das sind die x,y-Verschiebung und Breite und Höhe der Bounding Box in Einheiten px. Jetzt kommt noch eine Besonderheit von Inkscape in Kombination mit dem Capella8-SVG:
Diese Zahlen müssen jetzt noch mit 2540/96 = 26.458333 multipliziert werden.
Die Ergebnisse <x2>,<y2>,<width2>,<height2> = 2540.000,2833.906,8754.000,1691.877 müssen jetzt wie folgt eingesetzt werden:
Die alten Werte (hier DIN A4) bei width="...mm" und height="...mm" werden durch <width2>/100 und <height2>/100 ersetzt (Komma zwei Stellen nach links verschieben).
Bei viewBox="... ... ... ..." bleiben die ersten beiden Zahlen 200 gleich und der dritte bzw. vierte Wert wird durch <width2> und <height2> ersetzt
vorher:
Code:
<svg width="210mm" height="297mm"
 viewBox="200 200 21000 29700"
 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"  version="1.2" baseProfile="tiny">
 
nachher:
Code:
<svg width="87.54000mm" height="16.91877mm"
 viewBox="200 200 8754.000 1691.877"
 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"  version="1.2" baseProfile="tiny">
 
Schritt 4: Translation hinzufügen
Damit sich die Objekte auch korrekt auf der nun verkleinerte Seite befinden, müssen sie noch entsprechend verschoben werden.
Dazu fügt man eine Translation ein, und zwar nach dem <def></def> in der ersten Gruppe <g ... >, indem man das Negative der Werte <x2>,<y2> dort einträgt, transform="translate(-<x2>,-<y2>)"

Alt:
Code:
<defs>
</defs>
<g fill="none" stroke="black" stroke-width="1" fill-rule="evenodd" stroke-linecap="square" stroke-linejoin="bevel" >
Neu:
Code:
<defs>
</defs>
<g fill="none" stroke="black" stroke-width="1" fill-rule="evenodd" stroke-linecap="square" stroke-linejoin="bevel" transform="translate(-2540.000,-2833.906)">

SVG-Datei abspeichern. Puh! Fertig! Diese modifizierte SVG-Datei kann man nun einfach in LibreOffice Writer laden (meines Wissens kann MSWord keine SVG einbinden) und beliebig skalieren.
Ich hoffe, das war einigermaßen nachvollziehbar, so dass Paul vielleicht animiert ist, das in seinem SVGFix-Script zu implementieren? ;).

Wenn ich ganz anspruchsvoll sein darf, dann gefällt mir der SVG-Export immer noch nicht 100%. Denn es sind vier Mausklicks/bewegungen nötig: Datei | Exportieren | Grafik... | SVG
Und dummerweise merkt sich Capella8 bis zum nächsten Mal nicht, dass als letztes ein SVG exportiert wurde, stattdessen stellt es immer wieder auf PNG zurück. Man muss SVG immer wieder von Neuem auswählen. Lästig!
Schön wäre ein Short-Key (Shift+Ctrl+Irgendwas), dann den SVG-Namen eingeben, fertig! Das wäre wirklich komfortabel. Bei meiner PostScript-Druck-Prozedur (die jetzt nicht mehr funktioniert :( ) war es Ctrl+P und Name eingeben und man erhielt ein PDF, EPS, gecropptes PDF und SVG in einem Aufwasch. Vielleicht kann der SVG-Export auch durch ein Skript angestossen werden, dann wäre es einfach Ctrl+R (Skript Wiederholen), ich vermute, dass das aber nicht geht, oder etwa doch?


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: musikai am 05. Dezember 2017, 11:28:14
Da sorgt capella ja  ordentlichlich dafür, dass du immer besser programmieren lernst :)
Eine Sache: Warum verschiebst du denn alle objekte und nicht einfach die viewbox?


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Theo am 05. Dezember 2017, 14:48:51
ja, da müsste ich Capella sogar noch dankbar sein ;). 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.


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Paul Villiger 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


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: musikai 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"



Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Theo 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.


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Theo am 05. Dezember 2017, 22:54:51
@musikai, haha, :D 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? :bloed:
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.


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Paul Villiger 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


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Theo 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...

(https://i.imgur.com/x8gdu9k.png)


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Paul Villiger 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


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Theo 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).


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Paul Villiger 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


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Theo 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).  :kratz:


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Paul Villiger 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) )


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Theo 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.


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Theo 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.  :jump:
Aber frag mich nicht warum. Das ist mal wieder Windoofs. :bloed:
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).


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Paul Villiger am 09. Dezember 2017, 23:53:30
Hallo Theo
super, dass es jetzt funktioniert. Dann müsste es auch gehen, wenn für den inkscape Pfad inkscape.com ausgewählt wird. Unter win10 erscheint mit inkscape.com kurz das cmd-Fenster, aber es funktioniert auch.

Ohne inkscape sehe ich schwarz. In einer SVG Datei können mit Python die Koordinaten aller Objekte ausgelesen werden, aber das Problem sind u.a. die Fonts, deren Ausdehnung auch analysiert werden müssten und das geht vermutlich nur mit inkscape. Ein Beispiel ist der Violinschlüssel, der über die Notenzeile hinausragt.

Gruss Paul


Titel: Re:Capella8: Druck&PDF: Vermeidung von hinterlegten, seitengroßen Rechtecken?
Beitrag von: Theo am 10. Dezember 2017, 00:10:48
Hallo Paul, danke Dir nochmals für Deine Ausdauer und Geduld.
Ja, die Bounding Box berechnen war schon bei .EPS Dateien kompliziert und fehlerhaft.
Bis vor kurzem wurde mit GSView/Ghostscript z.B. die geschweifte Systemklammer falsch berücksichtigt, weil das ein Element aus Bézier-Kurven ist, wo "Stützpunkte" ausserhalb des Objektes liegen. Das ist aber inzwischen behoben.

Ich war/bin auf der Suche nach Python-Libraries/Modulen, die eine Bounding-Box berechnen können. Aber da ich Python-Anfänger bin, dauert das alles einiges länger.
https://pypi.python.org/pypi/svgpathtools soll angeblich Bounding-Boxen berechnen können.
Zitat: "find a **bounding box** for a path or segment"
Ich befürchte allerdings, dass es vermutlich nicht für Fonts, Rechtecke, Kreise oder andere Objekte funktioniert. Aber wer weiss, vielleicht doch? Ich schau's mir mal an.