Комментарии 18
Прошу меня понять и простить:
import sys
import os,os.path
import comtypes.client
wdFormatPDF = 17
input_dir = 'input directory'
output_dir = 'output directory'
for subdir, dirs, files in os.walk(input_dir):
for file in files:
in_file = os.path.join(subdir, file)
output_file = file.split('.')[0]
out_file = output_dir+output_file+'.pdf'
word = comtypes.client.CreateObject('Word.Application')
doc = word.Documents.Open(in_file)
doc.SaveAs(out_file, FileFormat=wdFormatPDF)
doc.Close()
word.Quit()
Взято тут: https://stackoverflow.com/questions/29637626/converting-rtf-to-pdf-using-python
+3
Интересный вариант, спасибо.
Моё решение не только для питонистов.
Моё решение не только для питонистов.
0
НЛО прилетело и опубликовало эту надпись здесь
Там совместимость между версиями вордов — так себе.
Пока идёт простыня текста или простенькая таблица — всё хорошо. А как документ составит какой-нибудь извращеннец-умелец, тут оно и может поломаться.
Принтер, шрифты, монитор, версии Офиса и Винды (кто сохранял, кто открыл) — мал-мала влияют на результат.
Пока идёт простыня текста или простенькая таблица — всё хорошо. А как документ составит какой-нибудь извращеннец-умелец, тут оно и может поломаться.
Принтер, шрифты, монитор, версии Офиса и Винды (кто сохранял, кто открыл) — мал-мала влияют на результат.
0
Напомнило то, как я лет 6 назад дергал из C++ объект 'Word.Application' для автоматизации генерации отчетов по лабам)
+1
Есть ощущение, что с таким уровнем лабы как минимум по программированию можно было не делать ;)
0
Если пакета Office не стоит на машине пользователя/сервере или нужно делать такую операцию «в облаке», то задача приобретает иные краски.
Когда-то использовал вот это github.com/zrrrzzt/tfk-api-unoconv
На очень сложных документах «вёрстка», конечно, может сломаться. Но у меня были документы со сложными таблицами/графиками — работало неплохо.
Когда-то использовал вот это github.com/zrrrzzt/tfk-api-unoconv
На очень сложных документах «вёрстка», конечно, может сломаться. Но у меня были документы со сложными таблицами/графиками — работало неплохо.
0
Но ворд же со времен версии 2007 ставит виртуальный PDF принтер через который и так всё превращается в нормальный PDF
0
Если честно, то посыла статьи толком не понял. Сначала хотели
Если нужно переводить из одного формата в другой очень большое количество документов, то можно поставить на компьютер документооборот Alfresco (бесплатный). И настроить правило — все что попадает в одну папку, конвертируется и кладется в другую папку.
Удобно тем, что — можно настроить сборщик с почты, примонтировать папки и ни кто даже и знать не будет что все идет через документооборот, полностью автоматизировав процесс) без программирования.
Это может быть необходимо для вычленения какой-то конкретной информации или просто проверки содержимого, потом решили конвертировать из одного формата в другой, да причем на VBS… Язык был выбран скорее всего по причине — когда-то его учили…
Если нужно переводить из одного формата в другой очень большое количество документов, то можно поставить на компьютер документооборот Alfresco (бесплатный). И настроить правило — все что попадает в одну папку, конвертируется и кладется в другую папку.
Удобно тем, что — можно настроить сборщик с почты, примонтировать папки и ни кто даже и знать не будет что все идет через документооборот, полностью автоматизировав процесс) без программирования.
0
Каким боком тут WordPress?
0
В Open/LibreOffice появился headless режим, что сильно ускорило запуск для подобных задач
Конвертит все что сможет открыть. Кросплатформенно. Бесплатно.
ext = 'html'
os.chdir(oo_path)
try:
subprocess.check_call(oo_executable + ' --headless --convert-to ' + ext + ' --outdir ' + destPath + ' ' + srcFile, shell=True)
except subprocess.CalledProcessError as e:
print(e.output)
Конвертит все что сможет открыть. Кросплатформенно. Бесплатно.
0
Возможно вам понравится: doc2html. Из недостатков
— некроссплатформенно, потому что использует jscript и
— требует наличие установленного в системе ворда
Из плюсов
— быстр (скорость загрузки опредяется скоростью открытия/закрытия документов)
— оптимально использует одну копию ворда
Хотя имеет смысл посмотреть в сторону других утилит, например, pandoc
0
Вроде у питона есть расширение для работы с docx, которое позволяет пересохранять в другие форматы. К тому же есть python-oletools, который позволяет работать с установленным ms office (и не только) напрямую, без прослойки на vbs) Ну в целом ваше решение норм, очень нестандартное)
0
Вот ещё http://tika.apache.org
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Автоматизация конвертирования word файлов в другие форматы