Foros del Web » Creando para Internet » HTML »

formatos html

Estas en el tema de formatos html en el foro de HTML en Foros del Web. Hola, Estoy desarrollando un script para leer formatos html con php. Necesito leer la información de los formatos de cada párrafo. El tipo de letra, ...
  #1 (permalink)  
Antiguo 12/12/2009, 14:40
bombadil2100
Invitado
 
Mensajes: n/a
Puntos:
De acuerdo formatos html

Hola,

Estoy desarrollando un script para leer formatos html con php. Necesito leer la información de los formatos de cada párrafo. El tipo de letra, el tamaño, el espaciado entre párrafos, la alineación... El caso es que aunque lo tengo avanzado me estoy eternizando en realizarlo.

Sabríais si existe alguna librería o algún código ya hecho del que echar mano? o quizás alguno sabe de alguna manera más fácil de hacerlo que yo no termino de ver. Gracias
  #2 (permalink)  
Antiguo 12/12/2009, 15:12
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: formatos html

si quieres hacerlo en php, creo que debistes haberlo ubicado en dicho foro. sin embargo, no creo que existe tal posibilidad desde php porque este no es un navegador, es solo un interprete que manipula contenidos. por otro lado, el tipo de datos que intentas recuperar es bien variable dado que cada navegador renderiza (accion de muestreo) mas o menos a su forma. por ejemplo, X navegador puede mostrar un H1 en un tamaño diferente a un navegador Y. puede que existe alguna extension para renderizar contenido desde php el cual pienso que seria bueno para algunos ejemplos como previsualizacion de documentos, pero insisto los datos serian inexacto debido a los documentos finalmente serian visto desde un navegador.

para obtener los datos lo puedes lograr desde javascript gracia al DOM, pero te recuerdo que cada navegador devuelve un dato diferente segun el interprete y configuraciones del navegador. el siguiente ejemplo funciona en practicamente cualquier navegador con excepcion de iexplorer.
Código:
<p id="paragraph">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec tellus justo, bibendum sed hendrerit eget, auctor eget ligula. Vivamus rutrum imperdiet sapien eget lacinia.</p>
<script>
onload = function(){
var elem = document.getElementById("paragraph");
with(getComputedStyle(elem, null)){
alert(''.concat(
"width: ", width,
"\nheight: ", height,
"\nline-height: ", lineHeight,
"\nfont-size: ", fontSize,
"\nfont-family: ", fontFamily,
"\nmargin: ", marginTop, marginRight, marginBottom, marginLeft
));
}
}
</script>
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 12/12/2009, 15:37
bombadil2100
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: formatos html

Hola zerokilled:

Antes que nada, muchas gracias por tu ayuda La verdad es que lo poco que sé de programación web es en php, donde me voy apañando para mis necesidades.

La solución que me das es genial no sabía que se podía hacer vía javascript con DOM, aunque la verdad tendría que mirar algo de javascript pq no tengo ni idea.
Si funcionase sería genial, pero por lo poco que he visto en la web de DOM parece que el html debe ser bastante estructurado. He probado con un párrafo como este pero no he conseguido obtenter resultados:

Código:
<p id="paragraph" class=MsoNormal align=center style='margin-top:6.0pt;margin-right:14.2pt;
margin-bottom:12.0pt;margin-left:1.0cm;text-align:center;text-indent:35.45pt;
line-height:13.0pt;mso-line-height-rule:exactly;mso-pagination:widow-orphan lines-together no-line-numbers;
mso-hyphenate:none'><b style='mso-bidi-font-weight:normal'><span
style='font-size:12pt;font-family:"Lucida Sans"'>Los fines del Museo
Geominero<a style='mso-endnote-id:edn1' href="#_edn1" name="_ednref1" title=""><span
class=MsoEndnoteReference><span style='mso-special-character:footnote'><![if !supportFootnotes]><span
class=MsoEndnoteReference><b style='mso-bidi-font-weight:normal'><span
style='font-size:12pt;font-family:"Lucida Sans";mso-fareast-font-family:"Times New Roman";
mso-ansi-language:ES;mso-fareast-language:ES;mso-bidi-language:AR-SA'>[1]</span></b></span><![endif]></span></span></a>
son conservar, investigar y difundir la riqueza y diversidad del patrimonio
geológico.<o:p></o:p></span></b></p>

