Buduję zbiór plików SVG, które zawierają niefortunną liczbę zakodowanych wartości (muszą być drukowane z elementami o wielkości w mm, a inne muszą być skalowane jako procent, a większość wartości to zdefiniowane względem siebie). Zamiast zarządzać tymi liczbami ręcznie (nie daj Boże, chcę coś zmienić), pomyślałem, że mogę użyć mojego zaufanego pytona z młotkiem do tego zadania.Tworzenie SVG przy użyciu Pythona
Format SVG 1.1 nie wspiera natywnego typu programu, który pozwoliłby mi robić to, co chcę, i nie jestem zainteresowany wprowadzeniem do miksu javascript lub niestabilnej wersji roboczej w3c. Jednym z oczywistych rozwiązań jest użycie formatowania ciągów do odczytu, analizy i zamiany zmiennych w moim pliku SVG. Wydaje się, że jest to zły pomysł na większy dokument, ale ma tę zaletę, że jest prosty i przenośny.
Moja druga sprawa polegała na zbadaniu dostępnych bibliotek Pythona-> SvG. Niestety wygląda na to, że kilka opcji jest albo zbyt nowych (pySVG nadal ma niestabilny interfejs), zbyt stare (nieaktualne od 2005), albo porzucone. Nie przyjrzałem się uważnie, ale mam wrażenie, że aplikacje do tworzenia wykresów nie są wystarczająco elastyczne, aby generować moje dokumenty.
Trzecią opcją, z którą się spotkałem, było użycie innego narzędzia do rysowania (na przykład cairo), które można przekonać do wydania svg. Ma to (potencjalną) wadę polegającą na tym, że nie obsługuje on bezwzględnych rozmiarów elementów, które są dla mnie tak ważne, ale może obejmować możliwość wyprowadzania plików PDF, co byłoby wygodne.
Wykonałem już badanie google, dlatego szukam informacji od osób, które skorzystały z którejś z wymienionych metod lub które mogą znać inne podejście. Długookresowa stabilność dowolnego rozwiązania jest dla mnie ważna (to był pierwotny powód kodowania ręcznego zamiast używania tylko programu Illustrator).
W tym momencie pochylam się nad pierwszym rozwiązaniem, więc mile widziane są zalecenia dotyczące najlepszych praktyk dotyczących używania Pythona do analizowania i zastępowania zmiennych w plikach XML.
To dobra uwaga. XSLT wciąż mnie drży. A dla dokumentów SVG, Genshi powinien pozwolić mi rozwinąć się z wartościami testowymi, a następnie wymienić je tak, jak jest to wygodne. W trakcie pracy będę mógł zachować szablony w mojej przeglądarce. –