14 votos

Herramienta de línea de comandos para convertir archivos DOC y DOCX a PDF

¿Existe alguna herramienta de línea de comandos para convertir archivos DOC y DOCX a PDF? Si no, ¿puede automatizarse mediante algún script de Automator (abrir-imprimir a PDF-cerrar)?

14voto

Al Johri Puntos 131

Puede utilizar la función docx2pdf herramienta de línea de comandos para convertir docx a pdf de forma masiva. Utiliza Microsoft Word para convertir directamente a pdf, por lo que necesitarás tenerlo instalado. En MacOS, utiliza JXA (AppleScript para JavaScript) para comunicarse con Word y en Windows utiliza win32com.

pip install docx2pdf

# single file
docx2pdf myfile.docx

# entire folder
docx2pdf myfolder/

Descargo de responsabilidad: Yo escribí docx2pdf tras frustrarme por la falta de herramientas multiplataforma para convertir docx a pdf directamente con Microsoft Word, ya que necesitaba una réplica perfecta sin problemas de formato. https://github.com/AlJohri/docx2pdf

8voto

David Moles Puntos 85

En Office 2016 el enfoque Automator se encontrará con problemas debido a sandboxing de seguridad . (El síntoma: Word permanece abierto y aparece el cuadro de diálogo "Error al imprimir").

Una solución consiste en instalar LibreOffice que puede utilizarse para convertir archivos desde la línea de comandos . En MacOS, el comando es:

/Applications/LibreOffice.app/Contents/MacOS/soffice \
  --headless \
  --convert-to pdf \
  myfile.docx

El PDF sólo será tan bueno como la conversión de LibreOffice desde MS Office, por supuesto, pero es adecuado para muchos propósitos.

Otro enfoque, si realmente no le importa el formato, es utilizar pandoc y LaTeX:

pandoc -t latex myfile.docx -o myfile.pdf

Tendrá que instalar pandoc y LaTeX como se describe en esta respuesta Sin embargo, el PDF tendrá el aspecto de un documento LaTex: se conservará el formato básico, los encabezados, las listas, etc., pero no cosas como las fuentes y los márgenes.

1voto

jb. Puntos 4883

Si tiene Office:Mac 2008 Business Edition u Office:Mac 2011 Home/Business Edition, las acciones de Automator están incluidas en esas ediciones. Una de las acciones de Automator incluidas en esas versiones de Office:Mac es "Convertir formato de documentos de Word", y una de las opciones de esa acción de Automator es PDF. Esta página tiene gran información sobre Automator y Office:Mac.

Si tienes Home/Student Edition en lugar de Business Edition, o no tienes Office, puedes hacerlo mediante AppleScript. Mac OS X Hints tiene un artículo sobre conversión masiva de archivos de texto a PDF mediante AppleScript y los comentarios a ese artículo ofrecen algunas opciones para convertir DOC/DOCX a PDF mediante RTF. Si los archivos DOC/DOCX son muy complejos, es posible que se pierda el formato o los enlaces, pero puede ser suficiente para archivos no muy complejos.

0voto

baz Puntos 746

Para mi aplicación la solución de LibreOffice publicada por @David Moles es una gran solución. Tengo que usar esto desde dentro de una aplicación ya que mi versión de Word no se ejecuta en MacOS 12.3.1 (bueno, es de 32 bits por lo que se detuvo después de 10.14.6.). Yo había estado usando AppleScript para decirle a Word para convertir a pdf). Aprendí que cada parte delimitada por espacios de los argumentos necesita ser un objeto en el array de argumentos pasados a NSTask. eg

NSTASK *task = [[NSTask alloc] init];
task.executableURL = [NSURL fileURLWithPath:@"/Applications/LibreOffice.app/Contents/MacOS/soffice"];
NSString *filename = ...;
task.currentDirectoryURL = [NSURL fileURLWithPath: ...];
task.arguments  = @[@"--headless"
                  , @"--convert-to", @"pdf", filename];

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X