2011-02-11 32 views
5

Necesito convertir un archivo html a doc. Estoy usando html2pdf para la conversión de PDF.Cómo convertir html a doc en php

¿Hay algún tipo de biblioteca para html2doc?

(PS debe estar libre/código abierto)

EDITAR

Después del comentario de Mark Eirich ..

Éstos son dos capturas de pantalla. El documento de Word no está alineado correctamente. Compruebe y-scroll en el documento de Word. WORD document, check y scroll..

html file, on browser..

cuerpo de la etiqueta es: -

<body style="margin-left:350px; margin-right:350px;"> 

Traté de ajustarlo pero ningún efecto ..

EDITAR 2

después de que Mark Eirich segundo comento que llegué a saber que la palabra está tomando cosas en píxeles, no yo n% de edad .. Estoy teniendo la última edición de fondo ... Cualquier ayuda ... por favor revisen las dos capturas de pantalla. La diferencia es la caja exterior. y eso y el documento generado html se ve extraño.

Original word file

html generated doc file

+0

Microsoft Word puede leer HTML sin ninguna conversión. Simplemente termine el nombre de archivo con .doc y listo. –

+0

@Mark Eirich no funciona de manera adecuada ... revise la parte de edición ... –

+0

@piemesons: Tristeza. No tengo mucha experiencia con Word.Sin embargo, intente esto (1) establecer un ancho en el cuerpo, (2) establecer los márgenes en pulgadas "en" o centímetros "cm", o (3) agregar un envoltorio adicional dentro del cuerpo y establecer el margen/ancho en él ; tal vez Word ignora la etiqueta del cuerpo. También podría intentar generar HTML en Word y luego verlo para ver qué hace Word para establecer los márgenes. –

Respuesta

1

el fin de convertir a Microsoft Word que necesita un servidor habilitado COM (que se ejecuta Windows y Office en él). Si tiene dicho servidor

$word = new COM("word.application") or die ("couldnt create an instance of word"); 

debería funcionar !. Lea http://php.net/manual/en/book.com.php para más detalles.

De lo contrario, su mejor oportunidad para html2doc es html2rtf, que se logra con una biblioteca como http://paggard.com/projects/rtf.generator/ o http://sourceforge.net/projects/phprtf/.

A continuación, después de crear el RTF que sirven al navegador con una cabecera doc

header("Content-type: application/vnd.ms-word"); 
header("Content-Disposition: attachment;Filename=document_name.doc"); 

Si el usuario tiene la palabra, entonces será abierta para manejar el archivo.

También guardando un rtf como documento está bien y la palabra se abrirá en la vista de diseño sin ninguna queja. También puede servir a HTML con el encabezado anterior, pero el problema es que la Palabra se abrirá en vista web y lo que es malo :)

+4

¡Él pidió una solución que sea gratuita/de código abierto! –

+0

¿Qué es "vista web" y por qué es malo? (No estoy muy familiarizado con Word.) –

+1

phprtf es de código abierto, tanto GPL como LGPL, y en realidad está bien organizado, es el paraíso comparado con las otras bibliotecas php html2rtf, bueno, aquellas que son html2rtf técnicamente solo de nombre. – asnyder

5

La respuesta de la OMI no sería, por las siguientes razones:

documentos de Microsoft Office son extremadamente complejas en la forma en que están diseñadas, no solo hay un archivo formateado con referencias a objetos como imágenes, sino que hay un sistema de archivos tipo od dentro de sí mismo para administrar los datos binarios de estos objetos.

Permítanme traer una cita de nuestro propio Joel:

Si ha iniciado la lectura de estos documentos con la esperanza de pasar un fin de semana a escribir algo de código spiffy que importa documentos de Word en su sistema de blog, o crea Hojas de cálculo formateadas en Excel con sus datos financieros personales, la complejidad y duración de la especificación probablemente lo curó de ese deseo bastante rápido. Un programador normal sería la conclusión de que los formatos de archivos binarios de oficina:

  • están deliberadamente ofuscado
  • son el producto de una mente Borg demente
  • fueron creados por increíblemente malos programadores
  • y son imposibles de leer o crea correctamente

podría estar equivocado en todos los cuatro cargos ....

Leer más abajo para una posible solución:

Si realmente desea generar palabra de lujo con formato documentos, su mejor apuesta es crear un documento RTF. Todo lo que Word puede hacer se puede expresar en RTF, pero es un formato de texto, no binario, por lo que puede cambiar las cosas en el documento RTF y aún así funcionará. Puede crear un documento muy bien formateado con marcadores de posición en Word, guardar como RTF y luego usar la sustitución de texto simple, reemplazar los marcadores de posición sobre la marcha. Ahora tiene un documento RTF que todas las versiones de Word abrirán felizmente.

@source: http://www.joelonsoftware.com/items/2008/02/19.html

Algunos enlaces que pueden interesar a lo largo de su viaje:

Aunque, intente abrir un archivo de Word con WinRAR;), creando Tal vez un archivo con ciertas cabeceras y luego cambiar el la extensión será suficiente, Nunca probado

+0

¿Por qué votar abajo? – RobertPitt

+2

mi pensamiento se debe a que alguien dio un enlace a una solución de trabajo y usted dijo que no es posible. Sin embargo, no vale la pena un voto negativo ya que diste una buena discusión y me gustó leer las aportaciones de Joel al respecto. – ajacian81