<script>
onload = function(){
var elem = document.getElementById("paragraph");
with(getComputedStyle(elem, null)){
alert(''.concat(
"width: ", width,
"\nheight: ", height,
"\nline-height: ", lineHeight,
"\nfont-size: ", fontSize,
"\nfont-family: ", fontFamily,
"\nmargin: ", marginTop, marginRight, marginBottom, marginLeft
));
}
}
</script>
Verás el tema es que tengo un documento maquetado en Word, y ese es el formato html de uno de sus párrafos. Lo que necesito es obtener en variables la fuente, tamaño de fuente, espaciado... de cada párrafo, para compararlas con otro documento html maquetado por los alumnos y así puntuar automáticamente el trabajo de cada uno.

La solución que me das sería mucho mejor que las más de 2000 líneas de programación que llevo en php , pero no sé si en un código tan desestructurado funcionará.
¿qué opinas? De nuevo gracias infinitas por tu ayuda
  #4 (permalink)  
Antiguo 12/12/2009, 17:44
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: formatos html

comprendo tu situacion pero la verdad no se me ocurren muchas ideas. lo que opino es, ¿por qué transferir de tipo de documentos, en este caso de word a HTML? entiendo que quieres hacer una evaluacion automatica, en este caso a traves de php. no conozco las posibilidades que hay pero entre las muy pocas que conozco:
  • a traves de programacion
    pienso que las posibilidades estan entre lenguaje interno o de terceros. en lenguaje interno, si bien recuerdo, office utiliza un lenguaje de scripting creo que visual basic script (vbs) o incluso JScript (la version javascript de microsoft). las posibilidades que se pueden hacer en ellas no las conozco pero supongo que son bastante extensa. hasta cierto punto es bien diferente esta programacion con la que se usa para desarrollo web.

    en lenguaje de terceros, tienes las extensiones de php para trabajar con documentos de office. quizas la implementacion de la extension te permita obtener los detalles que necesitas. en cualquiera de los casos no tienes que convertir el documento a HTML.
  • utilidades de comparacion de documentos
    existen herramientas de terceros para llevar a cabo la comparacion de un documento con otro. no es la unica opcion, pues tambien word incluye una herramienta que te detalla las diferencias entre dos documentos. en esta opcion no creo que puedas hacer una evaluacion automatica pero quizas si de una forma mas comoda. por ejemplo, en la version Office Teacher & Student 2003, en el menu Tool tienes la opcion Compare and Merge Documents. eliges el documento a comparar y obtendras los detalles de las diferencia. tampoco conozco esta herramienta porque recien me doy por enterado.
  • conversion de documento
    honestamente pienso que esta es la peor opcion, pero cuando no hay más pues ni modo. el problema es lo bien complicado que es obtener los datos. el ejemplo que te mostre funciona en una estructura bien simple. sin embargo, el problema de la conversion es que word no es una herramienta para edicion de documentos web, y por consecuente introduce contenido basura en el codigo fuente. intentar implementar el ejemplo en un documento convertido puede ser un reto debido a ese codigo basura, y sobre todo incompatible con los navegadores. en lo personal, no me atreveria realizar un sistema de evaluacion en esta opcion.

saca tus conclusiones de cual anternativa te es conveniente segun tus necesidades y capacidades. te recuerdo que pueden haber mas alternativas pero estas son las que se me ocurren.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 13/12/2009, 04:44
bombadil2100
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: formatos html

La segunda opción ya la había probado pero sigue quedando demasiado manual la corrección puesto que tengo que ir viendo donde marca el programa cada fallo, valorar cada fallo, sumarlos y obtener una puntuación global, y tampoco me permite almacenar en variables los formatos del documento y lo necesito para obtener una hoja de instrucciones para la elaboración del mismo. Algo del tipo: Para el párrafo 1: tamaño de fuente 15 Fuente: Verdana Borde: superior 1/2 sólido...

Me quedo con la primera o tercera opción. Con la primera tendría que explotar la parte de vb de Office y eso ya me queda algo grande. Además no creo que con vb haya forma alguna de sacar los formatos de texto cuando el documento ya está maquetado.

Así que me quedo con la tercera opción, seguiré trabajando con el editor de secuencias de comandos de Word y con las funciones de texto de php. A ver si consigo algo, pq el script con el que estoy trabajando ha alcanzado unas dimensiones que ya me tiran un poco para atrás xDD

Le echaré un vistazo más detenidamente a DOM, es posible que trabajando sobre ello se pueda sacar más de lo que parece.

Gracias amigo!

Última edición por bombadil2100; 13/12/2009 a las 04:50
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:30.