IF
27 декабря 2018 г. 16:06

Qprint document word

Хочу реализовать, пока что только для себя прогрмму, которая распечатывает много word документов ( например 200 ). Средствами windoes -это выполняется криво и по 15 штук за раз максимум. главный вопрос, как заставить Qprint печатать word документы ? ( просто у word , как говорят на форумах , сам отвечает за свою печать. Что посоветуете ?

Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.
7

Добрый день.

Именно распечатывать, на принтере? Qt может использовать QPrinterDialog и ещё ряд классов, но в итоге он всё равно обращается к подсистеме ОС, которая отвечает за работу принтеров.

Или вы имели ввиду что-то другое?

IF

Да, я имел ввиду чуть другое.Лучше привиду пример.

У меня есть документ "1.docx", стоит задача распечатать его на принтере.

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

В итоге мне надо разобраться, как распечатать средствами Qt на принетр ( выставляя определённый принетр ) и всё.

IF

Просто люблю я С++ и Qt и как то не кросс платформенное писать приложение не очень.

IF

Немного выводов

1.Для работы с word документами нужна библиотека #include , она в свою очередь есть только на Windows Ссылка на документацию . Так что всякая кросс платформенная печать word документов под большим крестом!

На всякий оставлю кусок кода, который будет печатать докуметн word ( по мнению одного из Забугорских формучан )

QAxObject *word;
QAxObject *doc;
word = new QAxObject("Word.Application", this);
word->setProperty("DisplayAlerts", false);
word->setProperty("Visible", true);
doc = word->querySubObject("Documents");
doc->dynamicCall("Open(QVariant)", "hello_world.docx");

В приведенном Вами куске кода нет ничего, связанного с печатью документа. Это способ работы с Microsoft Office, используя ActiveX. Про печать надо изучать документацию . Еще рекомендую добавить проверки, чтобы избежать вылетов:

QAxObject* word = new QAxObject("Word.Application", this);
if(word) {
    word->setProperty("DisplayAlerts", 0);
    word->setProperty("Visible", true);
    QAxObject* docs = word->querySubObject("Documents");
    if(docs) {
        QAxObject* doc = docs->dynamicCall("Open(QString&)", "hello_world.docx");
        if(doc) {
            // .. далее печать и т.д.
            // ...
            delete doc;
        }
        docs->dynamicCall("Close()");
        delete docs;
    }
    word->dynamicCall("Quit()");
    delete word;
}
IF

Сильно извеняюсь, строчка для печати как раз

doc->querySubObject("PrintOut()");

Просто не заметрил, и я думаю вы правы по поводу ActiveX

Ну и поскольку используется ActiveX, о кроссплатформенности уже речи не идет.

Комментарии

Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
Как стать автором?

Внесите вклад в развитие сообщества EVILEG.

Узнайте, как стать автором сайта.

Изучить
Donate

Добрый день, Дорогие Пользователи !!!

Я Евгений Легоцкой, разработчик EVILEG. И это мой хобби-проект, который помогает учиться программированию другим программистам и разработчикам

Если сайт помог вам, и вы хотите также поддержать развитие сайта, то вы можете сделать пожертвование следующими способами

PayPalYandex.Money
Timeweb

Позвольте мне порекомендовать вам отличный хостинг, на котором расположен EVILEG.

В течение многих лет Timeweb доказывает свою стабильность.

Для проектов на Django рекомендую VDS хостинг

Посмотреть Хостинг Timeweb
g
29 мая 2020 г. 14:32
glushchenkoin

C++ - Тест 004. Указатели, Массивы и Циклы

  • Результат:40баллов,
  • Очки рейтинга-8
АС
26 мая 2020 г. 11:29
Артём Сун-Дун-Чан

C++ - Тест 004. Указатели, Массивы и Циклы

  • Результат:50баллов,
  • Очки рейтинга-4
МН
25 мая 2020 г. 11:33
Митя Нагибин

C++ - Тест 004. Указатели, Массивы и Циклы

  • Результат:50баллов,
  • Очки рейтинга-4
Последние комментарии
31 мая 2020 г. 8:15
IscanderChe

Как установить OpenCV на Qt под Windows

Добавлю от себя: на Windows 10 x64 с MinGW 7.3.0 в CMake надо установить флаг OPENCV_ENABLE_ALLOCATOR_STATS=OFF, тогда всё скомпилится нормально.
29 мая 2020 г. 13:00
Евгений Легоцкой

Django - Урок 023. Like Dislike система с помощью GenericForeignKey

Думал так, но похоже что нет. {{ post.votes.likes.user.username }} Это же QuerySet будет, а не отдельный единственный объект {% for vote in post.votes %} {{ vote.user.username …
29 мая 2020 г. 11:43
Владислав Меленчук

Django - Урок 023. Like Dislike система с помощью GenericForeignKey

А как получить имя пользователя, который поставил лайк? Думал так, но похоже что нет. {{ post.votes.likes.user.username }}
29 мая 2020 г. 6:30
Евгений Легоцкой

Qt/C++ - Урок 039. Как закрасить строку в QSqlTableModel по значению в столбце

У меня работает. Исправлял в проекте, который приложен к статье. А что происходит в вашем коде, с учётом места вызова этого кода, я знать не могу ;) Дебажьте и добавляйте условия, кото…
Сейчас обсуждают на форуме
31 мая 2020 г. 6:57
Алексей Внуков

Минимальный размер Item

считайте по размеру включенных элементов, чтоб все помещалась. например у вас всего 2 кнопки, тогда минимальный размер итема будет ширина 1-й кнопки + ширина 2-й кнопки + отступы, и точно также …
f
31 мая 2020 г. 2:24
fryn3

Можно ли сделать в QML таблицу как в Excel?

Можно ли сделать в QML таблицу как в Excel или как сделано в QTableView? Что бы можно было выделять диапазон ячеек, переключатся по таб, изменять размеры строк и столбцов. В QT 5.14 по…
S
РС
30 мая 2020 г. 11:49
Руслан Склюев

QML Как при нажатии на кнопку изменить название окна?

У меня три файла: 1. QML - это Loader и Window 2. QML вход в программу - страница Loader (там есть Switch) 3. QML - MainMenu. Мне нужно в (1), чтобы если на (2) Switch.enable, то …
ДК
29 мая 2020 г. 13:27
Джон Кофи

QMap<> какой ключ лучше

это ясно. Вопрос в том, как быстро мапа будет отрабатывать, если ключом будет QModelIndex. Какой параметр индекса возьмет за ключ. И вот насколько это будет медленнее или быстрее, чем QString пр…
О нас
Услуги
© EVILEG 2015-2020
Рекомендует хостинг TIMEWEB