С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python: Django
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
2 / 2 / 0
Регистрация: 07.05.2014
Сообщений: 32

Не был произведен вызов CoInitialize. Или конвертация docx -> pdf в Python(Django)

22.05.2018, 13:06. Показов 4229. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, уважаемые форумчане.

Делаю проект на Django, если вкратце - по заполненной пользователем форме формируется файл .docx. Но мне необходимо его переконвертировать в pdf для более удобной работы. Наиболее популярный вариант - с использованием comtypes.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import sys
import os
import comtypes.client
 
wdFormatPDF = 17
 
in_file = os.path.abspath(sys.argv[1])
out_file = os.path.abspath(sys.argv[2])
 
word = comtypes.client.CreateObject('Word.Application')
doc = word.Documents.Open(in_file)
doc.SaveAs(out_file, FileFormat=wdFormatPDF)
doc.Close()
word.Quit()
Но вся загвоздка в объявлении переменной(создание объекта) "word = comtypes.client.CreateObject('Word.Appli cation')". При запуске сервера, она создаётся. Но все последующие запросы он обращает в ошибку. "[WinError -2147221008] Не был произведен вызов CoInitialize".
На некоторых форумах писали, что помогает объявление pythoncom.CoInitialize(), но это очень старые записи. Да и сам модуль pythoncom отсутствует в библиотеках.

Буду благодарен за помощь.
Либо какой-то ещё способ преобразования docx - pdf
Миниатюры
Не был произведен вызов CoInitialize. Или конвертация docx -> pdf в Python(Django)  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.05.2018, 13:06
Ответы с готовыми решениями:

Не был произведен вызов CoInitialize при использовании CppWebBrowser
В программе 2 формы: 1 - основная программа 2 - заставка, пока проводится подготовка к работе программы соответственно 1ая...

Не произведен вызов CoInitialize
Приветствую Использую постороннюю библиотеку, которая через свою функцию возвращает строку XML. Дело в том, что она может вернуть одну...

Небыл произведён вызов CoInitialize
При оброщение к функции внешней DLL, каторая открывает окно, получаю ошибку: Небыл произведён вызов CoInitialize Что это значит?

4
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
22.05.2018, 15:50
А сразу генерить pdf можно? Это куда проще.

Цитата Сообщение от zllo Посмотреть сообщение
Да и сам модуль pythoncom
Ну если сервак у вас на никсах - то неудивительно.

Цитата Сообщение от zllo Посмотреть сообщение
Либо какой-то ещё способ преобразования docx - pdf
Последние версии ворда, не помню, с какой именно, умеют сохранять pdf штатным образом. Если нормально заведёте доступ к приложению-ворду, то вызвать это сохранение не составит проблемы.

Добавлено через 2 минуты
А, посмотрел на картинку, видно, что на винде крутится.

Тогда для образца советую найти книжку, что-то типа "Python programming for Win32", она есть в сети, там рабоота с com\ole, разумеется, освещается.
0
2 / 2 / 0
Регистрация: 07.05.2014
Сообщений: 32
22.05.2018, 16:04  [ТС]
Цитата Сообщение от dondublon Посмотреть сообщение
А сразу генерить pdf можно?
файл генерится через docx-mailmerge. Ворд и именно эта библиотеке были использованы по причине наличия требований к стилями. Поищу тогда как можно сразу pdf генерировать. Может и лучше будет.
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
22.05.2018, 16:45
zllo, чёта я не понял, почему именно docx-mailmerge, обычно, чтобы просто сгенерить документ, используют python-docx.
Так-то да, если первый шаг генерации вам подконтролен, то word лучше исключить, как ненужную сложность. Наверняка в pdf стили тоже есть.
0
2 / 2 / 0
Регистрация: 07.05.2014
Сообщений: 32
22.05.2018, 16:56  [ТС]
dondublon, я когда только сел с этим разбираться, пытался использовать как раз python-docx, но наткнулся на какое-то сильное противоречие, может сейчас смогу уже избежать его) да и со стилями надо там возиться.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.05.2018, 16:56
Помогаю со студенческими работами здесь

Python 3.7 Конвертация PDF в DOCX
Приветствую, друзья и коллеги! Нужна помощь. Возникла необходимость замены некоторых элементов текста в PDF документах. Знаю про...

Конвертация Docx в PDF
День добрый, Суть такая, что с помощью формы я создаю docx документ, с колонтитулами, картинками, разными стилями. Времени убил на...

Конвертация PDF в DOCX
Ребята, нужна помощь. Задача: Имеется множество PDF файлов. Необходимо в них сделать некоторые корректировки в тексте, в заголовках...

Как получить адрес сервера, откуда был произведен вызов?
кто знает, подскажите, как получить адрес сервера, откуда был произведен вызов. комбинация redirect + http_referer не прокатывает, на моем...

Конвертация .docx в .pdf через PHPWord
Как конвертнуть файл .docx в .pdf а затем вывести его на страницу? Если есть другие варианты вывода .docx файла на страницу,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru