Convertire in batch i documenti Word in PDF
Come posso convertire in batch molti documenti Word e farli salvare come [originalfilename].pdf?
Come posso convertire in batch molti documenti Word e farli salvare come [originalfilename].pdf?
Questo potrebbe essere una spinta nel territorio di stackoverflow.com, ma si potrebbe scrivere uno script per Word 2007 per aprire e salvare un documento come PDF. Questo richiede Office 2007 e il plug-in “Save as PDF” di Microsoft.
Salvatelo in un file SaveAsPDF.js
ed eseguitelo dalla linea di comando 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();
}
}
Ecco come farei io:
L'unico svantaggio è che devi cliccare Ok una volta per ogni file.
beh, cutepdf & pdf99 fanno bene il loro lavoro, ma trovo PDFcreator più attraente in quanto ‘stampa in qualità superiore rispetto agli altri due, ha anche più opzioni di configurazione, in più è open-source.
Usa Google Docs come convertitore PDF in batch by Amit Agarwal
Se hai un enorme mucchio di documenti Word, fogli di calcolo Excel e presentazioni PowerPoint sul tuo disco rigido che vorresti convertire in PDF in una volta sola senza investire in software commerciale come Adobe Acrobat, prova Google Docs.
Mentre è sempre stato possibile convertire i documenti di Office in PDF utilizzando Google Docs, la nuova funzione di esportazione rende ancora più facile per voi di convertire in batch i formati di file Microsoft Office e OpenOffice in PDF (o HTML) in tre semplici passi. Conversione in batch in PDF con Google Docs
Utilizza Google Docs come convertitore PDF in batch
Step #1 - Crea una nuova cartella “input” in Google Docs dove caricherai tutti i tuoi documenti e presentazioni da convertire in PDF.
Step #2 - Ora seleziona l'opzione Carica documento in Google Docs, imposta la cartella di destinazione su quella che hai creato nel passo #1 e carica tutti i tuoi documenti.
Google Docs supporta ufficialmente i seguenti formati di file, sebbene tu possa anche caricare immagini:
* Microsoft PowerPoint (.ppt, .pps).
* Microsoft Word (.doc, .docx), OpenDocument (.odt) and StarOffice (.sxw).
* Microsoft Excel (csv, .xls, .xlsx) files and OpenDocument Spreadsheet (.ods).
[*] Puoi anche usare l'opzione e-mail per caricare i documenti su Google Docs ma questo metterebbe tutto nella cartella principale e la gestione dei documenti può quindi diventare un problema soprattutto quando hai troppi file.
Step #3 - Una volta che tutti i file sono stati caricati su Google Docs, apri di nuovo la dashboard e seleziona la cartella “input” dalla barra laterale destra. Seleziona tutti i file in questa cartella e scegli “Export” sotto “More Options”.
Qui seleziona “PDF” (o HTML) come formato di output e tutti i tuoi documenti Word, presentazioni, fogli di calcolo, ecc. saranno immediatamente convertiti in PDF.
E se stai convertendo un grande lotto di documenti in PDF, non devi aspettare nel browser che la conversione finisca perché Google Docs ti invierà automaticamente un'e-mail una volta che l'elaborazione è finita. L'e-mail avrà un link da dove potrete scaricare direttamente tutti i file PDF in un unico grande ZIP.
Per quanto riguarda lo script SaveAsPDF.js che un utente precedente ha postato. Questo ha funzionato per convertire un file pdf, ma non sapevo come convertire tutti i file in una directory. Con un po’ di gioco ho creato un file. CovertAll2PDF.bat con le seguenti 2 linee:
echo off
for %%X in (*.doc) do cscript.exe //nologo SaveAsPDF.js "%%X"
c'è anche lo /r "Parent Directory"
che può essere inserito come per /r "PD" %%X in -....
che passerà attraverso tutte le directory, in questo caso fare C:\SaveAsPDF.js e salvare Saveaspdf.js in quella directory.
sono sicuro che è goffo, ma ha funzionato per me. spero che questo aiuti qualcuno.
La risposta di Bobbymcr è piuttosto interessante e funziona bene con Word 2010. Tuttavia, c'è un miglioramento da fare. La linea di comando originale di Bobbymcr assomiglia a questa:
cscript.exe //nologo SaveAsPDF.js SomeFolder\MyDocToConvert.doc
Questo non funziona se hai associato i file .js con qualche tipo di editor come Notepad++. In questo caso devi anche specificare il motore da usare, altrimenti cscript ti mostrerà un messaggio di errore. Questo si ottiene facilmente usando il parametro della linea di comando //E:jscript
:
cscript.exe //nologo //E:jscript SaveAsPDF.js SomeFolder\MyDocToConvert.doc
Questo piccolo snippet ha funzionato molto bene per me.
Basta salvarlo in uno script PowerShell come Convert-Documents.ps1
e poi eseguirlo dalla riga di comando all'interno della cartella dove si trovano tutti i tuoi documenti di origine.
Non l'ho provato, ma c'è un metodo batch usando OpenOffice.org che potresti provare. Le istruzioni per farlo su piattaforme GNU/Linux e Windows sono descritte a http://www.tech-faq.com/convert-word-to-pdf.shtml (e anche a http://www.togaware.com/linux/survivor/Convert_MS_Word.html “ e, a http://www.oooforum.org/forum/viewtopic.phtml?t=3772 ).
Il principio di usare OpenOffice.org per leggere il file .doc e poi esportarlo come PDF sembra valido se trovi che OpenOffice.org faccia un lavoro ragionevole nell'aprire i file .doc che hai.
Un'alternativa leggermente più semplice rispetto agli script Powershell, Batch e Windows Script Host di cui sopra è lo strumento docx2pdf
che funziona sia su Windows che su MacOS: https://github.com/AlJohri/docx2pdf/
Simile alle altre risposte, questo approccio usa win32com in Windows e JXA (Javscript for Automation, fondamentalmente AppleScript in JS) in macOS. Tuttavia, è confezionato in un pacchetto facilmente installabile e pronto per la conversione in batch con una barra di progresso.
Installa:
pip install docx2pdf
Run:
docx2pdf myFolderOfWordDocs
Disclaimer: Ho scritto questo strumento dopo aver lottato per trovare una soluzione multipiattaforma per convertire in batch docx in pdf con zero problemi di formattazione dato che usa direttamente Microsoft Word.
Conversione di più documenti da DOC a PDF su Windows XP usando JODConverter e Open Office
Prerequisiti:
Step 1 Scarica JODConverter (ultima versione jodconverter-2. 2.2.zip) da
Decomprimi il file zip JODConverter in una directory di tua scelta (D1)
Step 2 Avvia OpenOffice in modalità servizio (maggiori dettagli qui )
Crea un file batch start-service.bat con il seguente contenuto:
start-service.bat:
X:\Program Files\OpenOffice.org 3\program\soffice.exe -headless
-accept="socket,host=127.0.0.1,port=8100;urp;" –nofirststartwizard
::se non funziona prova a rimuovere quest'ultimo parametro (-nofirststartwizard)
(assumendo che X:\Program FilesOpenOffice.org 3\ sia la directory dove Open Office è installato e soffice.exe sia presente).
Esegui start-service.bat (open office è ora avviato in modalità servizio e in attesa di comandi)
Step 3
Raccogli tutti i documenti da convertire in pdf in una directory (D2)
Crea un file batch convert.doc che lancia JODConverter con ed emette le istruzioni di conversione:
convert.bat:
java -jar "<D1>\lib\jodconverter-cli-2.2.2.jar" -f pdf *.doc
dove D1 è la directory di JODConverter creata nel Passo 1
(Se JODConverter ha un altro numero di versione, aggiornare convert.bat di conseguenza)
IMPORTANTE: il file convert.bat deve essere situato nella directory D2 !
Step 4:
Run convert.bat
Per ogni file *.doc presente in D2 JODConverter richiederà a Open Office di creare un nuovo file con lo stesso nome ed estensione pdf nella stessa directory.
Se vuoi un metodo online semplice e veloce per 20 file o meno, allora usa questo sito online2pdf , qui puoi caricare i tuoi file, scegliere alcune opzioni e poi cliccare su converti, convertirà tutti i documenti e poi scaricherà automaticamente un singolo file zip contenente i file PDF.
Se i documenti Word sono semplici e se non avete bisogno che la formattazione dei documenti Word sia presente nei documenti PDF, potete usare un semplice ciclo intorno al codice di base dei miei programmi DOCXtoPDF, per fare ciò che volete. DOCXtoPDF usa internamente xtopdf, il mio toolkit Python per la creazione di PDF da molti altri formati. Ti serve anche ReportLab 1.21 installato.
Vedi: 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
Basandosi sulla risposta di Umar , ecco uno script PowerShell modificato che:
Come per quello di Umar, per usarlo:
salvate il seguente script come file, per esempio, doc2pdf.ps1
, da qualche parte nel vostro database
passate alla directory che contiene i vostri file doc o docx
eseguite PATH
$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($file_idx = 0; $file_idx -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()
}
# Clean up
$Word.Quit() # Doesn't close other Word instance that may be running.
# Remove any dangling references, per https://technet.microsoft.com/en-us/library/ff730962.aspx
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($Word)
Remove-Variable Word
# By cxw - https://superuser.com/users/269989/cxw - CC-BY-SA 3.0
# Modified from https://superuser.com/a/1187598/269989 by https://superuser.com/users/12797/umar-farooq-khawaja
Testato con Word 2013 e PowerShell 4.0.