martes, 29 de abril de 2014

Instalar Textext en inskscape y no morir en el intento (Windows)

Solución Actualizada: Si tienes instalado Inkscape 1.0 la extensión TexText se puede instalar muy fácilmente. Durante un tiempo hubo grandes problemas de compatibilidad con las versiones de la 0.48 a la 0.92, incluso en la versión 0.48 era muy tedioso conseguir una instalación correcta. Pero el proyecto TexText ha sido recuperado por otros desarrolladores y funciona perfectamente en Inkscape 1.0. Así, solo debes seguir los pasos indicados aquí:  https://textext.github.io/textext/install/windows.html

Mantengo la solución original por si alguien se ve obligado a utilizar TexText con una versión anterior (la última en la que conseguí que funcionara es la 0.48):

Esta entrada la hago a modo de chuleta para futuras instalaciones pesonales de textext en inkscape. Esta vez he tenido varios problemas y ha sido un "dolor" instalarlo y hacerlo funcionar... Espero queotras personas no pierdan el mismo tiempo que yo... Describiré los pasos que a mí me han funcionado, no doy demasiados detalles porque esto se alargaría mucho:

Se supone que ya tenemos Miktex en nuestro ordenador

  1. Instalar inkscape (versión 0.48)
  2. instalar http://www.graphicsmagick.org/
  3. Instalar Pstoedit
  4. Instalar Ghostscript
  5. Verificar que podemos ejecutar pstoedit.exe desde la línea de comandos (cmd.exe). Sino, añadir el directorio a las variables de entorno de Windows:
    • Panel de control -> Sistema y seguridad -> Sistema -> Opciones avanzadas -> Click en variables de entorno -> buscamos la variable PATH y añadimos el directorio de pstoedit separado del último directorio que haya en la lista con un punto y coma (;)
  6. Instalar textext https://pav.iki.fi/software/textext/
  7. Instalar python, una versión 2.X (usé la 2.7). No usar versión 3.X https://www.python.org/
  8. Instalar lxml. Si hemos instalado python 64bits habrá que usar la versión 64 de lxml, sino la 32 (a mí me funcionó con la 32) http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml
  9. Copiamos el contenido de la instalación de python (que ha sido modificada por la instalación de lxml) en el directorio python dentro de inkscape (que habremos borrado 100% previamente).
  10. Instalar un editor de python por ejemplo http://www.gedit.org
  11. Localizar textext.py en el directorio Inkscape-0.48\share\extensions y abrirlo con el editor de pyton
  12. Modificarlo así:
Buscar (el número es la línea, así podemos buscar CTRL+l para ir a ella no hay que copiarlos):


54 import inkex

55 import os, sys, tempfile, traceback, glob, re, md5, copy

56 from lxml import etree
y reemplazarlo por

import inkex
import os, sys, tempfile, traceback, glob, re, copy
import hashlib
from lxml import etree

  • Buscar luego esto:

868 def __init__(self, document):
869    PdfConverterBase.__init__(self, document)
870 self.hash = None
871 def convert(self, *a, **kw):
872 # compute hash for generating unique ids for sub-elements
873 self.hash = md5.new('%s%s' % (a, kw)).hexdigest()[:8]
874 return PdfConverterBase.convert(self, *a, **kw)
875 def pdf_to_svg(self):
876 exec_command(['pdf2svg', self.tmp('pdf'), self.tmp('svg'), '1'])

  • y reemplazarlo por:

   def __init__(self, document):
       PdfConverterBase.__init__(self, document)
       self.hash = None
       USE_GTK = False

   def convert(self, *a, **kw):
       # compute hash for generating unique ids for sub-elements
       m = hashlib.md5()
       m.update('%s%s' % (a, kw))
       self.hash = m.hexdigest()[:8]
       return PdfConverterBase.convert(self, *a, **kw)
   def pdf_to_svg(self):
       exec_command(['pdf2svg', self.tmp('pdf'), self.tmp('svg'), '1'])


Por favor, no uses adblockers en esta página, se mantiene gracias a ellos. Los anuncios no son invasivos y quizá veas algo que te interese. Si encontraste una solución a tu problema y ahorraste tiempo, ya me doy por satisfecho. También podrías invitarme a un café con una pequeña donación en Paypal. ¡Gracias!