Inkscape en Perl

Ik heb het er al eerder over gehad. Mensen die SVG afbeeldingen maken (SVG) voeren hun tekst niet goed in in hun SVG editor. Gevolg: de tekst verschijnt niet of op de verkeerde plek (afbeelding 1). Als je dan het probleem analyseert in het programma Inkscape, dan zie je hoe slecht de tekst is ingevoerd (afbeelding 2).

Dat is helemaal geen probleem als een afbeelding 4 tekstobjecten bevat. Maar als er 32 tekstobjecten in de tekst staan, wordt het opnieuw intypen van al deze tekst in Inkscape veel te veel werk. De tekst staat evenwel al in de code. Alleen is de code onjuist zodat de tekst verkeerd wordt weergegeven.

Ik heb al tijden gezocht naar een oplossing van dit probleem. Het probleem kan gesplitst worden in twee deelproblemen:
1. een methode om snel tekst uit een xml file te extraheren.
2. een methode om deze tekst in zijn geheel in de oude file terug te plaatsen maar dan ingebed in juiste code. Deze tekst verschijnt dan in Inkscape maar niet op de juiste plek. Deze dient dan een voor een naar de juiste plek gesleept te worden en vervolgens uitgelijnd te worden.

Met de tekst editor Vim is het mogelijk om snel tekst uit een xml file te extraheren. Dit kan met behulp van een macro. Ik zal dit hier niet behandelen.

Ik heb probleem 2 opgelost met wat Perl code. Zie hieronder:

Na het runnen van perl script.pl worden er 32 tekstobjecten gemaakt met behulp van de for loop (regel 17). Een voor elk element uit de $a array (regel 9) Deze tekst kan dan gekopieerd worden en vervolgens geplakt worden in de SVG file, zoals ik reeds hierboven beschreven heb. Let ook op regel 27. De style van de tekstobject moet goed zijn (goed font-type, goede font-size etc.)

Het gebruik maken van scripts kan wat tijd besparen wanneer je veranderingen in afbeeldingen wilt maken. Zie hieronder het resultaat:

Dit bericht is geplaatst in tekening, wikipedia. Bookmark de permalink.