Пакетное преобразование документов Word в PDF


Ответы:


24

Вот как я бы это сделал:

  1. Скачать CutePDF писатель
  2. Установите писатель в качестве принтера по умолчанию (вы можете изменить его позже)
  3. Поместите все ваши файлы .doc в одну папку
  4. Выделите все файлы, щелкните правой кнопкой мыши, Распечатать

Единственным недостатком является то, что вы должны нажать Ok один раз для каждого файла.


3
Это было то, что я на самом деле сделал. Я должен был сделать это немного по-другому, хотя ... Я открываю «Принтер» CutePDF с панели управления, чтобы он показал, что будет очередь принтера ... Затем я перетащил документы в это окно - и затем это все стучало в ENTER, чтобы принять имя файла оттуда ... Все они были названы MICROSOFT WORD - [имя файла] .pdf, но я могу решить это легко.
Кьенсен

Тот же рабочий процесс может использоваться с PDFCreator ( en.pdfforge.org/pdfcreator ). Если вы устанавливаете его в качестве службы или в автоматическом режиме, он отключается, за исключением выбора> печать.
Мэтт Вилки

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 $ _}
Aniti

@bobbymcr Ссылка в ответе мертва. Смотрите здесь для текущей SaveAsPDFзагрузки плагина.
Питер Вандивье

9

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


1
PDFCreator может быть использован, как ответил kjensen выше, однако я хотел бы отметить, что в опциях PDFCreator вы можете включить автосохранение, которое будет автоматически сохранять каждый документ в выбранном вами каталоге с именем файла по вашему выбору. , Таким образом, вам не нужно нажимать «ввод», чтобы убедиться, что вы хотите сохранить каждый файл.

6

Используйте Google Docs в качестве пакетного конвертера PDF от Amit Agarwal

Если у вас есть огромный пакет документов Word, электронных таблиц Excel и презентаций PowerPoint на жестком диске, которые вы хотите конвертировать в PDF сразу, не вкладывая средства в коммерческое программное обеспечение, такое как Adobe Acrobat, попробуйте Google Docs.

Несмотря на то, что всегда было возможно преобразовать документы Office в PDF с помощью Google Docs, новая функция экспорта еще больше упрощает пакетное преобразование форматов файлов Microsoft Office и OpenOffice в PDF (или HTML) за три простых шага. Пакетное преобразование в PDF с Google Docs

Используйте Google Docs в качестве пакетного конвертера PDF

Шаг № 1 - Создайте новую «входную» папку в Документах Google, куда вы будете загружать все свои документы и презентации, которые должны быть преобразованы в PDF.

Шаг № 2 - Теперь выберите опцию «Загрузить документ» в Документах Google, установите целевую папку в папку, созданную на шаге № 1, и загрузите * все свои документы.

Документы Google официально поддерживают следующие форматы файлов, хотя вы также можете загружать изображения:

* 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, снова откройте панель управления и выберите папку «input» на правой боковой панели. Выберите все файлы в этой папке и выберите «Экспорт» в разделе «Дополнительные параметры».

Здесь выберите «PDF» (или HTML) в качестве выходного формата, и все ваши документы Word, презентации, таблицы и т. Д. Будут немедленно преобразованы в PDF.

И если вы конвертируете большой пакет документов в PDF, вам не нужно ждать в браузере завершения конвертации, поскольку Документы Google автоматически отправят вам электронное письмо после завершения обработки. В электронном письме будет ссылка, откуда вы сможете напрямую загрузить все файлы PDF в один большой ZIP-архив.


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

Этот метод изначально был выпущен в 2009 году и, к сожалению, похоже, был удален (отдельные файлы можно экспортировать в формате pdf, но папок нет ...)
Joe

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количество файлов. Таким образом, я откатил редактирование, но включил синтаксическое исправление, предложенное в редактировании.
Умар Фарук Хаваджа

Это работало для меня под Windows 7, когда я убрал [ref]команды и последнюю строку ( $Word.Close()). В противном случае ошибки появились.
love.by.Иисус

0

Преобразование нескольких документов из DOC в PDF в Windows XP с использованием JODConverter и Open Office

Предпосылки:


Шаг 1 Загрузите JODConverter (последняя версия jodconverter-2.2.2.zip) из

Распакуйте zip-файл JODConverter в каталог по вашему выбору (D1)


Шаг 2 Запустите OpenOffice в сервисном режиме (подробнее здесь )

Создайте пакетный файл start-service.bat со следующим содержимым:

старт-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 присутствовало в документах 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. Здесь вы можете загрузить свои файлы, выбрать некоторые параметры и нажать кнопку «Преобразовать», он преобразует все документы и затем автоматически загрузит один zip-файл, содержащий файлы PDF.


0

Опираясь на ответ Умара , вот модифицированный скрипт PowerShell, который будет:

  • Процесс DOC, а также DOCX
  • Показать индикатор выполнения, как он работает

Как с Умаром, чтобы использовать это:

  • сохраните приведенный ниже скрипт как файл, например 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.