FANDOM


Esta página es para ir compartiendo las distintas fuentes de información para poder empezar la investigación sobre como desarrollar. La idea es escribir el link más una pequeña descripción.

FrameworksEditar

StrutsEditar

wikipedia

Struts for Newbies

Struts vs SpringEditar

Either framework is a good choice. I suggest reviewing the exact needs of your application before choosing a Framework.1

VisualizaciónEditar

FlipEditar

Flipping Effects using jQuery

Notas:

Turn.js tiene licencia comercial pagada. 99->499 dolares (descartado hasta nuevo aviso)

Boocklet tiene licencia MIT por lo que no hay problema.

Moleskine utiliza boocklet.

ZoomEditar

Entre los Flipping Books mostrados en los links puestos más arriba, no se encontró alguno que tuviera por defecto una función de zoom incorporada, por lo cual es necesario continuar buscando.

Una posible vía de solución está en manejarlo desde el canvas en HTML5: ver, por ejemplo, este link

Post/ItEditar

Puede modelarse como un objeto cuyos atributos son {usuario, causa, pagina, (x,y)en canvas, color/imagen, contenido}

Post it, tambien conocidos como sticky notes, ya implementados:

usando html 5 y css 3

Plugin para jQuery


Otra idea usando tabs de jquery se ve mas elegante ^_^.

Tiene la opcion "collapse content" y muchas otras funcionalidades.

BúsquedaEditar

Para la extracción y búsqueda de metadatos existen librerías ampliamente utilizadas como Apache Lucene, por lo cual no necesitamos desarrollar mucho de nuestra parte en este sentido.

MultiBrowserEditar

Soporte de browserEditar

Según http://caniuse.com/#cats=HTML5 , IE8 no soporta canvas, que es un elemento básico para renderear pdf's de manera que se vean igual que el original. Esto puede ser un problema y tenemos que plantearselo a el cliente.

Eficiencia (algoritmos)Editar

Manejo de DocumentosEditar

Estructura de un PDFEditar

introduction to pdf

pdf.js - GitHubSi se desea descargar la libreria, se tiene que compilar pdf.js con Node.js y generar los archivos .js que se necesitan.

Free pdf Libraries

http://itextpdf.com/

Conversión a PDFEditar

Lista de software y librerias para manejo de pdf

The sample code below convert a MS Word file to a PDF file in a Visual Basic application:

Private Sub Print_PDF() 
 
     Dim lRetVal As Long 
     Dim hKey As Long 
     Dim sValue As String 
     lRetVal = RegCreateKeyEx(HKEY_CURRENT_USER, "Software\Custom PDF Printer",  _ 
                    0&, vbNullString, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, _ 
                    0&, hKey, lRetVal) 
     sValue = "C:\Sample.pdf" 
     RegSetValueExString hKey, "OutputFile", 0&, REG_SZ, sValue, Len(sValue) 
     sValue = "1" 
     RegSetValueExString hKey, "BypassSaveAs", 0&, REG_SZ, sValue, Len(sValue) 

     Dim worddoc As Word.Document 
     Set worddoc = wordapp.Documents.Open("C:\Sample.doc") 
     wordapp.ActivePrinter = "Custom PDF Printer" 
     wordapp.PrintOut 
     worddoc.Close 

     sValue = "0" 
     RegSetValueExString hKey, "BypassSaveAs", 0&, REG_SZ, sValue, Len(sValue)           
     RegCloseKey (hKey) 
 
End Sub

LibreofficeEditar

Se puede utilizar libreoffice para generar un PDF a partir de cualquier documento que sea capaz de leer. Para utilizarlo en modo servidor se hace de la siguiente manera:

$ libreoffice --headless --invisible --convert-to pdf archivo.doc

Hay wrappers hechos en muchos lenguajes que utilizan la API de más bajo nivel de eso para hacerlo más cool. Hay que revisarlos, por ejemplo a "unoconv".

Merge-PDFEditar

pdf-merger - GitHub (Ruby)

