Convierte por lotes documentos de Word a PDF
¿Cómo puedo convertir por lotes muchos documentos de Word y hacer que se guarden como [nombre original].pdf?
¿Cómo puedo convertir por lotes muchos documentos de Word y hacer que se guarden como [nombre original].pdf?
Puede que esto sea entrar en el territorio de stackoverflow.com, pero puedes programar Word 2007 para abrir y guardar un documento como PDF. Esto requiere Office 2007 y el plug-in “Save as PDF” de Microsoft.
Guarda esto en un archivo SaveAsPDF.js
y ejecútalo desde la línea de comandos usando cscript.exe //nologo SaveAsPDF.js SomeFolder\MyDocToConvert.doc
:
var fso = new ActiveXObject("Scripting.FileSystemObject");
var docPath = WScript.Arguments(0);
docPath = fso.GetAbsolutePathName(docPath);
var pdfPath = docPath.replace(/\.doc[^.]*$/, ".pdf");
var objWord = null;
try
{
WScript.Echo("Saving '" + docPath + "' as '" + pdfPath + "'...");
objWord = new ActiveXObject("Word.Application");
objWord.Visible = false;
var objDoc = objWord.Documents.Open(docPath);
var wdFormatPdf = 17;
objDoc.SaveAs(pdfPath, wdFormatPdf);
objDoc.Close();
WScript.Echo("Done.");
}
finally
{
if (objWord != null)
{
objWord.Quit();
}
}
Así es como yo lo haría:
El único inconveniente es que tiene que hacer clic en Ok una vez para cada archivo.
Bueno, cutepdf y pdf99 hacen bien su trabajo, pero me parece que PDFcreator es más atractivo ya que ‘imprime en mayor calidad que los otros dos, también tiene más opciones de configuración, además es de código abierto.
(http://www.labnol.org/internet/batch-pdf-converter/10796/)por Amit Agarwal
Si tienes un enorme paquete de documentos de Word, hojas de cálculo de Excel y presentaciones de PowerPoint en tu disco duro que te gustaría convertir en PDF de una vez sin invertir en software comercial como Adobe Acrobat, prueba Google Docs.
Aunque siempre ha sido posible convertir documentos de Office en PDF con Google Docs, la nueva función de exportación te facilita aún más la conversión por lotes de archivos de Microsoft Office y OpenOffice en PDF (o HTML) en tres sencillos pasos. Conversión por lotes a PDF con Google Docs
Utiliza Google Docs como conversor de PDF por lotes
Paso nº 1 - Crea una nueva carpeta de “entrada” en Google Docs en la que subirás todos tus documentos y presentaciones que quieras convertir a PDF.
Paso #2 - Ahora selecciona la opción de Cargar Documento en Google Docs, establece la carpeta de destino a la que creaste en el Paso #1 y sube todos tus documentos.
Google Docs admite oficialmente los siguientes formatos de archivo, aunque también puedes subir imágenes:
* Microsoft PowerPoint (.ppt, .pps).
* Microsoft Word (.doc, .docx), OpenDocument (.odt) and StarOffice (.sxw).
* Microsoft Excel (csv, .xls, .xlsx) files and OpenDocument Spreadsheet (.ods).
[*] También puedes utilizar la opción de correo electrónico para subir documentos a Google Docs, pero eso pondría todo en la carpeta principal y la gestión de los documentos puede convertirse en un problema, especialmente cuando tienes demasiados archivos.
Paso #3 - Una vez que todos los archivos estén subidos a Google Docs, abre el panel de control de nuevo y selecciona la carpeta “input” de la barra lateral derecha. Selecciona todos los archivos de esta carpeta y elige “Exportar” en “Más opciones”.
Aquí selecciona “PDF” (o HTML) como formato de salida y todos tus documentos de Word, presentaciones, hojas de cálculo, etc. se convertirán instantáneamente en PDF.
Y si estás convirtiendo un gran lote de documentos en PDF, no tienes que esperar en el navegador a que termine la conversión, ya que Google Docs te enviará automáticamente un correo electrónico una vez que haya terminado el proceso. El correo electrónico tendrá un enlace desde el que podrás descargar directamente todos los archivos PDF en un gran ZIP.
En cuanto a la secuencia de comandos SaveAsPDF.js que un usuario anterior publicado. Esto funcionó para convertir un archivo pdf, pero no sabía cómo cubrir todos los archivos en un directorio. Con un poco de juego he creado un archivo CovertAll2PDF.bat con las siguientes 2 líneas:
echo off
for %%X in (*.doc) do cscript.exe //nologo SaveAsPDF.js "%%X"
también está el /r "Parent Directory"
que se puede insertar como para /r "PD" %%X in -....
que pasará por todos los directorios, en ese caso hazlo C:\SaveAsPDF.js y guarda Saveaspdf.js en ese directorio.
Estoy seguro de que es torpe, pero funcionó para mí. espero que esto ayude a alguien.
La respuesta de Bobbymcr es bastante interesante y funciona bien con Word 2010. Aun así, hay una mejora que hacer. La línea de comandos original de Bobbymcr tiene el siguiente aspecto
cscript.exe //nologo SaveAsPDF.js SomeFolder\MyDocToConvert.doc
Esto no funciona si has asociado los archivos .js con algún tipo de editor como Notepad++. En este caso también tienes que especificar el motor a utilizar, de lo contrario cscript te mostrará un mensaje de error. Esto se consigue fácilmente utilizando el parámetro de línea de comandos //E:jscript
:
cscript.exe //nologo //E:jscript SaveAsPDF.js SomeFolder\MyDocToConvert.doc
Este pequeño fragmento me ha funcionado muy bien.
Simplemente guárdelo en un script de PowerShell como Convert-Documents.ps1
y luego ejecútelo desde la línea de comandos desde la carpeta donde se encuentran todos sus documentos fuente.
No lo he probado, pero hay un método por lotes que utiliza OpenOffice.org y que podrías probar. Las instrucciones para hacerlo en plataformas GNU/Linux y Windows se describen en http://www.tech-faq.com/convert-word-to-pdf.shtml (y también en http://www.togaware.com/linux/survivor/Convert_MS_Word.html “ y, en http://www.oooforum.org/forum/viewtopic.phtml?t=3772 ).
El principio de usar OpenOffice.org para leer el archivo .doc y luego exportarlo como PDF parece sólido si encuentra que OpenOffice.org hace un trabajo razonable al abrir los archivos .doc que tiene.
Una alternativa ligeramente más sencilla en comparación con los scripts Powershell, Batch y Windows Script Host anteriores es la herramienta docx2pdf
que funciona tanto en Windows como en MacOS: https://github.com/AlJohri/docx2pdf/
Similar a otras respuestas, este enfoque utiliza win32com en Windows y JXA (Javscript for Automation, básicamente AppleScript en JS) en macOS. Sin embargo, está empaquetado en un paquete fácilmente instalable y listo para convertir por lotes con una barra de progreso.
Instalar:
pip install docx2pdf
Ejecutar:
docx2pdf myFolderOfWordDocs
Descargo de responsabilidad: Escribí esta herramienta después de luchar para encontrar una solución multiplataforma para convertir por lotes docx a pdf con cero problemas de formato, ya que utiliza directamente Microsoft Word.
Convertir múltiples documentos de DOC a PDF en Windows XP utilizando JODConverter y Open Office
Requisitos previos:
Paso 1 Descargar JODConverter (última versión jodconverter-2. 2.2.zip) de
Descomprima el archivo zip de JODConverter en un directorio de su elección (D1)
Paso 2 Inicie OpenOffice en modo de servicio (más detalles aquí )
Cree un archivo batch start-service.bat con el siguiente contenido:
start-service.bat:
X:\Program Files\OpenOffice.org 3\program\soffice.exe -headless
-accept="socket,host=127.0.0.1,port=8100;urp;" –nofirststartwizard
::si no funciona pruebe a quitar este último parámetro(-nofirststartwizard)
(asumiendo que X:\Program Files\OpenOffice.org 3\ es el directorio donde está instalado Open Office y soffice.exe está presente).
Ejecutar start-service.bat (open office está ahora iniciado en modo servicio y esperando comandos)
Paso 3
Recoger todos los documentos a convertir a pdf en un directorio (D2)
Crear un archivo batch convert.doc que lance JODConverter con y emita las instrucciones de conversión:
convert.bat:
java -jar "<D1>\lib\jodconverter-cli-2.2.2.jar" -f pdf *.doc
donde D1 es el directorio de JODConverter creado en el Paso 1
(Si JODConverter tiene otro número de versión, actualice convert.bat en consecuencia)
IMPORTANTE: ¡el archivo convert.bat debe estar ubicado en el directorio D2!
Paso 4:
Ejecutar convert.bat
Por cada archivo *.doc presente en D2 JODConverter requerirá a Open Office que cree un nuevo archivo con el mismo nombre y extensión pdf en el mismo directorio.
Si quieres un método rápido y sencillo en línea para 20 o menos archivos, entonces utiliza este sitio web online2pdf , aquí puedes subir tus archivos, elegir algunas opciones y luego hacer clic en convertir, convertirá todos los documentos y luego descargará automáticamente un único archivo zip que contiene los archivos PDF.
Si los documentos de Word son simples y si no necesita que el formato de los documentos de Word esté presente en los documentos PDF, puede utilizar un simple bucle alrededor del código central de mis programas DOCXtoPDF, para hacer lo que quiere. DOCXtoPDF utiliza internamente xtopdf, mi kit de herramientas de Python para la creación de PDF a partir de muchos otros formatos. También necesita tener instalado ReportLab 1.21.
Ver: http://jugad2.blogspot.in/2013/10/convert-microsoft-word-files-to-pdf.html http://slid.es/vasudevram/xtopdf https://bitbucket.org/vasudevram/xtopdf http://www.reportlab.com/ftp
Basándose en la respuesta de Umar, aquí hay un script PowerShell modificado que..:
Como en el caso de Umar, para utilizarlo:
doc2pdf.ps1
, en algún lugar de su PATH
powershell doc2pdf.ps1
“`
$Word=New-Object -ComObject Word.Application$Files=@(Get-ChildItem ”.*.docx") + @(Get-ChildItem “.*.doc”) # Need @() to get an array in case there is only one file - see # https://blogs.technet.microsoft.com/heyscriptingguy/2013/07/18/powertip-find-number-elements-in-a-powershell-array/#comment-104863
for($fileidx = 0; $fileidx -lt $Files.Count; ++$file_idx) {
# Show the current progress
$File = $Files[$file_idx]
Write-Progress -Activity "Convert DOC(X) to PDF" `
-CurrentOperation $File.Name `
-PercentComplete (($file_idx/$Files.Count)*100)
# Make the PDF
$Document=$Word.Documents.Open($File.FullName)
$Name=($Document.FullName -replace "\.docx?", ".pdf") # -replace is case-insensitive regex per https://ss64.com/ps/syntax-regex.html
$Document.SaveAs([ref] $Name, [ref] 17)
$Document.Close()
}
$Word.Quit() # Doesn’t close other Word instance that may be running.
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($Word) Remove-Variable Word
Probado con Word 2013 y PowerShell 4.0.