Pakietowa konwersja dokumentów Word na pliki PDF

Odpowiedzi:

24

Tak bym to zrobił:

  1. Pobierz program CutePDF
  2. Ustaw program piszący jako drukarkę domyślną (możesz go później zmienić)
  3. Umieść wszystkie pliki .doc w tym samym folderze
  4. Zaznacz wszystkie pliki, kliknij prawym przyciskiem myszy, Drukuj

Jedynym minusem jest to, że musisz kliknąć Ok raz dla każdego pliku.

Travis
źródło
3
Tak właśnie zrobiłem. Musiałem to zrobić trochę inaczej ... Otwieram „Drukarkę” CutePDF z panelu sterowania, więc pokazało, jaka będzie kolejka do drukarki… Potem przeciągnąłem i upuściłem dokumenty w tym oknie - a potem to wszystko waliło na ENTER, aby zaakceptować nazwę pliku stamtąd ... Wszyscy oni nazywali się MICROSOFT WORD - [nazwa pliku] .pdf, ale mogę to łatwo rozwiązać.
Kjensen
Ten sam przepływ pracy można zastosować w PDFCreator ( en.pdfforge.org/pdfcreator ). Jeśli zainstalujesz go jako usługę lub w trybie automatycznym, nie wymaga połączenia, z wyjątkiem opcji wybierz> drukuj.
matt wilkie
1
Jeśli zaznaczę więcej niż 15 plików w systemie Windows, opcja „Drukuj” zniknie z menu kontekstowego po kliknięciu prawym przyciskiem myszy. Właśnie wypróbowałem metodę przeciągania i upuszczania, ale 94 pliki mogą być po prostu za dużo ...
Spacedman
41

Może to popychać go na terytorium stackoverflow.com, ale możesz napisać skrypt w programie Word 2007, aby otworzyć i zapisać dokument jako plik PDF. Wymaga to pakietu Office 2007 i wtyczki „Zapisz jako PDF” firmy Microsoft.

