Josef_Knecht
Anmeldungsdatum: 8. Januar 2012
Beiträge: 329
|
Hallo liebe Leute, ich habe eine Vorlage als .svg-Datei vorliegen, aus welcher viele Banner bzw. Kopfzeilen entstehen sollen. So soll es also eine Kopfzeile zum Thema "Hydraulik", eine zum Thema "Pneumatik" etc. geben.
Nun habe ich mir eine Reihe von Sinnbildern erstellt, die ich in eben diese Vorlage integrieren möchte, damit die Kopfzeile optisch das Thema einleitet. So gibt es also Sinnbilder zum Thema "Hydraulik" und welche zum Thema "Pneumatik" etc. Die Sinnbilder sollen immer an der selben Position innerhalb der Vorlage sitzen, so dass ich also exakte Koordinaten benennen könnte. Jetzt stelle ich jedoch fest, dass das manuelle ausrichten sehr, sehr zeitaufwändig ist, und da kam mir der Gedanke: "Ich habe doch Ubuntu!!!", da gibt es doch bestimmt eine Möglichkeit, oder ein Programm, das mir diese (ein wenig öde Arbeit) abnehmen könnte. Gibt es diese Möglichkeit??? Wie gesagt, die Vorlage ist eine svg.. Diese könnte ich jedoch auch in eine .png oder jpeg umwandeln, falls dies erforderlich wäre.
Die Sinnbilder liegen ebenfalls als svg-Dateien vor und befinden sich in jeweils nach dem Thema benannten Ordnern (Hydraulik.....) Theoretisch könnte ich dies mit dem Programm glabels machen. Bei diesem Programm, kann man wohl automatisch Bilder einfügen und ausrichten lassen, doch sind die Ergebnisse dann auf einem "Papierformat". Man stelle sich also eine DIN/A4 Seite vor, auf der dann viele Kopfzeilen wären. Diese müssten dann jeweils ausgeschnitten werden, was den Aufwand jedoch nur verändert, nicht aber abschafft. Nochmal etwas anders formuliert.
Aus einer Vorlage sollen verschiedene Kopfzeilen entstehen. Der Unterschied jedoch besteht lediglich aus anderen Sinnbilder. Alles andere soll so bleiben, wie in der Vorlage. Ich suche also nach einem Programm, in das ich meine Vorlage importiere, dem Programm dann erklären müsste, an welche Position welches Sinnbild gehört. "Objekt 1" an Position x640px y380px, "Objekt 2"... und das Programm sich dann automatisch die Sinnbilder aus dem entsprechenden Order läd, ausrichtet und nach einem Namen (Hydraulik....steht in einer Liste) speichert. Also so ähnlich wie glabels nur ohne Papier-Format-Vorgabe, sonder frei wählbare Größe... Je länger ich an diesem Text schreibe, umso mehr kommt mir der Gedanke, dass es wahrscheinlich doch keine Möglichkeit gibt... Falls jemand so etwas kennen sollte oder Alternativen hierzu kennt, würde ich riesig freuen. Herzlichen Dank schon mal im Voraus
|
Thomas_Do
Moderator
Anmeldungsdatum: 24. November 2009
Beiträge: 8528
|
Beschreibe noch einmal genau, was Du vorhast. Sollen die "Sinnbilder" in die SVG-Datei eingefügt werden oder "Sinnbild" und "Banner" in eine Textdatei? Warum muss überhaupt ausgerichtet werden? Haben die "Sinnbilder unterschiedliche Maße? In dem Fall könnte man sie z.B. alle auf die gleichen Außenmaße bringen und mit Transparenz auffüllen.
|
Josef_Knecht
(Themenstarter)
Anmeldungsdatum: 8. Januar 2012
Beiträge: 329
|
@Thomas_Do danke für deine schnelle Antwort.
Die Sinnbilder sollen in die Vorlage integriert werden, und dann gemeinsam mit der Vorlage als ein Gesamtbild gespeichert werden.
Dann soll wiederum aus der Vorlage und anderen Sinnbildern ein neues Gesamtbild entstehen, dass dann unter einem anderen Dateinamen (stehen in einer Liste) gespeichert wird. Ich glaube, dass ich es blöd erklärt habe. Die späteren Kopfzeilen sollen alle dasselbe Grund-Design besitzen. Lediglich die Sinnbilder machen einen Unterschied.
Die Ausrichtung der Sinnbilder muss erfolgen, weil es innerhalb der Kopfzeile auch Text gibt und nur ein bestimmter Bereich für die Sinnbilder vorgesehen ist. Damit das ganze dann einheitlich aussieht, möchte ich sie exakt an der immer selben Stelle positioniert haben.
|
seahawk1986
Anmeldungsdatum: 27. Oktober 2006
Beiträge: 11179
Wohnort: München
|
SVG ist ja letztendlich nur eine Auszeichungssprache - also kann man SVGs aus Templates erstellen lassen, mit Skripten zusammensetzen, andere SVG-Elemente inkludieren usw. ... Wenn man SVG-Objekte bzw. Grafiken mit Position und Größe an bestimmten Positionen in eine SVG-Grafik einbinden will, kann man den <use> bzw. den <foreignObject> Tag nutzen.
|
Josef_Knecht
(Themenstarter)
Anmeldungsdatum: 8. Januar 2012
Beiträge: 329
|
@seahawk1986 jaaa, aber dazu müsste man programmieren können, vermute ich...
|
Thomas_Do
Moderator
Anmeldungsdatum: 24. November 2009
Beiträge: 8528
|
Josef_Knecht schrieb: @seahawk1986 jaaa, aber dazu müsste man programmieren können, vermute ich...
Nicht unbedingt. Hast Du mal ein Beispiel?
|
Josef_Knecht
(Themenstarter)
Anmeldungsdatum: 8. Januar 2012
Beiträge: 329
|
Mit Beispiel meinst du eine Vorlage-Datei und ein paar Sinnbilder?
Das schaffe ich heute nicht mehr, Lade ich aber gerne morgen welche hoch, falls du das meinst...
|
Thomas_Do
Moderator
Anmeldungsdatum: 24. November 2009
Beiträge: 8528
|
Josef_Knecht schrieb: Mit Beispiel meinst du eine Vorlage-Datei und ein paar Sinnbilder?
Ja.
|
Josef_Knecht
(Themenstarter)
Anmeldungsdatum: 8. Januar 2012
Beiträge: 329
|
Vor vielen, vielen Jahren hatte ich ein paar Erfahrungen mit BASIC machen können und auch wenn ich heute praktisch nichts mehr davon weiß, so denke ich, dass sich das, was ich vorhabe realisieren lassen müsste. Die einzelnen Arbeitsschritte sind im Grunde:
-Öffnen der Vorlage -Importieren der "Datenbank" (Liste mit den Kapiteln) -Erkennen des 1. Begriffes Spalte A -Erkennen des 1. Begriffes Spalte B -Importieren von Objekt 1. Pfad ergibt sich aus Kombination 1. Begriff Spalte A und 1. Begriff Spalte B (bspw. Home/Buch/Hydraulik/Einführung/Objekt_1) -Positionieren von Objekt 1: x=672,193 : y=107,718 -Importieren von Objekt 2 -Positionieren von Objekt 2: ... -Importieren von Objekt 3 -Positionieren von Objekt 3: ... -Exportieren der Seite unter dem Namen: 1.Begriff Spalte A Unterstrich 1. Begriff Spalte B .png im Ordner "Kopfzeilen" -Löschen von Objekt 1, 2 und 3 -Dann wieder von vorn... -Erkennen des 1. Begriffes Spalte A -Erkennen des 2. Begriffes Spalte B - ...
Und das war es im Prinzip auch schon. Ich weiß nur nicht wie. Hier also mal ein paar Beispiel-Dateien (bitte nicht über Design lachen, sind nicht die Originalen!)
- Vorlage.svg (6.0 KiB)
- Download Vorlage.svg
- Objekt_1.svg (2.8 KiB)
- Download Objekt_1.svg
- Objekt_2.svg (4.5 KiB)
- Download Objekt_2.svg
- Objekt_3.svg (3.0 KiB)
- Download Objekt_3.svg
- Bilder
|
Thomas_Do
Moderator
Anmeldungsdatum: 24. November 2009
Beiträge: 8528
|
SVG ist ja eigentlich nur Text. Du kannst z.B. den Text der Vorlage nehmen und die Gruppe mit dem eigentlichen Bild aus Objekt 1 (gelb) einfügen: <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="900"
height="200"
viewBox="0 0 238.12499 52.916668"
version="1.1"
id="svg8"
sodipodi:docname="Vorlage.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
inkscape:export-filename="/home/andreas/Schreibtisch/1.1 Hydraulik_Einführung.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<defs
id="defs2">
<linearGradient
inkscape:collect="always"
id="linearGradient868">
<stop
style="stop-color:#ccaaff;stop-opacity:0;"
offset="0"
id="stop866" />
<stop
style="stop-color:#ccaaff;stop-opacity:1;"
offset="1"
id="stop864" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient858">
<stop
style="stop-color:#afc6e9;stop-opacity:0;"
offset="0"
id="stop856" />
<stop
style="stop-color:#afc6e9;stop-opacity:1;"
offset="1"
id="stop854" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient858"
id="linearGradient860"
x1="0"
y1="50"
x2="900"
y2="50"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient868"
id="linearGradient870"
x1="0"
y1="34.40299"
x2="143.0038"
y2="34.40299"
gradientUnits="userSpaceOnUse"
gradientTransform="scale(1.0291265,1)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient858"
id="linearGradient1336"
x1="147.16901"
y1="39.6875"
x2="238.12502"
y2="39.6875"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.7"
inkscape:cx="387.22691"
inkscape:cy="227.56236"
inkscape:document-units="px"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="false"
units="px"
width="900px"
inkscape:snap-page="true"
inkscape:object-paths="true"
inkscape:window-width="1920"
inkscape:window-height="1026"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:snap-nodes="true"
inkscape:snap-others="true"
inkscape:snap-grids="false"
inkscape:object-nodes="true"
inkscape:snap-object-midpoints="true"
inkscape:snap-center="true" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Ebene 1"
inkscape:groupmode="layer"
id="layer1">
<rect
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect1771"
width="238.125"
height="52.916664"
x="0"
y="0" />
<path
id="rect833"
style="fill:url(#linearGradient860);stroke-width:14.6757;stroke-linecap:round;fill-opacity:1"
d="M 0 0 L 0 100 L 800 100 L 900 50 L 800 0 L 0 0 z "
transform="scale(0.26458333)" />
<path
id="rect838"
style="fill:url(#linearGradient870);fill-opacity:1;stroke-width:2.36559;stroke-linecap:round"
d="M 0,26.458334 V 42.347645 H 130.81689 L 147.16901,34.40299 130.81689,26.458334 Z" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.6435px;line-height:1.25;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu Bold';stroke-width:0.341088"
x="31.356993"
y="17.26082"
id="text876"><tspan
sodipodi:role="line"
id="tspan874"
x="31.356993"
y="17.26082"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu Bold';stroke-width:0.341088">1 Hydraulik</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:9.55035px;line-height:1.25;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu Bold';stroke-width:0.238759"
x="31.643513"
y="37.630508"
id="text880"><tspan
sodipodi:role="line"
id="tspan878"
x="31.643513"
y="37.630508"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu Bold';stroke-width:0.238759">1.1 Einführung</tspan></text>
<rect
style="opacity:1;fill:url(#linearGradient1336);stroke:none;stroke-width:2.40909;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1.0"
id="rect1328"
width="90.956001"
height="26.458334"
x="147.16901"
y="26.458332" />
<text
font-size="0.648966px"
style="font-style:normal;font-weight:normal;font-family:sans-serif;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.0507012"
x="259.39639"
y="112.76425"
id="text1426"><tspan
x="259.39639"
y="112.76425"
id="tspan1424"
style="stroke-width:0.0507012" /></text>
</g>
<g
inkscape:label="Ebene 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g1625"
transform="translate(-190.72901,-35.90531)">
<circle
style="fill:#b7bec8;stroke:none;stroke-width:0.064759;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="circle1034"
cx="197.89406"
cy="43.070358"
r="7.1650243" />
<path
id="rect995"
style="fill:#ccaaff;stroke:#000000;stroke-width:0.0810209;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 192.70612,40.8297 v 0.769877 h 3.82933 v 5.748487 l 1.02581,0.845098 h 1.02578 1.0258 l 1.02581,-0.845098 V 40.8297 h -3.93805 -0.16515 z"
sodipodi:nodetypes="cccccccccccc" />
<rect
style="fill:#3771c8;stroke:#000000;stroke-width:0.0810508;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect1007"
width="2.6316743"
height="4.0340838"
x="197.31433"
y="42.859135" />
<path
id="rect1009"
style="fill:#87aade;stroke:#000000;stroke-width:0.0771357;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 198.10529,38.795514 v 1.069597 2.994026 h 1.06958 v -2.994026 h 2.9935 v -1.069597 h -2.9935 z" />
</g>
</svg> Das sieht dann so aus, wie im Anhang. Die genaue Positionierung müsste man sich noch ansehen. So etwas lässt sich auch mit einem einfachen Shellskript ohne große Programmierkenntnisse erledigen.
- Bilder
|
Josef_Knecht
(Themenstarter)
Anmeldungsdatum: 8. Januar 2012
Beiträge: 329
|
hm? @Thomas_Do Wenn ich den gelb markierten Text in der Vorlage im XML-Editor eingebe, taucht keine Icon auf...
Bin mir nicht sicher, warum, bzw. ob so überhaupt das Icon auftauchen könnte. Doch angenommen, ich hätte es nur falsch gemacht, verstehe ich noch nicht recht, wie das dann automatisch für verschiedene Kopfzeilen funktionieren würde??? Würde es das?? Was die Positionierung angeht..., kann man die nicht auch über den XML-Editor laufen lassen?
|
seahawk1986
Anmeldungsdatum: 27. Oktober 2006
Beiträge: 11179
Wohnort: München
|
Wenn man das automatisieren wollte würde ein leichter maschinell lesbares Eingabeformat für die Abschnitte des Buches helfen - also z.B. so eine chapters.csv
| Type;Name
Section;Hydraulik
Subsection;Einführung
Subsection;Anlagen
Subsection;Druckflüssigkeiten
Subsection;Viskosität
Subsection;Berechnungen
Section;Pneumatik
|
Dann könnte man ein kleines Python-Skript generate_chapter_headings.py nutzen, das mit Hilfe von python3-jinja2 ein SVG-Template so zu manipulieren, dass die SVG-Datei für Object_1 eingebunden und der Abschnitt und Unterabschnitt betitelt werden und mit Hilfe von python3-cairosvg aus dem resultierenden SVG eine PNG-Datei erstellen zu lassen (da du keine Position für Objekt_2 und Objekt_3 angegeben hast, habe ich die erst mal weggelassen):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 | #!/usr/bin/env python3
import csv
import io
import sys
from pathlib import Path
import cairosvg
from jinja2 import Template
def draw_section(section, subsection, section_number, subsection_number, template):
target = f"{section}_{subsection}.png"
object_1 = Path.home() / "Buch" / section / subsection / "Objekt_1.svg"
object_1_url = f"file://{object_1.resolve()}"
svg = io.StringIO(
template.render(
section=section,
subsection=subsection,
section_number=f"{section_number}.",
subsection_number=f"{section_number}.{subsection_number}.",
object_1=object_1_url,
)
)
cairosvg.svg2png(file_obj=svg_data, write_to=target)
def main():
with open("template.svg.j2") as f:
template = Template(f.read())
with open(sys.argv[1], newline="") as f:
dictreader = csv.DictReader(f, delimiter=";")
section_number = 0
subsection_number = 0
for row in dictreader:
if row["Type"] == "Section":
section_number += 1
section = row["Name"]
subsection_number = 0
elif row["Type"] == "Subsection":
subsection_number += 1
subsection = row["Name"]
draw_section(
section, subsection, section_number, subsection_number, template
)
if __name__ == "__main__":
if len(sys.argv) != 2:
sys.exit(f"usage: {sys.argv[0]} chapters.csv")
main()
|
Und das Template template.svg.j2 für jinja2 sähe dann für ein Objekt z.B. so aus (das Bild wird den <image> Tag am Ende eingebunden):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
inkscape:export-filename="/home/andreas/Schreibtisch/1.1 Hydraulik_Einführung.png"
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
sodipodi:docname="Vorlage_icon.svg"
id="svg8"
version="1.1"
viewBox="0 0 238.12499 52.916668"
height="200"
width="900">
<defs
id="defs2">
<linearGradient
id="linearGradient868"
inkscape:collect="always">
<stop
id="stop866"
offset="0"
style="stop-color:#ccaaff;stop-opacity:0;" />
<stop
id="stop864"
offset="1"
style="stop-color:#ccaaff;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient858"
inkscape:collect="always">
<stop
id="stop856"
offset="0"
style="stop-color:#afc6e9;stop-opacity:0;" />
<stop
id="stop854"
offset="1"
style="stop-color:#afc6e9;stop-opacity:1;" />
</linearGradient>
<linearGradient
gradientUnits="userSpaceOnUse"
y2="50"
x2="900"
y1="50"
x1="0"
id="linearGradient860"
xlink:href="#linearGradient858"
inkscape:collect="always" />
<linearGradient
gradientTransform="scale(1.0291265,1)"
gradientUnits="userSpaceOnUse"
y2="34.40299"
x2="143.0038"
y1="34.40299"
x1="0"
id="linearGradient870"
xlink:href="#linearGradient868"
inkscape:collect="always" />
<linearGradient
gradientUnits="userSpaceOnUse"
y2="39.6875"
x2="238.12502"
y1="39.6875"
x1="147.16901"
id="linearGradient1336"
xlink:href="#linearGradient858"
inkscape:collect="always" />
</defs>
<sodipodi:namedview
inkscape:snap-center="true"
inkscape:snap-object-midpoints="true"
inkscape:object-nodes="true"
inkscape:snap-grids="false"
inkscape:snap-others="true"
inkscape:snap-nodes="true"
inkscape:window-maximized="0"
inkscape:window-y="159"
inkscape:window-x="960"
inkscape:window-height="967"
inkscape:window-width="1296"
inkscape:object-paths="true"
inkscape:snap-page="true"
width="900px"
units="px"
showgrid="false"
inkscape:document-rotation="0"
inkscape:current-layer="layer1"
inkscape:document-units="px"
inkscape:cy="227.56236"
inkscape:cx="387.22691"
inkscape:zoom="0.7"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:groupmode="layer"
inkscape:label="Ebene 1">
<g
id="g857">
<rect
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect1771"
width="238.125"
height="52.916664"
x="0"
y="0" />
<path
id="rect833"
style="fill:url(#linearGradient860);stroke-width:14.6757;stroke-linecap:round;fill-opacity:1"
d="M 0 0 L 0 100 L 800 100 L 900 50 L 800 0 L 0 0 z "
transform="scale(0.26458333)" />
<path
id="rect838"
style="fill:url(#linearGradient870);fill-opacity:1;stroke-width:2.36559;stroke-linecap:round"
d="M 0,26.458334 V 42.347645 H 130.81689 L 147.16901,34.40299 130.81689,26.458334 Z" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.6435px;line-height:1.25;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu Bold';stroke-width:0.341088"
x="31.356993"
y="17.26082"
id="text876"><tspan
sodipodi:role="line"
id="tspan874"
x="31.356993"
y="17.26082"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu Bold';stroke-width:0.341088">{{ section_number }} {{ section }}</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:9.55035px;line-height:1.25;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu Bold';stroke-width:0.238759"
x="31.643513"
y="37.630508"
id="text880"><tspan
sodipodi:role="line"
id="tspan878"
x="31.643513"
y="37.630508"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu Bold';stroke-width:0.238759">{{ subsection_number}} {{ subsection }}</tspan></text>
<rect
style="opacity:1;fill:url(#linearGradient1336);stroke:none;stroke-width:2.40909;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1.0"
id="rect1328"
width="90.956001"
height="26.458334"
x="147.16901"
y="26.458332" />
</g>
<text
id="text1426"
y="112.76425"
x="259.39639"
style="font-style:normal;font-weight:normal;font-family:sans-serif;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.0507012"
font-size="0.648966px"><tspan
style="stroke-width:0.0507012"
id="tspan1424"
y="112.76425"
x="259.39639" /></text>
<image
href="{{ object_1 }}"
y="28.310417"
x="177.8"
preserveAspectRatio="none"
inkscape:svg-dpi="96"
width="14.330097"
height="14.330097"
id="image909" />
</g>
</svg>
|
Der Aufruf könnte dann z.B. so aussehen:
python3 generate_chapter_headings.py chapters.csv PS: Wenn ich das richtig verstehe, willst du ein Buch setzen - mit welchem Programm machst du das? Ich habe den Verdacht, dass du dir das Leben schwerer als nötig machst, wenn du da aus SVG-Dateien Pixelgrafiken mit Überschriften aus einer Tabelle erstellen lässt und die dann händisch einbindest.
|
Josef_Knecht
(Themenstarter)
Anmeldungsdatum: 8. Januar 2012
Beiträge: 329
|
@seahawk1986 danke für die umfangreiche Antwort... also ich glaube, dass ich die .csv noch hinkriegen würde, doch bei dem gesamten Rest verstehe ich leider nur noch Bahnhof.
Die Sinnbilder und auch die Vorlage hatte ich mit Inkscape erstellt, weil mir dies vom handling her am leichtesten erschien. Ich habe mir deinen Beitrag nun mehrfach durchgelesen und auch versucht das Python Skript zu kapieren, aber ich krieg es nicht im Mindesten in die Birne...
|
Josef_Knecht
(Themenstarter)
Anmeldungsdatum: 8. Januar 2012
Beiträge: 329
|
Es liegt übrigens nicht in meiner Absicht, die Kopfzeilen automatisch in den Text einzubinden. Das worum es mir geht sind lediglich Kopfzeilen, die als .png oder jpeg in einem Order gesammelt vorliegen...
|
Josef_Knecht
(Themenstarter)
Anmeldungsdatum: 8. Januar 2012
Beiträge: 329
|
Um die Sache etwas zu vereinfachen...
Im Grunde geht es mir vor allem um das automatische positionieren. Importieren, könnte ich die Sinnbilder auch einfach über drag & drop, das ist nicht der Riesen-Aufwand.
Viel zeitaufwändiger ist es die Sinnbilder auszurichten. Da ich dies mit Inkscape machen würde, dachte ich, dass man das relativ einfach über den XML-Editor schafft, oder dass es ein Programm, ähnlich glabels gibt, dass sich die entsprechenden Dateien selbstständig aus dem entsprechenden Order sucht, importiert und nach Vorgabe positioniert.
|