Portal    Foro    Buscar    FAQ    Registrarse    Conectarse

Dia O Inkscape Como Editor De Plantillas?

Dia O Inkscape Como Editor De Plantillas?
Artículo
Responder citando    Descargar mensaje  
Mensaje Dia O Inkscape Como Editor De Plantillas? 
 
Hola debido a otro hilo que se discutía el temam se me ocurro hacer un experimento para sopesar el uso de dia o inkscape como editor de plantillas.
Dentro del método plantilla-xml > PDF
Como saben Dia trabaja con archivos dia que es xml, y puede exportar .svg (que tambien es xml) y usa inkscape.

Con dia
Partiendo de un archivo .dia de 22 KiB para obtener un .pdf se hace en un solo paso mediante CLI
y el pdf obtenido es de 31 KiB
dia seeds.dia -e seeds.pdf


Con inkscape usando convert
Partiendo de un archivo .svg de 4.5 KiB para obtener un .pdf se hace en dos pasos mediante CLI
y el pdf obtenido es de 330,1 KiB (el png es de 258,8 KiB)
inkscape seeds.svg --export-png=seeds.png
convert seeds.png seeds-convert.pdf


Con inkscape sin usar otras herramientas
Partiendo de un archivo .svg de 4.5 KiB para obtener un .pdf se hace en un solo paso mediante CLI
y el pdf obtenido es de 24 KiB
inkscape seeds.svg --export-pdf=seeds.pdf


Luego como conclusion se obtiene que los archivos pdf generados con dia y con Inkscape directamente son casi iguales en tamaño, siendo Inkscape el que logra el pdf de menos "peso".

La opción que usa convert no la recomiendo ya que se obtienen archivos del orden de 10 veces mas tamaño innecesariamente.
Creo que el problema radica en que convert es un programa de pixeles y dia e Inkscape son programas vectoriales

Saludos.



 
tincho - Ver perfil del usuario Enviar mensaje privado  
tincho [ Sabado, 14 Octobre 2017, 23:27 ]
 


Dia O Inkscape Como Editor De Plantillas?
Comentarios
Responder citando    Descargar mensaje  
Mensaje Re: Dia O Inkscape Como Editor De Plantillas? 
 
Tincho:
Citar:
--export-pdf

+1

Citar:
Creo que el problema radica en que convert es un programa de pixeles y dia e Inkscape son programas vectoriales

Si,  seguro que es eso.



 
jsbsan - Ver perfil del usuario Enviar mensaje privado  
jsbsan [ Domingo, 15 Octobre 2017, 06:37 ]
Responder citando    Descargar mensaje  
Mensaje Re: Dia O Inkscape Como Editor De Plantillas? 
 
Otra ventaja que tiene el .svg que genera inkscape con respecto al .dia es que en el .svg el texto tiene un "id", un identificador.
Esto, si bien parece un dato sin importancia permitiría la edition del .svg con gb.xml y la ventaja que supone es que el documento se puede editar tantas veces se desee.
Para ponerlo mas claro, con el método plantilla > edición > guardado de archivo modificado, una vez que el archivo era modificado ya no se podía volver a modificar, había que generarlo desde cero.
La otra ventaja es que se podrían importar datos desde el .svg hacia nuestro programa/BBDD
Al ser el elemento TAG un valor constante al que se asocia texto tipografías colores etc. seria posible cambiar no solo el texto sino también el color, negrita, cursiva, subrayado etc.

Saludos.



 
tincho - Ver perfil del usuario Enviar mensaje privado  
tincho [ Domingo, 15 Octobre 2017, 20:21 ]
Responder citando    Descargar mensaje  
Mensaje Re: Dia O Inkscape Como Editor De Plantillas? 
 
He creado esta pequeña función que edita los .svg pero con el método del TAG no del texto.


Public Function EditXml(strPath As String) As Integer ''Edicion de un archivo xml.
  Dim document As New XmlDocument
  Dim element As New XmlElement
  Dim node As XmlNode
  Dim strSave As String
  Dim int As Integer
  Dim str As String
  Dim stx As New String[]

  strSave = File.Dir(strPath) &/ File.BaseName(strPath) & "-prod." & File.Ext(strPath)
  document.Open(strPath)

  For Each element In document.GetElementsByTagName("text", gb.IgnoreCase)
    For Each node In element.Attributes
      Select node.Name
        Case "id"
          'If node.Value = "dvariety"
            element.Value = "variedad"
            For Each node In element.Attributes
              Select node.Name
                Case "style"
                  stx = Split(node.Value, ";")
                  For int = 0 To stx.max
                    Select Split(stx[int], ":")[0]
                      Case "fill"
                        stx[int] = "fill:#FF0000"
                    End Select
                  Next
                  node.Value = stx.Join(";")
              End Select
            Next
          'Endif
      End Select
    Next
  Next
  document.Save(strSave)
  Return 1
End
 


Saludos.



 
tincho - Ver perfil del usuario Enviar mensaje privado  
tincho [ Domingo, 15 Octobre 2017, 23:25 ]
Responder citando    Descargar mensaje  
Mensaje Re: Dia O Inkscape Como Editor De Plantillas? 
 
tincho escribió: [Ver mensaje]
He creado esta pequeña función que edita los .svg pero con el método del TAG no del texto.


Public Function EditXml(strPath As String) As Integer ''Edicion de un archivo xml.
  Dim document As New XmlDocument
  Dim element As New XmlElement
  Dim node As XmlNode
  Dim strSave As String
  Dim int As Integer
  Dim str As String
  Dim stx As New String[]

  strSave = File.Dir(strPath) &/ File.BaseName(strPath) & "-prod." & File.Ext(strPath)
  document.Open(strPath)

  For Each element In document.GetElementsByTagName("text", gb.IgnoreCase)
    For Each node In element.Attributes
      Select node.Name
        Case "id"
          'If node.Value = "dvariety"
            element.Value = "variedad"
            For Each node In element.Attributes
              Select node.Name
                Case "style"
                  stx = Split(node.Value, ";")
                  For int = 0 To stx.max
                    Select Split(stx[int], ":")[0]
                      Case "fill"
                        stx[int] = "fill:#FF0000"
                    End Select
                  Next
                  node.Value = stx.Join(";")
              End Select
            Next
          'Endif
      End Select
    Next
  Next
  document.Save(strSave)
  Return 1
End
 


Saludos.


Tremendo lo que has montado, super útil, yo me guie con tu ejemplo si no recuerdo mal para montar mi programa con DIa, y efectivamente una de las diferencias a priori es que a la hora de maquetar DIA el texto es el que tienes que buscar y recorrer, por contra Inkscape tiene un identificador no visible que según para que casos (tipografías pequeñas o maquetación muy limitada) va genial porque no el contenido que puede ser un solo carácter a nivel visual.

Saludos.



 
calcena - Ver perfil del usuario Enviar mensaje privado  
calcena [ Lunes, 16 Octobre 2017, 14:26 ]
Mostrar mensajes anteriores:    
 
Publicar nuevo tema  Responder al tema  Página 1 de 1
 
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 



 

cron