O caminho dimensionado salvo em pdf é renderizado como se a largura do traçado fosse dimensionada em tudo, exceto no inkscape

1

Espero que este seja eu fazendo algo errado, mas se minhas suspeitas estiverem corretas e for um bug, eu enviarei um relatório de bug.

Eu tenho um arquivo svg (originalmente desenhado por matplotlib, mas eu suspeito que não seja relevante). Eu escalonei alguns caminhos em altura somente (e os recortei), agora quando eu carrego o pdf em evince, gimp ou gv * - mas não no inkscape - a largura do traço também é escalada em altura, embora eu não tenha o < em> escala quando o dimensionamento afeta selecionado.

Abrindo o pdf no inkscape e exportando como .png:

abrindoomesmopdfnoGimp:

alguns caminhos sem escala também são vistos à esquerda.

Existe algo que eu possa fazer sobre isso? Eu realmente preciso trabalhar no svg ao invés de voltar para o processamento de dados e modificar o código no matplotlib, e eu preciso escalar por um inteiro digitando, não arrastando.

Edit: * Acabei de instalar o foxit no meu windows vm - o mesmo que tudo exceto o inkscape

Edit2: Aqui está um svg (ish) mínimo que mostra o problema (na verdade, não há upload de SVG?):

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<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"
   version="1.1"
   width="86.874992"
   height="33.008114"
   viewBox="0 0 69.499992 26.406493"
   id="svg2">
  <metadata
     id="metadata1778">
    <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>
  <defs
     id="defs4"
     style="stroke-linecap:square;stroke-linejoin:round">
    <style
       type="text/css"
       id="style6" />
  </defs>
  <path
     d="m 73.4966,215.574 2.6784,0.104 5.9148,0.341 11.9412,-0.054 21.874,-0.079 9.597,-0.184 4.911,-0.321 2.901,-0.402 4.018,-0.785 0.446,-0.378 0.447,-0.689 0.446,-1.086 0.558,-2.019 0.67,-3.471 0.781,-5.406 1.227,-10.454"
     transform="translate(-72.968769,-190.125)"
     clip-path="url(#p19969a3f5c)"
     id="path722"
     style="fill:#ff0000;stroke:#0000ff;stroke-width:1;stroke-linecap:square;stroke-linejoin:round" />
  <defs
     id="defs1765">
    <clipPath
       id="p19969a3f5c">
      <rect
         width="446.39999"
         height="101.64706"
         x="72"
         y="165.17647"
         id="rect1774"
         style="stroke-linecap:square;stroke-linejoin:round" />
    </clipPath>
  </defs>
</svg>

* Para demonstrar, estique apenas em altura do que salvar como pdf e abra no seu visualizador de escolha (exceto no inkscape).

Note que adicionei um preenchimento para provar que é apenas um caminho e não um objeto que está sendo dimensionado

Mais informações novas - se eu remover o clipe, ele será dimensionado como deveria *

    
por Chris H 15.01.2014 / 11:54

1 resposta

0

No final, fiz o que disse no meu comentário, mas ainda acho que deve haver uma solução real. Eu só tinha 4 caminhos em um arquivo para lidar (eu já vi isso antes, mas a proporção da escala não foi tão ruim e eu não tive tempo de me preocupar com isso).

Foi o que eu fiz:

  • Anote os IDs dos objetos dos caminhos que eu queria editar
  • abra o .svg no jEdit
  • Encontre cada caminho por sua vez
  • trabalhe no atributo d
  • substituir "" por "\ n"
  • copie para libreoffice calc
  • Multiplique a segunda coluna, exceto as duas primeiras linhas (apenas a segunda das quais era numérica) e a última linha por 20 (o meu fator de escala)
  • voltar para o jEdit
  • substitua "\ t" por "," (exceto após o "m", quando acabou de ser excluído
  • substitua "\ n" por ""
  • cole o caminho original
por 15.01.2014 / 17:19

Tags