Zapisz to w pliku SaveAsPDF.jsi 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();
    }
}
Bobbymcr
źródło
5
Powyższy kod działa doskonale, ale jako argument przyjmuje tylko jeden plik. Byłem zbyt leniwy, by znaleźć sposób na filtrowanie katalogu w JScript, więc przygotowałem sposób w Powershell, używając inspiracji poniżej: stackoverflow.com/questions/181036/... PS E: \ MyDocuments> ls * .doc | % {cscript // nologo E: \ jssrc \ SaveAsPDF.js $ _}
Aniti
@bbymbymcr Link w odpowiedzi nie działa. Zobacz tutaj, aby SaveAsPDFpobrać aktualne wtyczki.
Peter Vandivier
9

Cóż, cutepdf i pdf99 wykonują swoją pracę dobrze, ale uważam, że PDFcreator jest bardziej atrakcyjny, ponieważ „drukuje w wyższej jakości niż pozostałe dwa, ma też więcej opcji konfiguracji, a także jest open-source.

Tutul
źródło
1
Z PDFCreator można korzystać zgodnie z odpowiedzią kjensen powyżej, jednak chciałem zauważyć, że w opcjach PDFCreator możesz włączyć automatyczne zapisywanie, które automatycznie zapisuje każdy dokument w wybranym katalogu z wybraną nazwą pliku . W ten sposób nie musisz naciskać „enter”, aby sprawdzić, czy chcesz zapisać każdy plik.
6

Używaj Dokumentów Google jako Batch PDF Converter firmy Amit Agarwal

Jeśli masz duży pakiet dokumentów Word, arkuszy kalkulacyjnych Excel i prezentacji PowerPoint na dysku twardym, który chcesz natychmiast przekonwertować na format PDF bez inwestowania w komercyjne oprogramowanie, takie jak Adobe Acrobat, wypróbuj Dokumenty Google.

Chociaż zawsze można było konwertować dokumenty pakietu Office na pliki PDF za pomocą Dokumentów Google, nowa funkcja eksportu ułatwia jeszcze grupową konwersję formatów plików Microsoft Office i OpenOffice na pliki PDF (lub HTML) w trzech prostych krokach. Konwersja wsadowa do formatu PDF za pomocą Dokumentów Google

Używaj Dokumentów Google jako Batch PDF Converter

Krok # 1 - Utwórz nowy folder „wejściowy” w Dokumentach Google, w którym prześlesz wszystkie dokumenty i prezentacje, które mają zostać przekonwertowane na format PDF.

Krok 2 - Teraz wybierz opcję Prześlij dokument w Dokumentach Google, ustaw folder docelowy na folder utworzony w kroku 1 i prześlij * wszystkie dokumenty.

Dokumenty Google oficjalnie obsługują następujące formaty plików, ale 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, aby przesłać dokumenty do Dokumentów Google, ale to wszystko umieściłoby w głównym folderze, dlatego zarządzanie dokumentami może stać się problemem, szczególnie gdy masz zbyt wiele plików.

Krok # 3 - Po przesłaniu wszystkich plików do Dokumentów Google ponownie otwórz pulpit nawigacyjny i wybierz folder „wejściowy” z prawego paska bocznego. Wybierz wszystkie pliki w tym folderze i wybierz „Eksportuj” w „Więcej opcji”.

Tutaj wybierz „PDF” (lub HTML) jako format wyjściowy, a wszystkie dokumenty Word, prezentacje, arkusze kalkulacyjne itp. Zostaną natychmiast przekonwertowane na format PDF.

A jeśli konwertujesz dużą partię dokumentów do formatu PDF, nie musisz czekać w przeglądarce na zakończenie konwersji, ponieważ Dokumenty Google automatycznie wyślą Ci wiadomość e-mail po zakończeniu przetwarzania. Wiadomość e-mail będzie zawierać link, z którego można bezpośrednio pobrać wszystkie pliki PDF w jednym dużym pliku ZIP.

Adrian
źródło
1
Przygotuj się na znaczne zniekształcenie dowolnego dokumentu zawierającego tabele, obrazy, rzadziej używane czcionki. Nie zagłębiłem się w to dalej, ale wypróbowałem dokument słowny z papierem firmowym zbudowanym ze stołu zawierającego tekst i wykres, używając czcionki Calibri. Plik PDF nie był taki jak oryginał.
rossmcm
Ta metoda pochodzi z 2009 roku i niestety wydaje się, że została usunięta (pojedyncze pliki można wyeksportować jako pdf, ale foldery nie ...)
Joe
6

Odpowiedź Bobbymcr jest dość interesująca i działa dobrze w programie Word 2010. Nadal jednak jest coś do zrobienia. Oryginalny wiersz poleceń Bobbymcr wygląda następująco:

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

To nie działa, jeśli masz skojarzone pliki .js z jakimś edytorem, takim jak Notepad ++. W takim przypadku musisz także określić silnik, którego chcesz użyć, w przeciwnym razie cscript wyświetli komunikat o błędzie. Można to łatwo osiągnąć za pomocą //E:jscriptparametru wiersza polecenia:

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

JC2k8
źródło
6

Odnośnie skryptu SaveAsPDF.js opublikowanego przez poprzedniego użytkownika. Działa to w przypadku konwersji jednego pliku pdf, ale nie wiedziałem, jak ukryć 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"

istnieje również taki, /r "Parent Directory"który można wstawić, ponieważ /r "PD" %%X in -....będzie on przechodził przez wszystkie katalogi, w takim przypadku należy ustawić C: \ SaveAsPDF.js i zapisać Saveaspdf.js w tym katalogu.

Jestem pewien, że jest niezdarny, ale zadziałał dla mnie. mam nadzieję, że to komuś pomoże.

Fallensoul
źródło
4

Nie próbowałem tego, ale istnieje metoda wsadowa przy użyciu OpenOffice.org, którą można przetestować. Instrukcje, jak to zrobić na platformach GNU / Linux i Windows, opisane na stroniehttp://www.tech-faq.com/convert-word-to-pdf.shtml (a także na stroniehttp://www.togaware.com/linux/survivor/Convert_MS_Word.html ”orazhttp://www.oooforum.org/forum/viewtopic.phtml?t=3772 ).

Zasada użycia OpenOffice.org do odczytu pliku .doc, a następnie wyeksportowania go jako pliku PDF wydaje się rozsądna, jeśli okaże się, że OpenOffice.org czyni rozsądne zadanie otwierania posiadanych plików .doc.

mas
źródło
1
Korzystanie z OpenOffice.org da klikalny spis treści i tak dalej. Żadne rozwiązanie „Drukuj do PDF” nie. Zobacz superuser.com/questions/568/how-to-print-documents-to-pdf/…
Arjan,
+1 dla wirtualnych drukarek pdf. Są świetne, chciałbym, żeby były domyślnie dostępne w każdym systemie operacyjnym.
Manu,
4

Ten mały fragment działał dla mnie bardzo dobrze.

  • Wolny
  • Łatwy
  • Brak ograniczeń liczby plików

    $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()
    

Po prostu zapisz go w skrypcie PowerShell, takim jak, Convert-Documents.ps1a następnie uruchom z wiersza poleceń z folderu, w którym znajdują się wszystkie dokumenty źródłowe.

Umar Farooq Khawaja
źródło
W mojej odpowiedzi dokonano edycji @cxw, która usunęła znaczną część mojej odpowiedzi, a mianowicie fakt, że skrypt jest freei może przetwarzać i unlimitedliczbę plików. Dlatego wycofałem edycję, ale włączyłem poprawkę składniową sugerowaną w edycji.
Umar Farooq Khawaja
To działało dla mnie pod Windows 7, gdy zabrałem [ref]polecenia i ostatnią linię ( $Word.Close()). W przeciwnym razie wystąpiły błędy.
loved.by.Jesus
0

Konwertowanie wielu dokumentów z DOC na PDF w Windows XP za pomocą JODConverter i Open Office

Wymagania wstępne:


Krok 1 Pobierz JODConverter (najnowsza wersja jodconverter-2.2.2.zip) z

Rozpakuj plik zip JODConverter w wybranym 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 treś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 plik soffice.exe).

