phpdocx - Hacer que PHP lea archivos.doc en Linux
php word to pdf (10)
Conor, sugiero que mire las macros de la interfaz de línea de comando / llamada de OpenOffice. Puede convertir muchos formatos de archivo a muchos otros. Entonces puede elegir algo mucho más analizable que MS doc.
Por ejemplo, para convertir a PDF, una línea de comando es:
/usr/lib/ooo-2.0/program/soffice.bin -norestore -nofirststart -nologo -headless -invisible "macro:///Standard.Module1.SaveAsPDF(demo.doc)"
Intento leer un archivo .doc en una base de datos para poder indexar sus contenidos. ¿Hay alguna manera fácil para PHP en Linux para leer archivos .doc? En su defecto, ¿es posible convertir archivos .doc a rtf, pdf u otro formato ''abierto'' que sea fácil de leer?
Tenga en cuenta que no estoy interesado en los archivos .docx.
Después de días de búsqueda, esta es mi mejor solución: http://wvware.sourceforge.net/
Paquete de instalación
sudo apt-get install wv
Úselo en PHP:
$output = str_replace(''.doc'', ''.txt'', $filename);
shell_exec(''/usr/bin/wvText '' . $filename . '' '' . $output);
$text = file_get_contents($output);
# Convert to UTF-8 if needed
if(!mb_detect_encoding($text, ''UTF-8'', true))
{
$text = utf8_encode($text);
}
unlink($output);
Encontré un paquete de noconv en Ubuntu. Hace la conversión entre todos los formatos compatibles con OpenOffice. Debería poder usar exec en php para ejecutar esta utilidad.
Es posible que desee verificar el código fuente de este artículo: Leer el texto "limpio" de DOCX y ODT
Los archivos DOC se almacenan en formato binario, y no ha habido clases escritas puramente php al tratar con ellos.
Los archivos RTF son mucho más fáciles de analizar, ya que se trata en su mayoría de texto, puede abrirlos con fopen y leer los contenidos.
Sugiero usar RTF si puede, ya que realmente todavía no hay una solución de sonido para archivos DOC.
Microsoft publicó la especificación para el formato .DOC hace un tiempo.
No es PHP, pero hay una utilidad doc2rtf que puedes usar. Desde allí, puede simplemente abrir el archivo RTF como un documento de texto, escribir algunas rutinas de reemplazo de cadenas para eliminar los códigos de formato RTF y tener un globo de texto adecuado para la indexación.
Alternativamente, puede obtener OpenOffice y abrir los documentos de MS Word y simplemente File> Save As> RTF.
Parece que hay una biblioteca para acceder a documentos de Word, pero no está seguro de cómo acceder desde PHP. Creo que la mejor solución sería llamar a su comando wv desde PHP.
Puede utilizar antiword o AbiWord para extraer el texto y alimentarlo a su indexador de texto completo favorito. AbiWord es probablemente más eficaz para sus propósitos, ya que se puede convertir en RTF, PDF y otros formatos (sí, es un procesador de textos GUI, pero también es compatible con el uso de la línea de comandos).
phpLiveDocx es un componente de Zend Framework y puede leer y escribir archivos DOC y RTF en PHP en Linux, Windows y Mac. Además, puede usarlo para generar archivos PDF e incluso combinar datos de PHP en archivos de plantilla creados con MS Word u Open Office.
Vea el sitio web del proyecto en: