Конвертация docx в pdf средствами python1

Понадобилось тут мне по несколько раз на дню ковертить много файлов из word (*.docx) в PDF (*.pdf). Интернет полон информации, но что-то она местами старовата. Где-то много затыков на предмет используемой версии word, где-то много ещё чего-то. Ну т.е. с первого "тычка" не заработало.

Вот мой вариант, который, в общем-то без проблем отрабатывает.

  1. Ставим python;

  2. Ставим библиотеку pip install docx2pdf

  3. Размещаем файлик скрипта туда, где лежат файлы, которые требуется сконвертировать.

Ну и тем, кому не хочется качать файлик, вот текст скрипта:

import sys
import os
from docx2pdf import convert

def get_list_of_docx_files():
list_of_all_files = os.listdir('.')
list_of_docx_files = []
for filename in list_of_all_files:
if filename[-4:] == 'docx':
list_of_docx_files.append(filename[:-5])
return list_of_docx_files


list_of_all_files = get_list_of_docx_files()

with open('toPDF_results.txt', 'w+') as fp:
fp.write("Стартуем конвертацию для следующих файлов:"+ '\n')
for i, file in enumerate(list_of_all_files):
if i < len(list_of_all_files) - 1:
fp.write(str(file) +".docx" + '\n')
else:
fp.write(str(file)+".docx")
fp.write('\n')

for file in list_of_all_files:
try:
convert(file + ".docx", file + ".pdf")
except Exception as e:
with open('toPDF_results.txt', 'w+') as fp:
fp.write("Ошибка при конвертации файла:", str(e))

input("Нажмите Enter для выхода...")

Правила сообщества

Публиковать могут пользователи с любым рейтингом. Однако!


Приветствуется:

• уважение к читателям и авторам

• конструктивность комментариев

• простота и информативность повествования

• тег python2 или python3, если актуально

• код публиковать в виде цитаты, либо ссылкой на специализированный сайт


Не рекомендуется:

• допускать оскорбления и провокации

• распространять вредоносное ПО

• просить решить вашу полноценную задачу за вас

• нарушать правила Пикабу

21
Автор поста оценил этот комментарий
ответный пост

Хоть и захейтили, но был вопрос, про аналогичное решение, раскладывающее результаты по подкаталогам. Вот, специально для тех, кто просил.

https://disk.yandex.ru/d/myztbNC3xHl-Dg

комментарии (7)
16
DELETED
Автор поста оценил этот комментарий
Не вижу смысла писать скрипты, что б заебаться.
я понимаю, что если приходит, ну допустим массив из 300 документов и их нужно резко конвертнуть и переслать. Желательно в автоматическом режиме. Вот тогда есть смысл.
А сейчас - это тупо работа ради работы.
раскрыть ветку (1)
4
Автор поста оценил этот комментарий

Немного не так, в нашем случае. Отдел технической документации про проекту ведёт 25 документов, они сдаются итерациями с правками. После всех правок замучались конвертировать в пдф. Вот, такой скрипт родили

показать ответы
3
DELETED
Автор поста оценил этот комментарий

@SupportTech, а можно добавить Quote который не будет рвать оригинальное форматирование? Например блоки кода...

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

@SupportTech, поддерживаю

Автор поста оценил этот комментарий

чо за бред...

если у тебя стотыщпяцот доков?


устанавливаешь нужный софт, выделяешь файлы,  контекст меню - конвертировать в пдф

профит

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

вопрос был про сохранение в структурированных папках

показать ответы
48
Автор поста оценил этот комментарий

Можно выделить все файлы в эксплорере и во встроенный пдф принтер напечатать

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Можно... можно и так)

0
Автор поста оценил этот комментарий

ещё майкрософт офис ставить.... да ну) давай другой пример сделаем, без COM и ActiveX

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Слухай, может в личку? Чиркни в телеге, подружимся)) @Rick1177
0
Автор поста оценил этот комментарий

cscript.exe myscript.vbs

пример показать могу, но слишком не хочу вникать в COM. не люблю эту технологию и я больше по линуксам.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Блин, ну если бы потратил время, было бы отлично )
показать ответы
0
Автор поста оценил этот комментарий

Да ради бога.

https://www.excel-vba.ru/chto-umeet-excel/dialogovoe-okno-vy...


Или оформить скрипт отдельным файлом VBS.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Ну покажи нормальный пример, аналогичный! Чего ссылками то кидаешься. Это и я читал. Сделай скрипт, выложи на обозрение.

показать ответы
0
Автор поста оценил этот комментарий

Писал и пишу всякую мелкую автоматизацию своей работы.

cscript.exe myscript.vbs


Ну и в данном случае у человека файлы docx, явно из офиса. Можно написать макрос на VBA, который конвертит все файлы в той папке, из которой открыт текущий файл. И кнопочку на панель инструментов сделать :)

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Не... без открытия файла, плиз
показать ответы
0
Автор поста оценил этот комментарий

можно, через скриптшел запускается из коробки начиная, наверное, с виндовс виста. но это ни разу не серверный скриптинг)

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Это как вообще?
показать ответы
0
Автор поста оценил этот комментарий

В данном конкретном случае питон вызывает библиотеку, которая вызsвает VBA через COM. Вот я и спрашиваю, зачем вырезать гланды через жопу, и не написать сразу на VBA?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

А ты писал на VBA? Разве код можно оформить в виде скрипта? Он, вроде как, интегрируется в файл офиса и только!

показать ответы
Автор поста оценил этот комментарий
Посмотрел код. А говорят, что это легкий язык для обученря программированию. Ага)))))
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
А чего с ним?
Автор поста оценил этот комментарий

Касперский ругается на код. Говорит, что там троян, который майнит битки и донатит их ВСУ

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Пэздит)
2
DELETED
Автор поста оценил этот комментарий

Неа.

Кстати, вопрос со структурой папок при конвертации весьма актуален до сих пор на форумах

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Версия, раскладывающая по подпапкам документы

https://disk.yandex.ru/d/myztbNC3xHl-Dg

3
Автор поста оценил этот комментарий

воровские )

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Точно) Разворачивать Шару, покупать лицензии... это не к нам
1
admin
Автор поста оценил этот комментарий

почему все продолжают использовать os, хотя есть pathlib?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

ну привычка просто

0
Автор поста оценил этот комментарий

Забыл совсем, я специально менял настройки что бы можно было по дабл клику запускать.
А так можно через пкм

Иллюстрация к комментарию
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Да, отлично работает

Автор поста оценил этот комментарий

я использую вот такой скрипт:
https://pastebin.com/tKi9zTBj
Кидаешь файл с этим кодом и расширением .ps1 в папку с доками и запускаешь, конвертирует все  .doc и .docx в папке в .pdf

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

А как запускаешь? Я вот кинул в файл с расширением, а он просто в блокноте открывает

показать ответы
0
DELETED
Автор поста оценил этот комментарий
Вы про автора поста ведь?
А где в посте про структуру папок? Я вот ниразу не погромист и не шарю в коде. Мы тут в камментах к этому вопросу пришли.
Автору поста однозначный респект, но какое тз...
раскрыть ветку (1)
Автор поста оценил этот комментарий

Версия, раскладывающая по подпапкам документы

https://disk.yandex.ru/d/myztbNC3xHl-Dg

0
Автор поста оценил этот комментарий
Если вопрос актуален на форумах, не логично все же что то придумывать? :)

Питон скрипт например, который сохраняет структуру папок
раскрыть ветку (1)
Автор поста оценил этот комментарий

Версия, раскладывающая по подпапкам документы

https://disk.yandex.ru/d/myztbNC3xHl-Dg

0
Автор поста оценил этот комментарий
А структуру папок сохраняет?
Допустим мне надо конвертуть несколько сотен документов которые лежат в папках внутри папок со сложной структурой и мне надо чтобы конечные файлы лежали там же где и исходники.
раскрыть ветку (1)
Автор поста оценил этот комментарий

Специально для тебя... найдёт все файлы во вложенных каталогах и рядом положит pdf https://disk.yandex.ru/d/myztbNC3xHl-Dg

показать ответы
0
Автор поста оценил этот комментарий

Освой за 15 минут vba и проблем не будет в жизни

раскрыть ветку (1)
Автор поста оценил этот комментарий

Владею и он мне меньше нравится, динозавр

19
DELETED
Автор поста оценил этот комментарий

А вот это вы очень зря, питон за такое нахуй посылает.

Иллюстрация к комментарию
раскрыть ветку (1)
Автор поста оценил этот комментарий

Мнда, я попытался исправить, но оно удаляет пробелы!

Может написать и сделать какой-то пост, чтобы администрация Pikabu увидела потребность добавления форматирования кода?

показать ответы
0
Автор поста оценил этот комментарий

для этого нужно контролем версий пользоваться

раскрыть ветку (1)
Автор поста оценил этот комментарий
А ты знаешь контроль версий для воровской документации ?
показать ответы

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества