Batch converte documentos do Word em PDFs

34

Como faço para converter em lote muitos documentos do Word e salvá-los como [originalfilename] .pdf?

    
por Kjensen 03.08.2009 / 15:53

12 respostas

24

É assim que eu faria:

  1. Faça o download do escritor do CutePDF
  2. Defina o gravador como sua impressora padrão (você pode alterá-lo novamente mais tarde)
  3. Coloque todos os seus arquivos .doc na mesma pasta
  4. Realce todos os arquivos, clique com o botão direito em Imprimir

A única desvantagem é que você precisa clicar em Ok uma vez para cada arquivo.

    
por 03.08.2009 / 19:35
40

Isso pode estar empurrando-o para o território stackoverflow.com, mas você pode criar scripts no Word 2007 para abrir e salvar um documento como PDF. Isso exige o Office 2007 e o plug-in "Salvar como PDF" -em da Microsoft.

Salve isso em um arquivo 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();
    }
}
    
por 23.08.2009 / 19:35
9

bem, cutepdf & pdf99 faz bem o seu trabalho, mas acho que o PDFcreator é mais apelativo, já que o 'print' é de melhor qualidade que os outros dois, tem também mais opções de configuração , mais é open-source.

    
por 18.09.2009 / 16:41
6

Use o Google Docs como um conversor de PDF em lote por Amit Agarwal

Se você tem um grande pacote de documentos do Word, planilhas do Excel e apresentações do PowerPoint no disco rígido que gostaria de converter em PDF de uma vez sem investir em softwares comerciais como o Adobe Acrobat, experimente o Google Docs.

Embora sempre tenha sido possível converter documentos do Office em PDF usando o Google Docs, o novo recurso de exportação facilita ainda mais a conversão em lote do Microsoft Office e do OpenOffice em PDF (ou HTML) em três etapas simples. Conversão em lote para PDF com o Google Docs

Use o Google Docs como um conversor de PDF em lote

Passo # 1 - Crie uma nova pasta "input" no Google Docs, onde você fará o upload de todos os seus documentos e apresentações convertidos em PDF.

Passo # 2 - Agora selecione a opção Carregar documento no Google Docs, defina a pasta de destino como a que você criou na Etapa 1 e faça upload * de todos os seus documentos.

O Google Docs suporta oficialmente os seguintes formatos de arquivo, embora você também possa enviar imagens:

* Microsoft PowerPoint (.ppt, .pps).
* Microsoft Word (.doc, .docx), OpenDocument (.odt) and StarOffice (.sxw).
* Microsoft Excel (csv, .xls, .xlsx) files and OpenDocument Spreadsheet (.ods).

[*] Você também pode usar a opção de e-mail para enviar documentos para o Google Docs, mas isso colocaria tudo na pasta principal e o gerenciamento de documentos pode se tornar um problema, especialmente quando você tem muitos arquivos.

Etapa 3 - Depois que todos os arquivos forem carregados no Google Docs, abra o painel novamente e selecione a pasta "entrada" na barra lateral direita. Selecione todos os arquivos nesta pasta e escolha "Exportar" em "Mais opções".

Aqui está selecionado "PDF" (ou HTML) como o formato de saída e todos os seus documentos do Word, apresentações, planilhas, etc. serão convertidos instantaneamente em PDF.

E se você estiver convertendo um grande lote de documentos em PDF, não será necessário esperar no navegador para que a conversão seja concluída, pois o Google Docs enviará automaticamente um e-mail assim que o processamento terminar. O e-mail terá um link de onde você pode baixar diretamente todos os arquivos PDF em um grande ZIP.

    
por 05.03.2011 / 14:20
6

Com relação ao script SaveAsPDF.js publicado por um usuário anterior. Isso funcionou para converter um arquivo pdf, mas eu não sabia como converter todos os arquivos em um diretório. Com um pouco de brincadeira criei um arquivo. CovertAll2PDF.bat com as seguintes 2 linhas:

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 /r "PD" %%X in -.... , que passará por todos os diretórios, nesse caso, crie C: \ SaveAsPDF.js e salve Saveaspdf.js nesse diretório.

Tenho certeza que é desajeitado, mas funcionou para mim. espero que isso ajude alguém.

    
por 04.06.2010 / 11:06
5

A resposta do Bobbymcr é bastante interessante e funciona bem com o Word 2010. Ainda assim, há uma melhoria a ser feita. A linha de comando original do Bobbymcr é assim:

cscript.exe //nologo SaveAsPDF.js SomeFolder\MyDocToConvert.doc