Uruchom start-service.bat (otwarte biuro jest teraz uruchomione w trybie serwisowym i oczekuje na polecenia)


Krok 3

Zbierz wszystkie dokumenty do konwersji na pdf w katalogu (D2)

Utwórz plik wsadowy convert.doc, który uruchamia JODConverter i wydaj 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:

Uruchom program 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.

Adrian
źródło
0

Jeśli dokumenty Word są proste i jeśli nie potrzebujesz formatowania dokumentów Word w dokumentach PDF, możesz użyć prostej pętli wokół podstawowego kodu moich programów DOCXtoPDF, aby zrobić to, co chcesz. DOCXtoPDF wewnętrznie korzysta z xtopdf, mojego zestawu narzędzi Python do tworzenia plików PDF z wielu innych formatów. Musisz także zainstalować ReportLab 1.21.

Widzieć:

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

Vasudev Ram
źródło
0

Jeśli chcesz szybką i prostą metodę online dla 20 lub mniej plików, skorzystaj z tej witryny online2pdf , tutaj możesz przesłać swoje pliki, wybrać niektóre opcje, a następnie kliknąć przycisk konwertuj, spowoduje to konwersję wszystkich dokumentów, a następnie automatyczne pobranie pojedynczego pliku zip zawierającego pliki PDF.

Ghos3t
źródło
0

Opierając się na odpowiedzi Umara , oto zmodyfikowany skrypt PowerShell, który:

  • Przetwarzaj DOC oraz DOCX
  • Pokaż pasek postępu, gdy działa

Podobnie jak w przypadku Umara, użyj tego:

  • zapisz poniższy skrypt jako plik, np. doc2pdf.ps1gdzieś w swoimPATH
  • przejdź do katalogu zawierającego pliki doc lub docx
  • biegać 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 programem Word 2013 i PowerShell 4.0.

cxw
źródło