Jump to content

Svg faila ģenerēšana ar pytonu


Jurkins
 Share

Recommended Posts

Reāla problēma... 😁

Process uzrakstīts virsrakstā. Svgwrite bibliotēka. Mēģinot barot šim iekšā formatētu stringu, šamais visas atstarpes uztaisa vienu vienību lielas.

import svgwrite
dwg = svgwrite.Drawing('test2.svg', size = ('210mm', '297mm'), profile = 'full')
dwg.add(dwg.text('   A A  A   A    A      A', insert = (10, 100)))
dwg.save()

Rezultātu izdod šādu:

2022-01-06_00-32.png.9d42968b64ec25ac6557ff0d910ab0b8.png

Gūglējot, vienīgais, ko atradu, ka jānorāda profile = 'full'.

Ja paskatās svg failu redaktorā, tad ...

<text x="10" y="100">   A A  A   A    A      A</text

Ja gūgle nepalīdz, tad jālūdz palīdzība zālei ( ne tai😁)

Link to comment
Share on other sites

Piemet dwg.defs.add(dwg.style('* {white-space: pre; }'))

  • Patīk 1
Link to comment
Share on other sites

Pirms 2 minūtēm , AndrisBB teica:

Visdrīzāk atribūts, kuru tu meklē, ir 'xml:space'

Tieši tā! Bet es nemācēju šo pareizi ielikt.

Atšķirība, ka @marrtinsvariantā tas attiecas uz visu dokumentu, bet Tavā tikai uz objektu test.

Labots - Jurkins
Link to comment
Share on other sites

Stilus jau var pielikt arī konkrētam elementam - un jā - daudz prātīgāk ir stilot pašu elementu, ne visu dokumentu, bet tas ātrais piemērs idejai. Par @AndrisBB ieliktu xml atribūtu arī nezināju.

Link to comment
Share on other sites

Šeit jau viss atkarīgs no tā, kas to SVG renderēs. Var jau gadīties ka renderētāj bibliotēka vienkārši ignorē kautkādus stilus. Pietiekoši esu noņēmies uz MCU, kur GUI ir SVG un tiek renderēti ar minimālām SVG bibliotēkām. Tad jo vienkāršāk, jo labāk. 

Link to comment
Share on other sites

Es pirms tam par svg vispār zināju tikai to, ka ir tāds grafiskais formāts tam pašam inkscape. Un tad tupa sāku skatīties, kas lācim vēderā ar notepadu. Rinda xml:space=preserved atradās uzreiz, bet nekādi nesanāca iekš pytona šo ierakstīt tā, lai nelamātos.

Link to comment
Share on other sites

Izveido kontu, vai pieraksties esošajā, lai komentētu

Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas

Izveidot jaunu kontu

Piereģistrējies un izveido jaunu kontu, tas būs viegli!

Reģistrēt jaunu kontu

Pierakstīties

Jums jau ir konts? Pierakstieties tajā šeit!

Pierakstīties tagad!
 Share

×
×
  • Izveidot jaunu...