En calidad de Afiliado de Amazon, obtengo ingresos por las compras adscritas que cumplen los requisitos aplicables
Página 1 de 2 12 ÚltimoÚltimo
Resultados 1 al 10 de 12

Tema: Notas al pie

  1. #1
    Jovencit@ en el foro Avatar de javitonino
    Fecha de ingreso
    06 ago, 08
    Mensajes
    6

    Predeterminado Notas al pie

    Después de encontrarme con unos pocos libros con notas al pie que me apetecía leer, me puse a buscar una solución al problema de que no se muestren en los lectores (por lo menos yo no encuntro manera en un hanlin). Así que me hice un programita en python que coge todas las notas al pie, y las pone donde iría la marca en el texto principal, formateadas en cursiva y entre corchetes.

    Ahora mismo es una guarrería (hay que tocar código para ajustar el programa a cada libro a convertir) pero si a alguien el interesa podría hacer que fuera usable. La entrada y la salida sería odt (OpenOffice), pero es relativamente fácil convertir a/desde rtf o doc (incluso desde pdf, a partir de la versión 3.0 de openoffice (aún en beta)).

    Pues eso, si a alguien le interesa, que lo comente.

  2. #2
    Veteran@ en el foro Avatar de Pendergast
    Fecha de ingreso
    15 jun, 08
    Mensajes
    642

    Predeterminado

    Yo ya me había resignado a no leer los pies de página. Si haces un programa que haga lo que has dicho, me parece una idea genial y cuenta con mi linux mint si necesitas pruebas.

    saludos

  3. #3
    Veteran@ en el foro Avatar de surquizu
    Fecha de ingreso
    05 jun, 08
    Ubicación
    Barcelona
    Mensajes
    4,234

    Predeterminado

    Yo estoy leyendo un libro en lfr (sony reader) con pies de página. Aparecen con un * resaltado. Es un hiperenlace que al darle al enter del lector te envía directamente a l´última página donde estan todos los pies de pagina agrupados. De nuevo con enter vuelves al texto que leias.

    Este libro creo que lo hice yo mismo con el bookdesigner sin tener en cuenta nada especial, por lo que se hicieron los pies de pagina de forma automatica.

  4. #4
    Jovencit@ en el foro Avatar de javitonino
    Fecha de ingreso
    06 ago, 08
    Mensajes
    6

    Predeterminado

    Bueno, pues aquí va. Se necesita python y pyxml que se pueden encontrar en los repositorios de tu distribución o:
    - python: http://www.python.org/download/
    - pyxml: http://sourceforge.net/project/showf...?group_id=6473

    La verdad es que es bastante lento (15s una novela normalita) para lo que hace debido a las librerías de xml que utilizo, pero bueno, ya lo arreglaré si me aburro.

    Para usarlo, en una consola escribir ."/footnote.py FICHERO.odt". La ejecución queda tal que así:
    Código:
    $ ./footnote.py FICHERO.odt
    Abriendo fichero ODT... OK
    Leyendo fichero XML... OK
    Transformando fichero XML... OK (19 notas al pie convertidas)
    Escribiendo fichero XML... OK
    Grabando fichero ODT... OK
    El código lo pongo aquí, ya que no me deja poner adjuntos. Tan sólo hay que copypastear y guardar con extensión py.

    Código:
    #!/usr/bin/python
    import sys
    import zipfile
    from xml.dom.ext.reader.Sax2 import Reader
    from xml.dom.ext import Print
    from StringIO import StringIO
    import re
    if (len(sys.argv) != 2):
    	print "Este programa acepta un argumento: fichero .odt a abrir"
    	exit()
    
    try:
    	print "Abriendo fichero ODT...",
    	sys.stdout.flush()
    	zip = zipfile.ZipFile(sys.argv[1], "a")
    	data = zip.read("content.xml")
    	print "OK"
    except:
    	print
    	print "Error al abrir el fichero"
    	exit()
    	
    print "Leyendo fichero XML...",
    sys.stdout.flush()
    doc = Reader().fromString(data)
    print "OK"
    
    print "Transformando fichero XML...",
    sys.stdout.flush()
    i = 0
    for n in doc.getElementsByTagName("text:note"):
    	if n.getAttributeNS("urn:oasis:names:tc:opendocument:xmlns:text:1.0","note-class") == "footnote":
    		i += 1
    		nota = StringIO()
    		nodoCuerpo = n.getElementsByTagName("text:note-body")[0]
    		nodoP = nodoCuerpo.getElementsByTagName("text:p")[0]
    		
    		nuevo = doc.createElement("text:span")
    		nuevo.appendChild(doc.createTextNode("["))
    		
    		for s in nodoP.childNodes:
    			nuevo.appendChild(s.cloneNode(nuevo))
    			
    		nuevo.appendChild(doc.createTextNode("]"))
    		
    		n._get_parentNode().replaceChild(nuevo,n)
    		
    
    print "OK (" + str(i) + " notas al pie convertidas)"
    
    print "Escribiendo fichero XML...",
    sys.stdout.flush()
    sdata = StringIO()
    Print(doc, stream=sdata)
    print "OK"
    
    print "Grabando fichero ODT...",
    sys.stdout.flush()
    zip.writestr("content.xml", sdata.getvalue())
    zip.close()
    print "OK"
    A ver si alguien lo prueba y me dice si le funciona.

    Edit: Yo no he conseguido hacer lo que comenta surquizu en el Hanlin. En ningún formato de los que he probado me ha salido nada. En algún libro si me ha salido el texto de la nota al final de la página A4 (unas 3 páginas más adelante en el lector), pero sólo en los que no viene bien hecho la nota al pie (está puesta con un * a mano, en vez de con la función de notas al pie del procesador de textos).
    Si alguien consiguiera hacerlo de la otra manera sería bastante mejor, pero de momento la chapuza de programa sirve.
    Odio los avatares...

  5. #5
    Veteran@ en el foro Avatar de Pendergast
    Fecha de ingreso
    15 jun, 08
    Mensajes
    642

    Predeterminado

    Hola, he creado el archivo .py y lo tengo que ejecutar con python, de este modo:
    "python foofnote.py libro.odt" con sudo y sin sudo

    y me sale esto:
    -----------------------------------
    Traceback (most recent call last):
    File "footnote.py", line 4, in <module>
    from xml.dom.ext.reader.Sax2 import Reader
    ImportError: No module named ext.reader.Sax2
    -----------------------------------

    No tengo instalado el reader aquí, lo tengo en otro ordenador con windows. Aquí tengo linux. ¿es por eso?

    Saludos, y ánimo por el buen trabajo.

  6. #6
    Jovencit@ en el foro Avatar de javitonino
    Fecha de ingreso
    06 ago, 08
    Mensajes
    6

    Predeterminado

    Cita Iniciado por Pendergast
    Hola, he creado el archivo .py y lo tengo que ejecutar con python, de este modo:
    "python foofnote.py libro.odt" con sudo y sin sudo
    No hace falta el sudo para nada, aunque tampoco hace ningún daño.

    Cita Iniciado por Pendergast
    y me sale esto:
    -----------------------------------
    Traceback (most recent call last):
    File "footnote.py", line 4, in <module>
    from xml.dom.ext.reader.Sax2 import Reader
    ImportError: No module named ext.reader.Sax2
    -----------------------------------
    Eso es porque te falta un módulo, en concreto pyxml. Seguro que está en los repositorios, prueba por pyxml o python-xml. Si no lo encuentras, siempre puedes probar a instalar inkscape (un editor svg), que lo tiene como dependencia.

    Cita Iniciado por Pendergast
    No tengo instalado el reader aquí, lo tengo en otro ordenador con windows. Aquí tengo linux. ¿es por eso?
    El script lo hice y probé en linux. Debería funcionar en Windows también, pero no tengo dónde probarlo.

    Cita Iniciado por Pendergast
    Saludos, y ánimo por el buen trabajo.
    Gracias
    Odio los avatares...

  7. #7
    Veteran@ en el foro Avatar de Pendergast
    Fecha de ingreso
    15 jun, 08
    Mensajes
    642

    Predeterminado

    Pues efectivamente, no tenía instalado el python-xml. Lo he instalado junto con el inkscape por si acaso, y me da exactamente el mismo error.

    Siento no ser de más ayuda, soy novato en linux

    saludos

  8. #8
    Jovencit@ en el foro Avatar de javitonino
    Fecha de ingreso
    06 ago, 08
    Mensajes
    6

    Predeterminado

    Edit, Antes de nada aseguraté de que es el mismo error (la parte de xml.dom.ext.reader.Sax2)

    ¿Puedes probar a instalar el paquete python-4suite y python-4suite-xml (o similares)? Gracias

    Edit, Si no funciona y tienes tiempo puedes intentar la instalación manual del python-xml (que es el paquete que hace falta para el error del Sax2, en teoría ninguno más):
    1- Bajar http://sourceforge.net/project/downl...L-0.8.4.tar.gz
    2- Descomprimir
    3- Ejecutar "./setup.py install"
    Odio los avatares...

  9. #9
    Veteran@ en el foro Avatar de Pendergast
    Fecha de ingreso
    15 jun, 08
    Mensajes
    642

    Predeterminado

    Sip, el error era el mismo.
    Solucionado gracias a tus indicaciones. Me instalé el python-4suite junto con su amigo y seguía fallando.
    Entonces instalé el python-xml manualmente y ha funcionado.

    Vale, el programa funciona.
    Lo malo es que no me ha leído ningún pie de página. Mira:
    ----------------------------------
    Abriendo fichero ODT... OK
    Leyendo fichero XML... OK
    Transformando fichero XML... OK (0 notas al pie convertidas)
    Escribiendo fichero XML... OK
    Grabando fichero ODT... OK
    ---------------------------------

    Y las tiene, te lo aseguro, si quieres te paso el fichero, por si quieres comprobarlo tú. Mejor, te indico dónde conseguirlo. Está aquí
    http://vagos.wamba.com/showthread.ph...ghlight=brooks

    El primero, que está en doc. Lo he pasado a odt y entonces le he aplicado tu programa, pero me dice que no hay pies de página. En la página 4 tienes el primero, por si quieres comprobarlo.

    Saludos

  10. #10
    Jovencit@ en el foro Avatar de javitonino
    Fecha de ingreso
    06 ago, 08
    Mensajes
    6

    Predeterminado

    Vale, es que son notas al final del documento, no al final de página (que son los que tenía yo para probar). Supongo que los guardará de forma ligeramente diferente, y que se podrá arreglar fácilmente. Esta tarde me pongo con ello.
    Odio los avatares...

Temas similares

  1. entrar notas
    Por José Ramón en el foro Onyx Boox
    Respuestas: 1
    Último mensaje: 30/03/2010, 09:40
  2. Papyre 5.1 y notas al pie.
    Por guachilipu en el foro Formatos de e-books
    Respuestas: 8
    Último mensaje: 22/01/2010, 13:43
  3. Notas a pie de página?
    Por blanca_luz en el foro Sony Reader
    Respuestas: 4
    Último mensaje: 18/11/2009, 11:27
  4. Notas en el iLiad....
    Por pacharico en el foro iLiad
    Respuestas: 2
    Último mensaje: 25/09/2009, 11:36
  5. Notas en el SONY PRS 700
    Por mril en el foro Sony Reader
    Respuestas: 4
    Último mensaje: 13/07/2009, 15:05

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •