Пакетное преобразование документов Word в формат PDF
Как выполнить пакетную конвертацию многих документов Word и сохранить их как [originalfilename].pdf?
Как выполнить пакетную конвертацию многих документов Word и сохранить их как [originalfilename].pdf?
Возможно, это приведет к тому, что документ попадет на территорию 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();
}
}
Вот как я бы это сделал:
[ Используйте Google Docs в качестве конвертера пакетного PDF ]0x3 и по [ Amit Agarwal ]0x3 и 0x2 и 0x2 и Если у вас есть огромный пакет документов Word, Excel Электронные таблицы и PowerPoint Презентации на жестком диске, который вы хотели бы конвертировать в PDF сразу, без инвестиций в коммерческое программное обеспечение, как Adobe Acrobat, попробуйте Google Docs. 0x2 и 0x2 и Хотя всегда можно было конвертировать документы Office в PDF с помощью Google Docs, новая функция экспорта еще больше упрощает пакетное преобразование форматов файлов Microsoft Office и OpenOffice в PDF (или HTML) в три простых шага. Пакетное преобразование в PDF с Google Docs 0x2 и 0x2 и Использовать Google Docs как конвертер пакетного PDF 0x2 и 0x2 и Шаг #1 - Создайте новую “входную” папку в Google Docs, где вы будете загружать все ваши документы и презентации, которые будут преобразованы в PDF.
Шаг #2 - теперь выберите параметр “Загрузить документ” в Google Docs, установите целевую папку на ту, которую вы создали на шаге #1 и upload* для всех ваших документов. 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 Docs, но это поместит все в главную папку, и управление документами может стать проблемой, особенно если у вас слишком много файлов.
Степ #3 - После того, как все файлы будут загружены в Google Docs, снова откройте панель инструментов и выберите папку “input” на правой боковой панели. Выберите все файлы в этой папке и выберите “Export” (Экспорт) в разделе “More Options” (Дополнительные опции).
Здесь выберите “PDF” (или HTML) в качестве выходного формата, и все ваши документы Word, презентации, электронные таблицы и т.д. будут мгновенно преобразованы в PDF. 0x2 и 0x2 и если вы конвертируете большую партию документов в PDF, вам не придется ждать в браузере для преобразования, чтобы закончить, как Google Docs автоматически отправит вам по электронной почте, как только обработка закончена. Электронное письмо будет содержать ссылку, откуда вы можете напрямую скачать все PDF-файлы в одном большом ZIP.
Относительно скрипта 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 в этом каталоге.
Я уверен, что он неуклюжий, но он сработал для меня. надеюсь, это кому-нибудь поможет.
Ответ Боббимцира довольно интересен и хорошо работает со Словом 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
Этот маленький фрагмент очень хорошо сработал для меня.
Просто сохраните его в сценарий PowerShell типа Convert-Documents.ps1
, а затем запустите его из командной строки из папки, в которой находятся все ваши исходные документы.
Я не пробовал, но есть пакетный метод с использованием OpenOffice.org, который можно протестировать. Инструкции по выполнению этого на платформах GNU/Linux и Windows описаны по адресу http://www.tech-faq.com/convert-word-to-pdf.shtml (а также по адресу _COPY5_MS_Word.html “ и по адресу http://www.oooforum.org/forum/viewtopic.phtml?t=3772 ).
Принцип использования OpenOffice.org для чтения в файле .doc, а затем экспорта в PDF кажется правильным, если вы найдете OpenOffice.org, делает возможным открытие имеющихся у вас файлов .doc.
Немного более простой альтернативой по сравнению со сценариями Powershell, Batch и Windows Script Host выше является инструмент docx2pdf
, который работает как на Windows, так и на MacOS: https://github.com/AlJohri/docx2pdf/
Подобно другим ответам, этот подход использует win32com в Windows и JXA (Javscript for Automation, в основном AppleScript в JS) в MacOS. Однако он упакован в легко устанавливаемый и готовый к пакетной конвертации пакет с прогресс-баром.
Установить:
pip install docx2pdf
Run:
docx2pdf myFolderOfWordDocs
Disclaimer: Я написал эту утилиту после того, как пытался найти кроссплатформенное решение для пакетного преобразования docx в pdf с нулевыми проблемами форматирования, так как она напрямую использует Microsoft Word.
Конвертирование нескольких документов из 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).
Run start-service.bat (open office теперь запущен в служебном режиме и ожидает команд)
Step 3
Сбор всех документов, которые должны быть преобразованы в pdf в каталоге (D2)
Создать пакетный файл convert.doc, который запускает JODConverter с и выдает инструкции по преобразованию:
convert.bat:
java -jar "<D1>\lib\jodconverter-cli-2.2.2.jar" -f pdf *.doc
где D1 - каталог JODConverter, созданный в Step 1
(если JODConverter имеет другой номер версии, обновите convert.bat соответственно)
ВАЖНО: файл convert.bat должен быть расположен в каталоге D2 !
Шаг 4:
Run convert.bat
Для каждого файла *.doc, присутствующего в D2, JODConverter потребует от Open Office создать новый файл с таким же именем и расширением pdf в том же каталоге.
Если вам нужен быстрый и простой онлайн метод для 20 или менее файлов, то используйте этот веб-сайт online2pdf , здесь вы можете загрузить ваши файлы, выбрать некоторые опции, а затем нажмите кнопку “Конвертировать”, он будет преобразовывать все документы, а затем автоматически загрузить один zip-файл, содержащий PDF-файлы.
Если документы 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 [ http://www.reportlab.com/ftp ].0x3&
Основываясь на Umar’s answer , вот измененный сценарий PowerShell, который будет:
Как и в случае с Umar, чтобы использовать это:
doc2pdf.ps1
, где-нибудь в вашем 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
Протестировано в Word 2013 и PowerShell 4.0.