Estoy tratando de convertir archivos docx a pdf en mi servidor Ubuntu usando la línea de comando pero ninguno de los convertidores que probé hasta ahora parece convertir correctamente los archivos de Word 2007/2010/2013.
Aparentemente, los convertidores en línea pueden administrarlo sin ningún problema, pero los servicios web no son una opción porque los archivos contienen datos confidenciales. Para las pruebas, uso este archivo de Word 2007 porque contiene algunos elementos importantes (fórmulas, gráficos vectoriales, imágenes, listas, etc.). Probé las siguientes herramientas (en parte de esta publicación ):
lowriter
(LibreOffice Writer): salida incorrecta (se supone que el círculo está en la última página, no en la primera)
unoconv
- lo mismo que LibreOffice ya que no usa su propio convertidor. La conversión a odt primero y luego a pdf ensucia el archivo por completo.
abiword --to=pdf filename.doc
- incorrecto e incompleto (faltan muchos elementos):
OpenOffice Writer: el mismo resultado que para abiword
wvPDF
- Bloqueo con el siguiente mensaje de error:
~ $ wvPDF 2007_Office_DocEncryption.docx test.pdf
Directorio actual: / home / webmt / dev / test /
Algún problema al ejecutar látex.
Compruebe si hay errores en test.log
Continuo...
La conversión a dvi falló
¿Hay alguna forma de convertir archivos docx a PDF en Linux correctamente? También me ayudaría si supiera que funciona para alguien con cualquiera de los programas que ya mencioné. Comenzaré una recompensa tan pronto como SE me lo permita.
ps Estoy usando el servidor Ubuntu 12.04
conclusión :
Tenía que concluir que, para mí, por ahora, no existe una herramienta confiable que funcione con los nuevos formatos de MS Word y todo tipo de sus elementos en Ubuntu y cree una copia uno a uno de los archivos docx. Ninguna de las herramientas que probé pudo convertir el archivo de muestra correctamente. Como enfrentaré tipos / versiones de documentos muy diferentes y la calidad de salida tiene una de las más altas prioridades, terminaré realizando las conversiones mediante macros VB en Word en un servidor Windows conectado a mi Linux.
Estableceré la publicación obteniendo los mejores resultados como la respuesta aceptada. Sin embargo, la recompensa estaba destinada a una solución con una conversión absolutamente correcta. Gracias a todos nuevamente.
fuente
Respuestas:
Esta respuesta pasa todas las pruebas, pero el diagrama de flujo uno en su documento de prueba.
¿Por qué es esto mejor de lo que otros métodos sugieren hasta ahora?
He probado los otros métodos sugeridos hasta ahora (especialmente
oowriter
yebook-convert
), pero pasan menos pruebas que este método. Elebook-convert
método elimina los márgenes y una parte de los textos del documento.Este método incluso produce mejores resultados que un convertidor profesional como rainbowpdf .
También intenté convertirlo a html, pero el dibujo con el cuadrado en el círculo y el diagrama de flujo son incorrectos.
¿Por qué falla la prueba del diagrama de flujo?
Parece que libreoffice y unoconv tienen algunos problemas para representar correctamente el diagrama de flujo que está en el archivo .docx. Probablemente esto se deba a que se realizó utilizando arte inteligente en Microsoft Office. Ese es el problema. Ese es un error también discutido en este hilo . La información textual y visual está presente en el pdf resultante del método anterior, como puede ver (aunque tuve que seleccionar el texto).
El color de la fuente, por ejemplo, no se lee correctamente y algunas líneas son demasiado largas. No conozco ninguna solución de Linux que pueda mostrar correctamente el arte inteligente. :(
Esta es también la razón por la cual todas las
print
soluciones publicadas en esta página no lo satisfarán.En breve
En resumen, lo que está haciendo es realmente difícil y actualmente no hay soluciones que lo satisfagan por completo. El talón de Aquiles de las conversiones docx2pdf es el arte inteligente. Si puede vivir sin eso o si puede encontrar una manera de detectar arte inteligente y convertirlo de alguna manera en una imagen, puede alcanzar su objetivo.
Opción 1. Obliga a tus usuarios a lidiar con el problema
Esta es una solución muy poco elegante. Sus creadores de contenido podrían guardar su arte inteligente como jpg como se describe en las páginas de ayuda de Office y, por lo tanto, la conversión sería posible en su servidor.
Opción 2. Hackea el problema
Si los diagramas de flujo son a menudo muy similares y, dependiendo de lo bueno que sea un desarrollador, puede intentar convertir el arte inteligente por separado. Podría extraer el archivo drawing1.xml del grupo de documentos .docx y luego utilizar el procesamiento del lenguaje natural y algunos trucos locos para reconstruir un arte inteligente. Por ejemplo, tendría que meterse con este tipo de xml:
O como una solución mínima, al menos extrae el texto (
<a:t>
?) Del archivo y lo guarda de una manera más fácil. O si los diagramas de flujo de sus archivos PDF son todos iguales, podría escribir un script para cambiar el color del texto y la longitud de la línea en el propio xml. Entonces podría ejecutardoc2pdf
y tendría un archivo que esencialmente tiene toda la información correcta, pero tal vez no el formato. En el caso de los diagramas de flujo, es probable que también desee incluir parte del formato, porque el formato es parte de la información.Opción 3. Use un servicio de terceros
He investigado un poco más en los últimos días y he encontrado un servicio que hace la conversión perfectamente: zamzar . Zamzar le permite cargar un archivo docx y luego le envía un enlace por correo electrónico. También tienen un servicio (¿de pago?) Donde puede enviar cualquier archivo a [email protected] y luego recuperar el archivo convertido en su bandeja de entrada. Podría crear fácilmente un sistema en torno a esto donde envíe automáticamente el archivo y lo analice desde el correo electrónico. Esto no es tanto trabajo y el resultado final es el mejor.
Notas
De hecho, me he tomado el tiempo para probar los diferentes métodos propuestos en esta página. Por favor respalde cualquier comentario con pruebas reales.
fuente
lowriter
es ahoralowriter --convert-to pdf input_file.docx
. El uso--pt pdf
fallará en silencio.Esta es una solución de línea de comandos que funciona decentemente, pero utiliza software propietario.
Creo que el problema básico es que los formatos de Microsoft Word son completamente entendibles solo para Microsoft Word (incluso allí, hay diferencias entre las versiones --- hay archivos de Word del pasado que se abren con formato incorrecto en las versiones más nuevas). Todas las demás soluciones son aproximaciones y hacks, por lo que funcionarán o no dependiendo del archivo.
Entonces, para asegurarse de que necesita procesar sus archivos .docx con una instalación de Microsoft Word (y sí, creo que es su opción y es justo. Si no quiere usar Word, no lo use --- sigo con LaTeX por mi trabajo, pero es difícil convencer al resto del mundo ...).
Estoy usando Crossover desde hace años para ejecutar Microsoft Office en mi escritorio Linux (1), lo que me resulta bastante útil. Quizás también funciona con vino --- nunca lo probé
Hago la conversión usando esta configuración:
1) Tengo instalado Crossover
2) Tengo mi versión de Microsoft Office instalada en Crossover
3) En Microsoft Word, deshabilite la "impresión en segundo plano"
4) Tengo la
cups-pdf
impresora instalada y seleccionada como impresora predeterminada.5) Para hacer la conversión, ejecute (pistas aquí ):
6) Su archivo convertido aparecerá en el
~/PDF/
directorio.Su documento sale casi a la perfección (hay algunos desajustes en la respuesta # 2, que se muestran en mi Office Word 2007 cuando se ejecuta bajo Crossover --- No sé si está relacionado con mi versión de Windows).
Ahora, el problema es que aparecerá la interfaz de la palabra gráfica --- No sé cómo hacerla "sin cabeza". Las opciones de línea de comando para Word no ayudaron ...
(1) De ninguna manera estoy relacionado con Codeveawers, solo soy un usuario feliz.
fuente
También tuve este problema en el pasado, no he tenido que usarlo últimamente, así que no sé si todavía me está afectando.
En cuanto a responder la pregunta:
Esta pregunta: Cómo convertir por lotes .doc o .docx a .pdf da una razón en los comentarios de por qué su conversión
lowriter
podría estar fallando:La respuesta de esta pregunta también podría ayudar:
¿Cómo puedo convertir un archivo ODT a PDF?
Se podría funcionar
libreoffice --headless --convert-to pdf *.odt
. Puede obtener más información sobre libreoffice con el comandoman libreoffice
si necesita ayuda para comprender o ajustar el comando para que funcione.Sin embargo, no puede tener LibreOffice abierto en ese momento, según este error: https://bugs.freedesktop.org/show_bug.cgi?id=37531
Esta pregunta también está relacionada con Ubuntu, aunque esté en SuperUser: https://superuser.com/questions/156189/how-to-convert-word-doc-to-pdf-in-linux
La primera respuesta tiene dos opciones, una usando CUPS y creando una impresora PDF, la otra usando LaTex, aunque usted dijo que LaTex fallaba.
En cuanto a la conversión a PDF a través de CUPS PDF, se ejecutará
sudo apt-get install cups-pdf
seguido deoowriter -pt pdf your_word_file.doc(x)
. Esto podría ayudarlo con su problema de escritura.Este es probablemente un problema con el hecho de que está intentando convertir a PDF desde DOC / DOCX, cuando la mayoría de las herramientas usan ODT, ya que están relacionadas con LibreOffice / OpenOffice / AbiWord. Por lo tanto, no logran convertirlo del formato DOCX de Microsofts o en la conversión a ODT.
Hay varios errores con una conversión de .docx w. Word Art (se incluye la versión):
https://bugs.freedesktop.org/show_bug.cgi?id=33072 - 3.3.0 rc 2 (anticuado, creo)
https://bugs.freedesktop.org/show_bug.cgi?id=63289 - 4.0.2.2
https://bugs.freedesktop.org/show_bug.cgi?id=62251 - 4.0.0.3
https://bugs.freedesktop.org/show_bug.cgi?id=65260 - Sin especificar
Esto es del foro de LibreOffice con respecto a la conversión de .doc y algo .docx: http://en.libreofficeforum.org/node/5096 . Es de enero de 2013, por lo que debería aplicarse un poco.
Más allá de todo esto, realmente no lo sé. ¡Espero que resuelvas tu problema!
fuente
Si tiene instalado Libreoffice, puede intentar convertir utilizando eso. Simplemente presione Ctrl+ Alt+ Ten su teclado para abrir Terminal. Cuando se abra, ejecute los siguientes comandos:
Otra opción es instalar Cups PDF .
Para hacerlo, simplemente presione Ctrl+ Alt+ Ten su teclado para abrir Terminal. Cuando se abra, ejecute los siguientes comandos:
Luego cree una nueva impresora, configúrela como una impresora de archivos PDF y asígnele el nombre que desee, siempre que sepa el nombre, luego ejecute:
Y su archivo PDF estará en
~/PDF
.fuente
Aquí está la amarga verdad: ¡las soluciones de Office para Linux son fallas totales! He sido un usuario de GNU / Linux a tiempo completo durante muchos años y constantemente he buscado y probado diferentes soluciones de oficina, desde la antigua Open-Office, hasta la posterior Libre-Office, Abi-Word, etc. Todos no han podido ayudarme a hacer mi trabajo de oficina. Incluso empeora cuando se trata de idiomas no latinos (idiomas de derecha a izquierda como el persa, el árabe, etc.). ¡El usuario tiene que luchar con este software para hacer su trabajo! Y la compatibilidad con Microsoft Office simplemente no existe. Puedo hablar horas y horas de cuánto he intentado y todos me han fallado, pero este no es el punto de esta pregunta.
También intenté instalar y ejecutar Microsoft Office usando WINE, y de alguna manera tuve éxito, pero no funcionó bien y se bloqueó principalmente cuando intenté abrir los archivos de mi oficina.
LaTeX está bien, pero no es una solución de oficina. LaTeX es para la configuración de tipografía, y es más como una herramienta profesional, y no hay hojas de cálculo ni presentaciones.
Entonces, ¿cuál es la solución?
Esta no es una solución de línea de comandos. La única solución que se me ocurrió en todos estos años, para mantenerme dentro de mi sistema operativo GNU / Linux y también hacer mis trabajos de oficina, es usar una instalación mínima de Microsoft Windows en una máquina virtual (como VirtualBox) e instalar un traje de Microsoft Office.
Puede que no parezca bonito, pero es la única solución que funciona a la perfección y me evita pelear con soluciones de mala oficina en mi precioso tiempo. Al principio, yo mismo pensé que esta no era una buena solución, pero después de fallar con todos los demás y hacer esto VM durante más de 2 años, estoy muy contento con eso.
:)
================================================== ==============================
NOTA-1: ¡ No estoy anunciando productos de Microsoft! Solo trato de ayudar a resolver el problema y seguir adelante con la vida.
NOTA-2: Como se enfatizó anteriormente, esta NO es una solución de línea de comandos. Entonces, ¿por qué publicar la respuesta? ¡Porque es una opción PROBADA y QUE FUNCIONA BIEN! Si no hay disponible una solución de línea de comandos TRABAJANDO (lo cual sospecho es el caso), entonces tener una opción ALTERNATIVA es mejor que NO opciones.
fuente
wine
lugar de máquina virtual?WINE
no funcionó bien. El programa no funcionó como lo hace en Windows (mostró un comportamiento incorrecto) y también se bloqueó mucho.Aquí hay un par de aplicaciones que puedes probar y ver si funcionan con FF Multi Converter o puedes probar Kingsoft Office .
fuente
Instale Calibre desde el Centro de software o Synaptic , y configure la salida predeterminada en PDF.
Desde un indicador de comandos de shell, realice
fuente
ValueError: No plugin to handle input format: docx
. Google no ayudó en este caso, así que reportaré un error.