Batch-conversie van Word-documenten naar PDF's
Hoe kan ik batchgewijs veel Word-documenten converteren en ze laten opslaan als [originalfilename].pdf?
Hoe kan ik batchgewijs veel Word-documenten converteren en ze laten opslaan als [originalfilename].pdf?
Dit gaat misschien te ver voor stackoverflow.com, maar je kunt Word 2007 scripten om een document te openen en op te slaan als PDF. Dit vereist Office 2007 en de “Opslaan als PDF” plug-in van Microsoft.
Sla dit op in een bestand SaveAsPDF.js
en voer het uit vanaf de opdrachtregel met 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();
}
}
Dit is hoe ik het zou doen:
Het enige nadeel is dat je voor elk bestand één keer Ok moet klikken.
wel, cutepdf & pdf99 doen hun werk goed, maar ik vind PDFcreator aantrekkelijker omdat het ‘print'in hogere kwaliteit dan de andere twee, het heeft ook meer configuratie opties, plus het is open-source.
Use Google Docs as a Batch PDF Converter by Amit Agarwal
Als je een enorme bundel Word-documenten, Excel Spreadsheets en PowerPoint Presentaties op je harde schijf die je zou willen om te zetten in PDF in een keer, zonder te investeren in commerciële software zoals Adobe Acrobat, probeer dan Google Docs.
Hoewel het altijd al mogelijk was om Office-documenten naar PDF te converteren met Google Docs, maakt de nieuwe exportfunctie het nog gemakkelijker voor u om Microsoft Office- en OpenOffice-bestandsindelingen in batch te converteren naar PDF (of HTML) in drie eenvoudige stappen. Batch-conversie naar PDF met Google Docs
Gebruik Google Docs als een Batch PDF Converter
Stap #1 - Maak een nieuwe “input” map in Google Docs waar u al uw documenten en presentaties die moeten worden omgezet in PDF te uploaden.
Stap #2 - Selecteer nu de Upload Document optie in Google Docs, stel de doelmap in op degene die je hebt gemaakt in Stap #1 en upload* al je documenten.
Google Docs ondersteunt officieel de volgende bestandsformaten, maar je mag ook afbeeldingen uploaden:
* Microsoft PowerPoint (.ppt, .pps).
* Microsoft Word (.doc, .docx), OpenDocument (.odt) and StarOffice (.sxw).
* Microsoft Excel (csv, .xls, .xlsx) files and OpenDocument Spreadsheet (.ods).
[*] Je kunt ook de e-mailoptie gebruiken om documenten naar Google Docs te uploaden, maar dat zou alles in de hoofdmap zetten en het beheren van documenten kan daardoor een probleem worden, vooral als je te veel bestanden hebt.
Stap #3 - Zodra alle bestanden geüpload zijn naar Google Docs, open je het dashboard opnieuw en selecteer je de “input” map in de rechter zijbalk. Selecteer alle bestanden in deze map en kies “Exporteren” onder “Meer Opties”.
Kies hier “PDF” (of HTML) als uitvoerformaat en al je Word-documenten, presentaties, spreadsheets, enz. worden meteen in PDF omgezet. 0x2 & 0x2 & En als je het omzetten van een grote partij documenten in PDF, je hoeft niet te wachten in de browser voor de conversie te voltooien als Google Docs stuurt u automatisch een e-mail zodra de verwerking voorbij is. De e-mail zal een link bevatten van waaruit u direct kunt downloaden van alle PDF-bestanden in een grote ZIP.
Betreffende het SaveAsPDF.js script dat een vorige gebruiker postte. Dit werkte voor het converteren van één pdf-bestand, maar ik wist niet hoe ik alle bestanden in een map moest converteren. Met een beetje spelen heb ik een bestand gemaakt. CovertAll2PDF.bat met de volgende 2 regels:
echo off
for %%X in (*.doc) do cscript.exe //nologo SaveAsPDF.js "%%X"
er is ook de /r "Parent Directory"
die kan worden ingevoegd als voor /r "PD" %%X in -....
die door alle directories zal gaan, in dat geval maak je er C:\SaveAsPDF.js van en sla je Saveaspdf.js op in die directory.
Ik ben er zeker van dat het onhandig is, maar het werkte voor mij. hoop dat dit iemand helpt.
Bobbymcr’s antwoord is vrij interessant en werkt goed met Word 2010. Toch is er een verbetering aan te brengen. Bobbymcr’s originele opdrachtregel ziet er als volgt uit:
cscript.exe //nologo SaveAsPDF.js SomeFolder\MyDocToConvert.doc
Dit werkt niet als je .js bestanden hebt geassocieerd met een soort editor zoals Notepad++. In dit geval moet je ook de te gebruiken engine opgeven, anders geeft cscript een foutmelding. Dit is eenvoudig te bereiken door de opdrachtregel parameter //E:jscript
te gebruiken:
cscript.exe //nologo //E:jscript SaveAsPDF.js SomeFolder\MyDocToConvert.doc
Dit kleine knipsel werkte heel goed voor mij.
Sla het gewoon op in een PowerShell script zoals Convert-Documents.ps1
en voer het dan uit vanaf de command line vanuit de map waar al je brondocumenten staan.
Ik heb het niet geprobeerd, maar er is een batchmethode met OpenOffice.org die u zou kunnen testen. Instructies om dit op GNU/Linux en Windows platforms te doen worden beschreven op http://www.tech-faq.com/convert-word-to-pdf.shtml (en ook op http://www.togaware.com/linux/survivor/Convert_MS_Word.html “ en, op http://www.oooforum.org/forum/viewtopic.phtml?t=3772 ).
Het principe om OpenOffice.org te gebruiken om het .doc bestand in te lezen en het dan als een PDF te exporteren lijkt goed als je vindt dat OpenOffice.org redelijk werk levert bij het openen van de .doc bestanden die je hebt.
Een iets eenvoudiger alternatief in vergelijking met de Powershell, Batch, en Windows Script Host scripts hierboven is de docx2pdf
tool die zowel op Windows als MacOS werkt: https://github.com/AlJohri/docx2pdf/
Vergelijkbaar met andere antwoorden, gebruikt deze aanpak win32com in Windows en JXA (Javscript for Automation, in principe AppleScript in JS) in macOS. Het is echter verpakt in een gemakkelijk installeerbaar en klaar om batch-conversiepakket met een voortgangsbalk.
Installeren:
pip install docx2pdf
Run:
docx2pdf myFolderOfWordDocs
Disclaimer: Ik schreef deze tool na worstelen om een cross-platform oplossing voor batch-conversie docx naar pdf te vinden met nul opmaak problemen, omdat het direct gebruikt Microsoft Word.
Meerdere documenten van DOC naar PDF converteren op Windows XP met JODConverter en Open Office
Vereisten:
Stap 1 Download JODConverter (laatste versie jodconverter-2. 2.2.zip) van
Pak het JODConverter zip bestand uit in een directory naar keuze (D1)
Step 2 Start OpenOffice in service mode (meer details hier )
Maak een batch bestand start-service.bat met de volgende inhoud:
start-service.bat:
X:\Program Files\OpenOffice.org 3\program\soffice.exe -headless
-accept="socket,host=127.0.0.1,port=8100;urp;" –nofirststartwizard
::als dat niet werkt, probeer dan deze laatste parameter(-nofirststartwizard) te verwijderen
(aangenomen dat X:Program Files\OpenOffice.org 3:de directory is waar Open Office is geïnstalleerd en soffice.exe aanwezig is).
Run start-service.bat (Open Office is nu in servicemodus gestart en wacht op opdrachten)
Stap 3
Verzamel alle documenten die naar pdf geconverteerd moeten worden in een directory (D2)
Maak een batchbestand convert.doc dat JODConverter start met en de conversie-instructies geeft:
convert.bat:
java -jar "<D1>\lib\jodconverter-cli-2.2.2.jar" -f pdf *.doc
waarbij D1 de JODConverter directory is die in Stap 1 is gemaakt
(Als JODConverter een ander versienummer heeft, pas dan convert.bat dienovereenkomstig aan)
BELANGRIJK: het bestand convert.bat moet zich in de directory D2 bevinden !
Stap 4:
Run convert.bat
Voor elk .doc-bestand dat in D2 aanwezig is, zal JODConverter Open Office vragen een nieuw bestand met dezelfde naam en pdf-extensie in dezelfde directory aan te maken.
Als u een snelle en eenvoudige online methode voor 20 of minder bestanden wilt, gebruik dan deze website online2pdf , hier kunt u uw bestanden uploaden, een aantal opties kiezen en vervolgens op converteren klikken, het zal alle documenten converteren en vervolgens automatisch een enkel zip-bestand downloaden dat de PDF-bestanden bevat.
Als de Word-docs eenvoudig zijn en als de opmaak van de Word-docs niet aanwezig hoeft te zijn in de PDF-docs, kun je een eenvoudige lus gebruiken rond de kerncode van mijn DOCXtoPDF-programma’s, om te doen wat je wilt. DOCXtoPDF gebruikt intern xtopdf, mijn Python toolkit voor het maken van PDF’s vanuit vele andere formaten. Je moet ook ReportLab 1.21 geïnstalleerd hebben.
Zie: 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
Voortbouwend op Umar’s antwoord , hier is een gewijzigd PowerShell script dat:
Net als bij Umar’s, om dit te gebruiken:
doc2pdf.ps1
, ergens in je 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
getest met Word 2013 en PowerShell 4.0.