Isso não funciona se você tiver associado arquivos .js com algum tipo de editor, como o Notepad ++. Nesse caso, você também deve especificar o mecanismo a ser usado, caso contrário, o cscript mostrará uma mensagem de erro. Isso é facilmente alcançado usando o parâmetro de linha de comando //E:jscript :

cscript.exe //nologo //E:jscript SaveAsPDF.js SomeFolder\MyDocToConvert.doc

    
por 12.07.2012 / 08:54
4

Eu não tentei, mas há um método em lote usando o OpenOffice.org que você poderia testar. Instruções sobre como fazer isso nas plataformas GNU / Linux e Windows descritas em link (e também em link " e, em link ).

O princípio de usar o OpenOffice.org para ler o arquivo .doc e depois exportá-lo como um PDF parece ser bom se você achar que o OpenOffice.org faz um trabalho razoável de abrir os arquivos .doc que você tem.

    
por 03.08.2009 / 16:32
4

Esse pequeno trecho funcionou muito bem para mim.

  • Gratuito
  • Fácil
  • Não há limites no número de arquivos

    $Word=New-Object -ComObject Word.Application
    
    $Files=Get-ChildItem ".\*.docx"
    
    ForEach ($File In $Files) {
        $Document=$Word.Documents.Open($File.FullName)
    
        $Name=($Document.FullName).Replace("docx", "pdf")
    
        $Document.SaveAs([ref] $Name, [ref] 17)
        $Document.Close()
    }
    
    $Word.Close()
    

Basta salvá-lo em um script do PowerShell como Convert-Documents.ps1 e, em seguida, executá-lo na linha de comando na pasta em que todos os documentos de origem estão localizados.

    
por 11.03.2017 / 12:06
0

Converter vários documentos do DOC para PDF no Windows XP usando o JODConverter e o Open Office

Pré-requisitos:

Etapa 1 Faça o download do JODConverter (última versão jodconverter-2.2.2.zip) em

Descompacte o arquivo zip JODConverter em um diretório de sua escolha (D1)

Etapa 2 Inicie o OpenOffice no modo de serviço (mais detalhes aqui )

Crie um arquivo batch start-service.bat 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 X: \ Arquivos de Programas \ OpenOffice.org 3 \ é o diretório onde o Open Office está instalado e o soffice.exe está presente).

Executar start-service.bat (o open office agora é iniciado no modo de serviço e aguarda comandos)

Etapa 3

Colete todos os documentos para serem convertidos em pdf em um diretório (D2)

Crie um arquivo em lote convert.doc que inicialize o JODConverter e emita as instruções de conversão:

convert.bat:

java -jar  "<D1>\lib\jodconverter-cli-2.2.2.jar" -f pdf  *.doc

em que D1 é o diretório JODConverter criado em Etapa 1

(Se JODConverter tiver outro número de versão, atualize convert.bat de acordo)

IMPORTANTE: o arquivo convert.bat deve estar localizado no diretório D2!

Etapa 4:

Execute convert.bat

Para cada arquivo * .doc presente no D2 JODConverter exigirá o Open Office para criar um novo arquivo com o mesmo nome e extensão pdf no mesmo diretório.

    
por 05.03.2011 / 15:38
0

Se os documentos do Word forem simples e você não precisar que a formatação dos documentos do Word esteja presente nos documentos PDF, você pode usar um loop simples ao redor do código principal dos meus programas DOCXtoPDF, para fazer o que quiser. O DOCXtoPDF usa internamente o xtopdf, meu kit de ferramentas Python para criação de PDF a partir de muitos outros formatos. Você também precisa do ReportLab 1.21 instalado.

Veja:

link

link

link

link

    
por 29.01.2015 / 20:14
0

Se você quiser um método online rápido e simples para 20 ou menos arquivos, use este site online2pdf , aqui você pode enviar seus arquivos, escolher algumas opções e, em seguida, clique em converter, ele converterá todos os documentos e depois baixará automaticamente um único arquivo zip contendo os arquivos PDF.

    
por 17.06.2016 / 09:00
0

Aproveitando a resposta do Umar , aqui está um script do PowerShell modificado que:

  • Process DOC, bem como DOCX
  • Mostrar uma barra de progresso enquanto ela funciona

Assim como no Umar, use isto:

  • salve o script abaixo como um arquivo, por exemplo, doc2pdf.ps1 , em algum lugar no seu PATH
  • mude para o diretório que contém seus arquivos doc ou docx
  • executar 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 o Word 2013 e o PowerShell 4.0.

    
por 31.08.2017 / 16:33