Conversão em lote de documentos Word para PDF
Como posso converter em lote muitos documentos Word e salvá-los como [nome do ficheiro original].pdf?
Como posso converter em lote muitos documentos Word e salvá-los como [nome do ficheiro original].pdf?
Isto pode estar a empurrá-lo para o território do stackoverflow.com, mas poderia escrever o Word 2007 para abrir e guardar um documento como PDF. Isto requer o Office 2007 e o plug-in “Save as PDF” da Microsoft.
Guarde isto num ficheiro SaveAsPDF.js
e execute-o a partir da linha de 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();
}
}
É assim que eu o faria:
A única desvantagem é que tem de clicar Ok uma vez para cada ficheiro.
bem, cutepdf & pdf99 fazem bem o seu trabalho, mas acho PDFcreator mais apelativo, uma vez que ‘imprime’ com mais qualidade do que os outros dois, também tem mais opção de configuração, além de ser de código aberto.
Utilizar Google Docs como Conversor de PDF em Lote por Amit Agarwal
Se tiver um enorme pacote de Documentos Word, Folhas de Cálculo Excel e Apresentações em PowerPoint no seu disco rígido que gostaria de converter imediatamente em PDF sem investir em software comercial como o Adobe Acrobat, experimente o Google Docs.
Embora tenha sido sempre possível converter documentos do Office em PDF usando o Google Docs, a nova funcionalidade de exportação torna ainda mais fácil para si converter em lotes os formatos de ficheiros Microsoft Office e OpenOffice em PDF (ou HTML) em três passos fáceis. Conversão em lote para PDF com Google Docs
Utilizar Google Docs como Conversor em Lote de PDF
Passo #1 - Criar uma nova pasta de “input” no Google Docs onde irá carregar todos os seus documentos e apresentações que devem ser convertidos em PDF.
Passo #2* - Agora seleccione a opção Upload Document no Google Docs, defina a pasta de destino para aquela que criou no Passo #1 e carregue** todos os seus documentos.
Google Docs suporta oficialmente os seguintes formatos de ficheiro, embora também possa carregar imagens:
* Microsoft PowerPoint (.ppt, .pps).
* Microsoft Word (.doc, .docx), OpenDocument (.odt) and StarOffice (.sxw).
* Microsoft Excel (csv, .xls, .xlsx) files and OpenDocument Spreadsheet (.ods).
[*] Também pode utilizar a opção de correio electrónico para carregar documentos no Google Docs, mas isso colocaria tudo na pasta principal e a gestão de documentos pode, portanto, tornar-se um problema, especialmente quando tem demasiados ficheiros.
Passo #3 - Assim que todos os ficheiros forem carregados no Google Docs, abra novamente o painel de instrumentos e seleccione a pasta “input” a partir da barra lateral direita. Seleccione todos os ficheiros desta pasta e escolha “Exportar” em “Mais Opções”.
Aqui selecciona “PDF” (ou HTML) como formato de saída e todos os seus Documentos Word, apresentações, folhas de cálculo, etc. serão instantaneamente convertidos em PDF.
E se estiver a converter um grande lote de documentos em PDF, não terá de esperar no navegador para que a conversão termine, pois o Google Docs enviar-lhe-á automaticamente um e-mail assim que o processamento estiver terminado. O e-mail terá um link de onde poderá descarregar directamente todos os ficheiros PDF num único grande ZIP.
Em relação ao script SaveAsPDF.js que um utilizador anterior publicou. Isto funcionou para converter um ficheiro pdf, mas eu não sabia como cobrir todos os ficheiros de um directório. Com um pouco de jogo, criei um ficheiro. CovertAll2PDF.bat com as 2 linhas seguintes:
echo off
for %%X in (*.doc) do cscript.exe //nologo SaveAsPDF.js "%%X"
há também o /r "Parent Directory"
que pode ser inserido como para /r "PD" %%X in -....
que irá percorrer todos os directórios, nesse caso faça-o C:\SaveAsPDF.js e guarde Saveaspdf.js nesse directório.
tenho a certeza que é desajeitado, mas funcionou para mim. espero que isto ajude alguém.
A resposta de Bobbymcr é bastante interessante e funciona bem com Word 2010. Ainda assim, há uma melhoria a ser feita. A linha de comando original de Bobbymcr tem este aspecto:
cscript.exe //nologo SaveAsPDF.js SomeFolder\MyDocToConvert.doc
Isto não funciona se tiver ficheiros .js associados a algum tipo de editor como o Notepad++. Neste caso, também tem de especificar o motor a utilizar, caso contrário, o cscript mostrar-lhe-á uma mensagem de erro. Isto é facilmente conseguido utilizando o parâmetro de linha de comando //E:jscript
:
cscript.exe //nologo //E:jscript SaveAsPDF.js SomeFolder\MyDocToConvert.doc
.
Este pequeno bocadinho funcionou muito bem para mim.
& - Livre & - Fácil & - Sem limites no número de ficheiros
Basta guardá-lo num script PowerShell como Convert-Documents.ps1
e depois executá-lo a partir da linha de comando a partir da pasta onde todos os seus documentos-fonte estão localizados.
Não o experimentei, mas existe um método por lotes utilizando o OpenOffice.org que pode testar. Instruções para o fazer nas plataformas GNU/Linux e Windows descritas em http://www.tech-faq.com/convert-word-to-pdf.shtml “ (e também em http://www.togaware.com/linux/survivor/Convert_MS_Word.html ” e, em http://www.oooforum.org/forum/viewtopic.phtml?t=3772 “).
O princípio de usar o OpenOffice.org para ler no ficheiro .doc e depois exportá-lo como PDF parece sólido se achar que o OpenOffice.org faz o trabalho de abrir os ficheiros .doc que tem.
Uma alternativa ligeiramente mais fácil em comparação com os scripts Powershell, Batch, e Windows Script Host acima é a ferramenta docx2pdf
que funciona tanto em Windows como em MacOS: https://github.com/AlJohri/docx2pdf/
Similar a outras respostas, esta abordagem usa win32com em Windows e JXA (Javscript para Automação, basicamente AppleScript em JS) em macOS. Contudo, é embalado num pacote facilmente instalável e pronto a ser convertido em lote com uma barra de progresso.
Instalar:
pip install docx2pdf
Run:
docx2pdf myFolderOfWordDocs
Disclaimer: Escrevi esta ferramenta depois de me esforçar por encontrar uma solução multiplataforma para conversão de docx para pdf em lote com problemas de formatação zero, uma vez que utiliza directamente o Microsoft Word.
Converter múltiplos documentos do DOC para PDF no Windows XP usando JODConverter e Open Office
Pré-requisitos:
Passo 1 Descarregar JODConverter (última versão jodconverter-2. 2.2.zip) a partir de
Uncompress JODConverter ficheiro zip num directório à sua escolha (D1)
Passo 2* Iniciar OpenOffice em modo de serviço (mais detalhes aqui )
Criar um ficheiro start-service.bat em lote com o seguinte conteúdo:
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 não funcionar tente remover este último parâmetro(-nofirststartwizard)
(assumindo que X:\Program Files\OpenOffice.org 3\ é o directório onde o Open Office está instalado e o soffice.exe está presente).
Executar start-service.bat (o escritório aberto é agora iniciado em modo de serviço e aguarda comandos)
Passo 3*
Recolher todos os documentos a serem convertidos para pdf num directório (D2)
Criar um ficheiro convert.doc batch que lança o JODConverter com e emite as instruções de conversão:
convert.bat:
java -jar "<D1>\lib\jodconverter-cli-2.2.2.jar" -f pdf *.doc
onde D1 é o directório JODConverter criado em Passo 1
(Se JODConverter tiver outro número de versão, actualize convert.bat em conformidade)
IMPORTANTE: o ficheiro convert.bat deve estar localizado no directório D2 !
Passo 4:
Executar convert.bat
Para cada ficheiro *.doc presente em D2 JODConverter será necessário que o Open Office crie um novo ficheiro com o mesmo nome e extensão pdf no mesmo directório.
Se quiser um método online rápido e simples para 20 ou menos ficheiros, então utilize este website online2pdf , aqui pode carregar os seus ficheiros, escolher algumas opções e depois clicar em converter, ele irá converter todos os documentos e depois descarregar automaticamente um único ficheiro zip contendo os ficheiros PDF.
Se os documentos Word forem simples e se não precisar da formatação dos documentos Word para estar presente nos documentos PDF, pode usar um simples laço em torno do código central dos meus programas DOCXtoPDF, para fazer o que quiser. DOCXtoPDF utiliza internamente xtopdf, o meu kit de ferramentas Python para a criação de PDF a partir de muitos outros formatos. Também precisa do ReportLab 1.21 instalado.
Veja: 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 [ http://www.reportlab.com/ftp ]0x3&
Construção de Umar’s answer , aqui está um guião PowerShell modificado que irá:
Como com a Umar, para usar isto:
doc2pdf.ps1
, algures no seu 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($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
Testado com Word 2013 e PowerShell 4.0.