Wsadowa konwersja dokumentów Word do plików PDF
Jak mogę wsadowo przekonwertować wiele dokumentów Worda i zapisać je jako [originalfilename].pdf?
Jak mogę wsadowo przekonwertować wiele dokumentów Worda i zapisać je jako [originalfilename].pdf?
To może być popychanie go do terytorium stackoverflow.com, ale możesz skryptować Word 2007, aby otworzyć i zapisać dokument jako PDF. Wymaga to Office 2007 i wtyczki “Zapisz jako PDF” od Microsoftu.
Zapisz to do pliku SaveAsPDF.js
i uruchom z wiersza poleceń, używając 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();
}
}
```.
Oto jak ja bym to zrobił:
Jedynym minusem jest to, że musisz kliknąć Ok raz dla każdego pliku.
cóż, cutepdf i pdf99 dobrze wykonują swoją pracę, ale uważam, że PDFcreator jest bardziej atrakcyjny, ponieważ ‘drukuje’ w wyższej jakości niż pozostałe dwa, ma również więcej opcji konfiguracji, plus jest open-source.
Użyj Dokumentów Google jako wsadowego konwertera PDF ](http://www.labnol.org/internet/batch-pdf-converter/10796/)by Amit Agarwal
Jeśli masz na dysku twardym ogromny zestaw dokumentów Worda, arkuszy Excela i prezentacji PowerPointa, które chciałbyś od razu przekonwertować do formatu PDF bez inwestowania w komercyjne oprogramowanie, takie jak Adobe Acrobat, wypróbuj Dokumenty Google.
Choć konwersja dokumentów Office do PDF za pomocą Google Docs zawsze była możliwa, nowa funkcja eksportu jeszcze bardziej ułatwia wsadową konwersję formatów plików Microsoft Office i OpenOffice do PDF (lub HTML) w trzech prostych krokach. Wsadowa konwersja do PDF za pomocą Google Docs
Użyj Google Docs jako wsadowego konwertera PDF
Krok 1 - Utwórz nowy folder “input” w Google Docs, do którego wrzucisz wszystkie dokumenty i prezentacje przeznaczone do konwersji do PDF.
Krok #2 - Teraz wybierz opcję Prześlij dokument w Google Docs, ustaw folder docelowy na ten, który utworzyłeś w kroku #1 i prześlij wszystkie swoje dokumenty.
Google Docs oficjalnie obsługuje następujące formaty plików, choć możesz również przesyłać obrazy:
* Microsoft PowerPoint (.ppt, .pps).
* Microsoft Word (.doc, .docx), OpenDocument (.odt) and StarOffice (.sxw).
* Microsoft Excel (csv, .xls, .xlsx) files and OpenDocument Spreadsheet (.ods).
[] Możesz również użyć opcji e-mail do przesłania dokumentów do Google Docs, ale to umieściłoby wszystko w głównym folderze i zarządzanie dokumentami może stać się problemem, zwłaszcza gdy masz zbyt wiele plików.
Krok 3 - Kiedy wszystkie pliki zostaną przesłane do Google Docs, otwórz ponownie pulpit nawigacyjny i wybierz folder “input” z prawego paska bocznego. Zaznacz wszystkie pliki w tym folderze i wybierz “Eksportuj” pod “Więcej opcji”.
Tutaj wybierz “PDF” (lub HTML) jako format wyjściowy, a wszystkie Twoje dokumenty Word, prezentacje, arkusze kalkulacyjne itp. zostaną natychmiast przekonwertowane na PDF.
A jeśli konwertujesz dużą partię dokumentów do PDF, nie musisz czekać w przeglądarce na zakończenie konwersji, ponieważ Dokumenty Google automatycznie wyślą ci e-mail po zakończeniu przetwarzania. Wiadomość będzie zawierała link, z którego można bezpośrednio pobrać wszystkie pliki PDF w jednym dużym pliku ZIP.
Odnośnie skryptu SaveAsPDF.js, który zamieścił poprzedni użytkownik. To działało dla konwersji jednego pliku pdf, ale nie wiedziałem, jak przekonwertować wszystkie pliki w katalogu. Przy odrobinie zabawy stworzyłem plik. CovertAll2PDF.bat z następującymi 2 liniami:
echo off
for %%X in (*.doc) do cscript.exe //nologo SaveAsPDF.js "%%X"
jest też /r "Parent Directory"
które można wstawić jak dla /r "PD" %%X in -....
które przejdzie przez wszystkie katalogi, w tym przypadku zrób to C:SaveAsPDF.js i zapisz Saveaspdf.js w tym katalogu.
Jestem pewien, że to niezgrabne, ale zadziałało dla mnie. mam nadzieję, że to komuś pomoże.
Odpowiedź Bobbymcr jest całkiem interesująca i działa dobrze z Wordem 2010. Wciąż jednak można coś poprawić. Oryginalna linia poleceń Bobbymcr'a wygląda tak:
cscript.exe //nologo SaveAsPDF.js SomeFolder\MyDocToConvert.doc
To nie działa, jeśli skojarzyłeś pliki .js z jakimś edytorem, takim jak Notepad++. W tym przypadku musisz również określić silnik, który ma zostać użyty, w przeciwnym razie cscript wyświetli komunikat o błędzie. Można to łatwo osiągnąć za pomocą parametru linii poleceń //E:jscript
:
cscript.exe //nologo //E:jscript SaveAsPDF.js SomeFolder\MyDocToConvert.doc
Ten mały snippet działał dla mnie bardzo dobrze.
Po prostu zapisz go do skryptu PowerShell jak Convert-Documents.ps1
a następnie uruchom go z linii poleceń z folderu, w którym znajdują się wszystkie Twoje dokumenty źródłowe.
Nie próbowałem tego, ale istnieje metoda wsadowa wykorzystująca OpenOffice.org, którą mógłbyś przetestować. Instrukcje jak to zrobić na platformach GNU/Linux i Windows są opisane na stronie http://www.tech-faq.com/convert-word-to-pdf.shtml (a także na stronie http://www.togaware.com/linux/survivor/Convert_MS\Word.html “ oraz na stronie http://www.oooforum.org/forum/viewtopic.phtml?t=3772 ).
Zasada używania OpenOffice.org do wczytania pliku .doc, a następnie wyeksportowania go jako PDF wydaje się rozsądna, jeśli okaże się, że OpenOffice.org dobrze radzi sobie z otwieraniem plików .doc, które posiadasz.
Nieco łatwiejszą alternatywą w porównaniu do Powershell, Batch i skryptów Windows Script Host powyżej jest narzędzie docx2pdf
, które działa zarówno w systemie Windows, jak i MacOS: https://github.com/AlJohri/docx2pdf/
Podobnie jak inne odpowiedzi, to podejście wykorzystuje win32com w systemie Windows i JXA (Javscript for Automation, w zasadzie AppleScript w JS) w macOS. Jednak jest on spakowany w łatwy do zainstalowania i gotowy do wsadowej konwersji pakiet z paskiem postępu.
Instaluj:
pip install docx2pdf
Uruchom:
docx2pdf myFolderOfWordDocs
Zastrzeżenie: Napisałem to narzędzie po tym, jak zmagałem się ze znalezieniem wieloplatformowego rozwiązania do wsadowej konwersji docx do pdf z zerowymi problemami z formatowaniem, ponieważ bezpośrednio korzysta z Microsoft Word.
Konwersja wielu dokumentów z DOC do PDF w Windows XP przy użyciu JODConverter i Open Office
Wymagania wstępne:
Krok 1 Pobierz JODConverter (najnowsza wersja jodconverter-2. 2.2.zip) ze strony
Rozpakuj plik zip JODConvertera w wybranym przez siebie katalogu (D1)
Krok 2 Uruchom OpenOffice w trybie serwisowym (więcej szczegółów tutaj )
Utwórz plik wsadowy start-service.bat o następującej zawartości:
start-service.bat:
X:\Program Files\OpenOffice.org 3\program\soffice.exe -headless
-accept="socket,host=127.0.0.1,port=8100;urp;" –nofirststartwizard
::jeśli nie działa spróbuj usunąć ten ostatni parametr(-nofirststartwizard)
(zakładając, że X:\Program Files\OpenOffice.org 3\ jest katalogiem, w którym zainstalowany jest Open Office i obecny jest soffice.exe).
Run start-service.bat (open office jest teraz uruchomiony w trybie serwisowym i oczekuje na polecenia)
Krok 3
Zbierz wszystkie dokumenty do konwersji do pdf w katalogu (D2)
Utwórz plik wsadowy convert.doc, który uruchamia JODConverter i wydaje instrukcje konwersji:
convert.bat:
java -jar "<D1>\lib\jodconverter-cli-2.2.2.jar" -f pdf *.doc
gdzie D1 to katalog JODConverter utworzony w Kroku 1
(Jeśli JODConverter ma inny numer wersji, zaktualizuj odpowiednio convert.bat)
WAŻNE: plik convert.bat musi znajdować się w katalogu D2 !
Krok 4:
Run convert.bat
Dla każdego pliku .doc obecnego w D2 JODConverter będzie wymagał od Open Office utworzenia nowego pliku o tej samej nazwie i rozszerzeniu pdf w tym samym katalogu.
Jeśli chcesz szybkiej i prostej metody online dla 20 lub mniej plików, a następnie użyć tej strony online2pdf , tutaj można przesłać pliki, wybrać kilka opcji, a następnie kliknij przycisk konwertować, będzie konwertować wszystkie dokumenty, a następnie automatycznie pobrać pojedynczy plik zip zawierający pliki PDF.
Jeśli dokumenty Worda są proste i jeśli nie potrzebujesz, aby formatowanie dokumentów Worda było obecne w dokumentach PDF, możesz użyć prostej pętli wokół głównego kodu mojego programu DOCXtoPDF, aby zrobić to, co chcesz. DOCXtoPDF wewnętrznie używa xtopdf, mojego zestawu narzędzi Pythona do tworzenia plików PDF z wielu innych formatów. Potrzebny jest także zainstalowany ReportLab 1.21.
Zobacz: 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
Opierając się na Odpowiedź Umara , oto zmodyfikowany skrypt PowerShell, który będzie:
Podobnie jak w przypadku Umar’s, aby użyć tego:
doc2pdf.ps1
, gdzieś w swoim komputerze 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
Testowane z Wordem 2013 i PowerShellem 4.0.