SVG et DPI, absolu unités et les unités utilisatrices: Inkscape vs Firefox vs ImageMagick

J'essaie de générer automatiquement un fichier SVG destiné à être imprimé sur une certaine taille (A4). Je souhaite utiliser un chemin d'accès, ce qui permet seulement d'utilisateur "unités", pas " absolu unités.

Il me semble qu'il est impossible de "publier" un fichier SVG a unités absolues (par exemple un document de la taille) et un chemin d'accès n'importe où, parce que je ne peux pas le faire fonctionner correctement à travers les téléspectateurs.

Est-il un moyen d'obtenir une certaine cohérence dans le rendu, comme la spécification d'un "défaut de DPI'?

Ou pour le dire autrement: puis-je obtenir mon exemple ci-dessous afin de rendre le même dans tous les téléspectateurs, sans abandonner les unités absolues à tous?

Connexes: Est-il un moyen de forcer l'une des applications ci-dessous pour rendre l'image de la même manière que celui des autres? (E. g. J'ai essayé le -density option de "convertir", mais je ne pouvais pas la sortie pour correspondre à d'Inkscape ou Firefox' sortie.)


Exemple:

J'ai créé un fichier SVG, avec trois carrés noirs (rect) avec une diagonale rouge (chemin de):

  • Gauche: la place et la diagonale de l'utilisateur unités
  • Milieu: la place et la diagonale en pouces (me semblait le choix le plus logique, mais n'est pas autorisé)
  • Droite: carré en mm, diagonale de l'utilisateur unités

Qui rend différemment dans les différents spectateurs:

  • Inkscape: 90 DPI, tous les carrés de la même taille, diagonale rouge correspond
  • Firefox: 96 DPI?, dernières places pour les grands (ou en diagonale pour faire court)
  • Convertir: 72 DPI, dernier carrés à de petites (ou diagonale de long)

Code:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   version="1.1"
   width="200mm"
   height="100mm"
   >
  <g transform="translate(50,50)">
    <rect
       width="100."
       height="100."
       x="10"
       y="10" />
    <path style="stroke: #ff0000" d="M 10 10 L 110 110" />
  </g>
  <g transform="translate(200,50)">
    <rect
       width="1.111in"
       height="1.111in"
       x="0.1111in"
       y="0.1111in" />
    <path style="stroke: #ff0000" d="M 0.1111in 0.1111in L 1.111in 1.111in" />
  </g>
  <g transform="translate(350,50)">
    <rect
       width="1.111in"
       height="1.111in"
       x="0.1111in"
       y="0.1111in" />
    <path style="stroke: #ff0000" d="M 10 10 L 110 110" />
  </g>
</svg>

Inkscape (par défaut 'viewer'):

SVG et DPI, absolu unités et les unités utilisatrices: Inkscape vs Firefox vs ImageMagick

Firefox (à noter que la ligne rouge n'atteint pas le coin inférieur droit. J'ai fait une capture d'écran et recadrée sorte de arbitraire):

SVG et DPI, absolu unités et les unités utilisatrices: Inkscape vs Firefox vs ImageMagick

ImageMagick (convertir, aucune option n'a d'ailleurs donné les noms de fichiers):

SVG et DPI, absolu unités et les unités utilisatrices: Inkscape vs Firefox vs ImageMagick

  • J'ai trouvé stackoverflow.com/questions/1132269/... utile pour expliquer le problème.
  • Inkscape 0.92: La résolution par défaut a été modifié à partir de 90dpi à 96 ppp, pour correspondre à la CSS standard.
InformationsquelleAutor BlackShift | 2009-08-28