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


Profil anzeigen
« Antworten #30 am: 23. November 2017, 09:11:11 »

Zitat

Hast Du die Rechtecke übrigens inzwischen gefunden?

 Teufel leider nein!!
Gespeichert

Progs: Capella 8 /7.1, Capscan 8, Capriccio 5, CPA 3, Cap Melody Trainer 1.1, Tonica,  Finale Notepad, musescore 2,
VSTs /soundlibraries: Capella Viena Orchestra, Kontakt 4
BS: Win 10 64 bit
Interessen: Chorgesang, Notensatz
musikai
Adept
**
Beiträge: 62


Profil anzeigen
« Antworten #31 am: 26. November 2017, 22:40:27 »

 Smile
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?
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 #32 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. Blöd
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.


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...
Gespeichert
musikai
Adept
**
Beiträge: 62


Profil anzeigen
« Antworten #33 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.

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 #34 am: 27. November 2017, 06:59:04 »


@musikai, danke für den Tipp mit den dpi!  Smile
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?!  Kopfkratzen
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.
Gespeichert
bassklampfe
Allwissendes Orakel
*****
Beiträge: 673



Profil anzeigen WWW
« Antworten #35 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
Gespeichert

Soft:PriMusPublisher,CapalleScan8,GuitarPro(1…6),Capella(1…6),Transcribe
(+MuseScore,TuxGuitar,CakeWalk,PdfToMusic,u.v.a.m.)
Prog:Lua,C++,Perl,...
BS:W7x64,Kubuntu14.04LTS
Musik:Notensatz&Musizieren@Jazz,Rock,Chor@Bass,Gitarre,Gesang.
Theo
Gelehrter
***
Beiträge: 107


Profil anzeigen
« Antworten #36 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... ? Knüppel Oder macht der verwendete Postscript-Drucker Ganzzahlen daraus? Fragen über Fragen...  Kopfkratzen
Gespeichert
Paul Villiger
Allwissendes Orakel
*****
Beiträge: 513


Profil anzeigen WWW
« Antworten #37 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
Gespeichert
Theo
Gelehrter
***
Beiträge: 107


Profil anzeigen
« Antworten #38 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  Traurig

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...
Gespeichert
Theo
Gelehrter
***
Beiträge: 107


Profil anzeigen
« Antworten #39 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...
Gespeichert
Bernd Jungmann
Adept
**
Beiträge: 52


Profil anzeigen
« Antworten #40 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.
Gespeichert
brunsbox
Erleuchteter
****
Beiträge: 282


Profil anzeigen
« Antworten #41 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
Gespeichert

Progs: Capella 8 /7.1, Capscan 8, Capriccio 5, CPA 3, Cap Melody Trainer 1.1, Tonica,  Finale Notepad, musescore 2,
VSTs /soundlibraries: Capella Viena Orchestra, Kontakt 4
BS: Win 10 64 bit
Interessen: Chorgesang, Notensatz
Theo
Gelehrter
***
Beiträge: 107


Profil anzeigen
« Antworten #42 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


Nachbearbeitung eines Capella8-SVG-Exports mit Inkscape zugeschnitten und gespeichert als PNG mit transparentem Hintergrund.

Gespeichert
Klaus
Administrator
Allwissendes Orakel
*****
Beiträge: 794



Profil anzeigen
« Antworten #43 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.
Gespeichert

Programme: MuseScore, PriMus Publisher; Betriebssystem: Windows 10 Home 64 Bit
Interessen: Kirchenmusik, Orgel [http://www.sakralorgelforum.de], Chor, Notensatz im Allgemeinen
Theo
Gelehrter
***
Beiträge: 107


Profil anzeigen
« Antworten #44 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? Zwinker.

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 Traurig ) 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?
Gespeichert
Seiten: 1 2 [3] 4 5   Nach oben
Drucken
 
Gehe zu: