Использование PowerShell и Wordpad для преобразования в PDF
У меня есть требование иметь небольшой скрипт на Windows Server, использующий PowerShell для преобразования файлов в PDF (из RTF). У меня есть прототип, использующий Word, который работает на моем настольном компьютере, но на серверах не установлен Office/Word. Есть ли подобный способ, которым я могу вызвать Wordpad, чтобы добиться того же самого?
$documents_path = 'c:\projects\pbl\hi.rtf'
$word_app = New-Object -ComObject Word.Application
$document = $word_app.Documents.Open($documents_path)
$pdf_filename = 'c:\projects\pbl\hi.pdf'
$document.SaveAs([ref] $pdf_filename, [ref] 17)
$document.Close()
$word_app.Quit()
2 ответа
Вы не сможете достичь этой цели, используя только WordPad, потому что он не имеет интерфейса автоматизации, как Microsoft Word. Вам нужно будет найти альтернативное решение для достижения этой цели.
Это старая ветка, поэтому нет смысла решать вопрос ОП как таковой.
Однако в интересах других, приземляющихся здесь, это ответ «Да», я не запускал его на сервере, но понимаю, что могут возникнуть проблемы с вызовом MS Print в PDF - безголовый, по нескольким причинам, в том числе он использует графику Интерфейс устройства. Он отлично работает на рабочей станции.
Это делается как однострочная команда в следующих строках: ввод может быть %1 с %2 для вывода.
Есть 2 WordPad.exe, которые стоит попробовать :-) Это американский английский по умолчанию: -
%comspec% "C:\Windows\System32\wordpad.exe" /pt "%Input%" "Microsoft Print to PDF" "Microsoft Print to PDF" "%Output%"
OR my Locale British English one, which I target !
"%ProgramFiles%\Windows NT\Accessories\WORDPAD.EXE" /pt %1 "Microsoft Print to PDF" "Microsoft Print to PDF" %2
Для обертки перетаскивания см.:-
Doc2PDF.cmd — конвертируйте .Doc(x), .ODT, .RTF или .Txt в PDF и открывайте их в SumatraPDF
PS Лучшей заменой WordPad является Jarte Pro, и если у вас есть Portable WinWord.exe, вы можете посмотреть /questions/5202078/kak-mne-raspechatat-fajl-iz-komandnoj-stroki/5202086#5202086