pdf_merge - GitHub (Python) <- solamente OS X :(

PDFBox - Problemas encontrados: 1) El merge tarda demasiado tiempo. 2) Los archivos resultantes del merge son demasiado grandes, con un tamaño superior al doble de la suma de los documentos mergeados; se puede realizar la compresión final del PDF con otras herramientas externas. Una ventaja: PDFBox se integra fácilmente con Lucene para la extracción y búsqueda de metadatos.

iText - Problema: Licencia de uso comercial debe ser comprada. :( Pero se cita como la mejor alternativa a PDFBox, y se afirma que tiene un funcionamiento más veloz.

PDF Clown - No alcanzamos a correr ejemplos para probar.

BD Orientada a Objetos (Oracle)Editar

http://www.oracle.com/pls/db112/homepage

Investigamos sobre la BD Oracle (11g). La documentación está en el link anterior.

Básicamente rescatamos que es una BD relacional SQL, como las que conocemos (mySql, Postgresql), con un lenguaje de script propio para correr procesos sobre la BD. Con usuarios y permisos típicos y existen variados programas para administrarla, incluso GUIs o directamente de la linea de comandos (SQL*Plus).

En resumen, nada nuevo.

BD Orientada a DocumentosEditar

1. Intro (wikipedia)

Una base de datos documental está constituida por un conjunto de programas que almacenan, recuperan y gestionan datos de documentos o datos de algún modo estructurados.

Estas bases de datos están diseñadas alrededor de una noción abstracta de "Documento". Los documentos encapsulan y codifican datos o información siguiendo algún formato estándar. Entre las codificaciones usadas en la actualidad se encuentran XML, YAML, JSON y BSON, así como formatos binarios como PDF y documentos Microsoft Office (MS Word, Excel y demás).

Otra de las características que definen una base de datos orientada a documentos es que  ofrece un API o un lenguaje de interrogación para recuperar documentos según su contenido, que varía significativamente entre distintas implementaciones.


2. MongoDB MongoDB guarda estructuras de datos en documentos tipo JSON con un esquema dinámico (MongoDB llama ese formato BSON). Esta base de datos es altamente utilizada en las industrias,1 y MTV Network,2 Craiglist3 y Foursquare4 son algunas de las empresas que utilizan esta base de datos.

MongoDB puede ser utilizado con un sistema de archivos, tomando la ventaja de la capacidad que tiene MongoDB para el balanceo de carga y la replicación de datos utilizando múltiples servidores para el almacenamiento de archivos. Esta función (que es llamada GridFS11 ) está incluida en los drivers de MongoDB y disponible para los lenguajes de programación que soporta MongoDB. Esta base de datos expone funciones para la manipulación de archivos y contenido a los desarrolladores. En un sistema con múltiple servidores, los archivos pueden ser distribuidos y copiados entre los mismos varias veces y de una forma transparente, de esta forma se crea un sistema eficiente que maneja fallos y balanceo de carga.

2.1 GridFS: InvestigarEditar

Avance de la Investigación:

Al parecer, MongoDB presenta funcionalidades que nos servirían mucho. Con GridFS permitiría guardar archivos en una BD y después poder rescatarlos, buscar dentro de ellos y manejarlos más fácilmente. Además tiene soporte para variados lenguajes, entre los que están todos los que hemos hablado alguna vez (Java, Javascript, Ruby, PHP, Python, Scala).

Framework en Java para MongoDB: http://www.springsource.org/spring-data/mongodb

Ejemplo de como grabar un archivo en MongoDB usando Java: http://www.mkyong.com/mongodb/java-mongodb-save-image-example/

PDF2JSON: http://code.google.com/p/pdf2json/

¡Interferencia de bloqueo de anuncios detectada!


Wikia es un sitio libre de uso que hace dinero de la publicidad. Contamos con una experiencia modificada para los visitantes que utilizan el bloqueo de anuncios

Wikia no es accesible si se han hecho aún más modificaciones. Si se quita el bloqueador de anuncios personalizado, la página cargará como se esperaba.

También en FANDOM

Wiki al azar