Пакетне перетворення документів Word у PDF


Відповіді:


24

Ось як я це зробив би:

  1. Завантажити CutePDF Writer
  2. Встановіть сценарій як принтер за замовчуванням (його можна змінити пізніше)
  3. Помістіть усі ваші .doc файли в одну папку
  4. Виділіть усі файли правою кнопкою миші та Друк

Єдиним недоліком є ​​те, що вам потрібно один раз натиснути Ок для кожного файлу.


3
Це те, що я насправді робив. Я повинен був зробити це трохи інакше, хоча ... Я відкрив "Принтер" CutePDF з панелі управління, щоб він показав, що буде черга принтера ... Потім я перетягнув і відкинув документи у це вікно - а потім це все стукало ENTER, щоб прийняти звідти ім'я файлу ... Всі вони були названі МІКРОСОФТ СЛОВО - [ім'я файлу] .pdf, але я можу це легко вирішити.
— Kjensen

Цей же робочий процес можна використовувати з PDFCreator ( en.pdfforge.org/pdfcreator ). Якщо ви встановите його як сервіс або в автоматичному режимі, він видається за винятком вибору> print.
— matt wilkie

1
Якщо я виділяю більше 15 файлів у Windows, опція "Друк" зникає з контекстного меню правою кнопкою миші. Я щойно спробував метод перетягування, але 94 файли можуть бути занадто багато для нього ...
— Spacedman

41

Це може підштовхнути його до території stackoverflow.com, але ви можете скриптувати Word 2007, щоб відкрити та зберегти документ у форматі PDF. Для цього потрібен Office 2007 та плагін "Зберегти як PDF" від Microsoft.

Збережіть це у файлі SaveAsPDF.jsта запустіть його з командного рядка, використовуючи 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();
    }
}

5
Вищевказаний код працює чудово, але він бере лише один файл як аргумент. Мені було занадто лінь шукати спосіб фільтрації каталогу в JScript, тому я підготував спосіб у Powershell, використовуючи нижчу посаду як натхнення: stackoverflow.com/questions/181036/… PS E: \ MyDocuments> ls * .doc | % {cscript // nologo E: \ jssrc \ SaveAsPDF.js $ _}
— Аніті

@bobbymcr Посилання у відповідь мертва. Дивіться тут для SaveAsPDFзавантаження поточного плагіна.
— Пітер Вандів'є

9

добре, cutepdf та pdf99 роблять свою роботу добре, але я вважаю PDFcreator більш привабливим, оскільки він друкує більш високу якість, ніж інші два, він також має більше варіантів конфігурації, плюс це відкритий код.


1
PDFCreator можна використовувати так, як відповів kjensen вище, однак, я хотів би зазначити, що в параметрах PDFCreator можна включити автоматичне збереження, яке автоматично збереже кожен документ у вибраному вами каталозі з обраним іменем файлу. . Таким чином, вам не потрібно натискати "Enter", щоб підтвердити, що ви хочете зберегти кожен файл.

6

Використовуйте Google Документи як пакетний PDF Converter від Amit Agarwal

Якщо на вашому жорсткому диску є величезна група документів Word, електронних таблиць Excel та презентацій PowerPoint, які ви хочете одразу перетворити в PDF, не вкладаючи в комерційне програмне забезпечення, наприклад Adobe Acrobat, спробуйте Google Docs.

Хоча завжди можна було конвертувати документи Office у PDF за допомогою Документів Google, нова функція експорту полегшує вам пакетне перетворення форматів файлів Microsoft Office та OpenOffice у PDF (або HTML) у три простих кроки. Пакетне перетворення в PDF за допомогою Документів Google

Використовуйте Google Документи як пакетний конвертер PDF

Крок №1. Створіть нову папку "введення" в Документах Google, куди ви завантажуєте всі свої документи та презентації, які потрібно перетворити в PDF.

Крок №2. Тепер виберіть параметр "Завантажити документ" у Документах Google, встановіть цільову папку на ту, яку ви створили на кроці №1, і завантажте * всі свої документи.

Google Docs офіційно підтримує такі формати файлів, хоча ви також можете завантажувати зображення:

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

[*] Ви також можете скористатися опцією електронної пошти для завантаження документів у Google Документи, але це покладе все на головну папку, а керування документами може стати проблемою, особливо якщо у вас занадто багато файлів.

Крок №3. Після завантаження всіх файлів на Google Документи відкрийте панель приладів знову та виберіть папку "введення" на правій бічній панелі. Виберіть усі файли в цій папці та виберіть "Експорт" у розділі "Додаткові параметри".

Тут виберіть "PDF" (або HTML) як вихідний формат, і всі ваші Word документи, презентації, електронні таблиці тощо будуть негайно перетворені в PDF.

Якщо ви перетворюєте велику партію документів у PDF, вам не доведеться чекати у веб-переглядачі, коли конверсія завершиться, оскільки документи Google автоматично відправлять вам електронний лист, коли обробка закінчиться. Електронний лист матиме посилання, звідки ви можете безпосередньо завантажити всі файли PDF в одному великому ZIP.


1
Будьте готові до значного керування будь-яким документом, який містить таблиці, зображення, менш поширені шрифти. Я не заглиблювався в нього далі, але спробував слово слово з бланками, побудованими з таблиці, що містить текст і графік, і використовуючи шрифт Calibri. PDF не був схожим на оригінал.
— rossmcm

Цей метод спочатку з 2009 року, але, на жаль, видалено (окремі файли можна експортувати у форматі PDF, але папки немає ...)
— Джо

6

Відповідь Bobbymcr є досить цікавою і добре працює з Word 2010. Але все-таки слід покращити. Оригінальний командний рядок Bobbymcr виглядає так:

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

Це не працює, якщо ви пов’язали файли .js з таким редактором, як Notepad ++. У цьому випадку вам також потрібно вказати двигун, який слід використовувати, інакше cscript покаже вам повідомлення про помилку. Це легко досягти за допомогою параметра //E:jscriptкомандного рядка:

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


6

Стосовно сценарію SaveAsPDF.js, який публікував попередній користувач. Це працювало для перетворення одного pdf-файлу, але я не знав, як приховати всі файли в каталозі. Трохи граючи я створив файл. CovertAll2PDF.bat із наступними 2 рядками:

echo off
for %%X in (*.doc) do cscript.exe //nologo SaveAsPDF.js "%%X"

є також те, /r "Parent Directory"що можна вставити, як для /r "PD" %%X in -....цього буде проходити всі каталоги, в цьому випадку зробіть це C: \ SaveAsPDF.js і збережіть Saveaspdf.js у цьому каталозі.

Я впевнений, що це незграбно, але він працював на мене. сподіваюся, що це комусь допоможе.


4

Я не пробував цього, але є пакетний метод, що використовує OpenOffice.org, який ви можете протестувати. Інструкції щодо цього на платформах GNU / Linux та Windows, описаних наhttp://www.tech-faq.com/convert-word-to-pdf.shtml (а також наhttp://www.togaware.com/linux/survivor/Convert_MS_Word.html "та, за адресоюhttp://www.oooforum.org/forum/viewtopic.phtml?t=3772 ).

Принцип використання OpenOffice.org для читання у файлі .doc, а потім його експортування у форматі PDF здається здоровим, якщо ви знайдете, що OpenOffice.org робить обласною завдання відкриття файлів .doc, які у вас є.


1
Використання OpenOffice.org надасть вам вміст, що можна натискати, і так далі. Будь-яке рішення "Друк у PDF" не буде. Дивіться superuser.com/questions/568/how-to-print-documents-to-pdf/…
— Арджан

+1 для віртуальних принтерів PDF. Ці чудові, я б хотів, щоб вони були доступні за замовчуванням на будь-якій ОС.
— Ману

4

Цей маленький фрагмент працював для мене дуже добре.

  • Безкоштовно
  • Легко
  • Немає обмежень щодо кількості файлів

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

Просто збережіть його як сценарій PowerShell, Convert-Documents.ps1а потім запустіть його з командного рядка з папки, де знаходяться всі ваші вихідні документи.


Моя відповідь була зроблена редакцією @cxw, яка видалила значну частину моєї відповіді, а саме те, що сценарій є freeта може обробляти та unlimitedкількість файлів. Як таке, я відмовив редагування, але включив запропонований у редакцію синтаксис-виправлення.
— Umar Farooq Khawaja

Це працювало для мене під Windows 7, коли я знімав [ref]команди та останній рядок ( $Word.Close()). Інакше з’явились помилки.
— loved.by.Ісус

0

Перетворення декількох документів з DOC в PDF на Windows XP за допомогою JODConverter та Open Office

Передумови:


Крок 1 Завантажте JODConverter (остання версія jodconverter-2.2.2.zip) з

Видаліть ZIP-файл JODConverter у вибраному каталозі (D1)


Крок 2 Запустіть OpenOffice в сервісному режимі (детальніше тут )

Створіть пакетний файл start-service.bat із наступним вмістом:

start-service.bat:

X:\Program Files\OpenOffice.org 3\program\soffice.exe -headless
-accept="socket,host=127.0.0.1,port=8100;urp;" –nofirststartwizard

:: якщо не працює, спробуйте видалити цей останній параметр (–nofirststartwizard)

(припустимо, що X: \ Program Files \ OpenOffice.org 3 \ - це каталог, де встановлено Open Office і присутній soffice.exe).

Запустіть start-service.bat (відкритий офіс зараз запущений у сервісному режимі та очікування команд)


Крок 3

Зберіть усі документи, які потрібно перетворити в pdf, у каталог (D2)

Створіть пакетний файл convert.doc, який запускає JODConverter і видайте інструкції з перетворення:

convert.bat:

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

де D1 - каталог JODConverter, створений на етапі 1

(Якщо JODConverter має інший номер версії, оновіть convert.bat відповідно)

ВАЖЛИВО: файл convert.bat повинен знаходитися в каталозі D2!


Крок 4:

Запустіть convert.bat

Для кожного * .doc-файлу, присутнього в D2, JODConverter вимагатиме від Open Office створити новий файл з тим самим іменем та розширенням pdf у тому самому каталозі.


0

Якщо документи Word є простими, і якщо вам не потрібно форматування Word Word, щоб вони були присутніми в документах PDF, ви можете використовувати просту петлю навколо основного коду моїх програм DOCXtoPDF, щоб робити те, що ви хочете. DOCXtoPDF використовує внутрішньо xtopdf, мій інструментарій Python для створення PDF з багатьох інших форматів. Вам також потрібно встановити ReportLab 1.21.

Побачити:

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


0

Якщо ви хочете швидкий і простий онлайн-метод для 20 і менше файлів, то використовуйте цей веб-сайт online2pdf , тут ви можете завантажити свої файли, вибрати деякі параметри, а потім натиснути конвертувати, він перетворить усі документи, а потім автоматично завантажить один поштовий файл, що містить PDF-файли.


0

Виходячи з відповіді Умара , ось модифікований сценарій PowerShell, який буде:

  • Процес DOC, а також DOCX
  • Показати панель прогресу, як це працює

Як і у Umar's, використовувати це:

  • збережіть наведений нижче сценарій як файл, наприклад doc2pdf.ps1, десь у вашомуPATH
  • перехід до каталогу, що містить файли doc або docx
  • бігати 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

Тестовано з Word 2013 та PowerShell 4.0.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.