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

Qprint document word

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

Виртуальный хостинг со скидкой 10 процентов
Виртуальный хостинг со скидкой 10 процентов
EVILEG предлагает надёжный хостинг со скидкой 10% на виртуальный хостинг и 5% на VPS
7

Добрый день.

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

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

0
IF

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

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

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

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

0
IF

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

0
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");
0

В приведенном Вами куске кода нет ничего, связанного с печатью документа. Это способ работы с 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;
}
0
IF

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

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

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

0

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

0

Комментарии

Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
SZ
24 июня 2019 г. 17:49
Serg Zhi

C++ - Тест 003. Условия и циклы

  • Результат:78баллов,
  • Очки рейтинга2
АС
24 июня 2019 г. 8:03
Александр Спиридонов

C++ - Тест 001. Первая программа и типы данных

  • Результат:53баллов,
  • Очки рейтинга-4
БА
23 июня 2019 г. 13:52
Борис Артамонов

C++ - Тест 003. Условия и циклы

  • Результат:35баллов,
  • Очки рейтинга-10
Последние комментарии
24 июня 2019 г. 10:23
Евгений Легоцкой

Хорошо, ну будут проблемы помимо того, что касается статей, то не стесняйтесь задавать вопросы на форуме.
МБ
24 июня 2019 г. 10:21
Михаил Булатов

Извиняюсь, все работает(из-за невнимательности).
24 июня 2019 г. 9:52
Евгений Легоцкой

Придётся делать ещё сигнал в дочернем qml и пробрасывать через коннекты и обработчики. А вообще нужно смотреть конкретный код и что вы пытаетесь сделать. Так что лучше будет, если вы зад...
21 июня 2019 г. 8:31
Ruslan Polupan

Вот моя строка по которой все отлично сработало %cqtdeployer% -bin c:/CentralMposKeys/CentalMposKeys.exe -qmake c:/Qt/5.12.2/mingw73_64/bin/qmake.exe
21 июня 2019 г. 8:24
Андрей Янкович

Возможно кому то пригодится сqtdeployer для windows работает точно так же как и для Linux разница лишь в команде запуска Linux: cqtdeployer Windows: %cqtdeployer...
Сейчас обсуждают на форуме
24 июня 2019 г. 14:36
Михаиллл

Нашел проект подключения к вебсокету.Но по моему адресу не могу подключиться.Нужно ли для этого использовать библиотеки?Вы не знаете адрес вебсокета, на котором можно проверить с...
24 июня 2019 г. 14:07
Евгений Легоцкой

Я пока даже не знаю, а какой код самого подключения? использовали ожидание на подключение? Так делали? socket->connectToServer("market");if (socket->waitForConnected(1000)) ...
24 июня 2019 г. 13:19
IscanderChe

// widget.cpp#include "widget.h"#include <QTableView>#include <QVBoxLayout>#include "checkboxdelegate.h"#include "comboboxdelegate.h"#include "mytableview.h"#include <QSqlD...
24 июня 2019 г. 11:16
BlinCT

Хорошо, с этим понятно. Вот есть такой набор каких то кнопок. Цифры отображают в каком порядке должен менятся фокус.1. Как правильнее сделать отображение активного обьекта...
e
24 июня 2019 г. 10:58
evgenm27

Спасибо за ответ, буду пробовать
Ищу работу?
10,000.00 руб. - 15,000.00 руб.
Нужен помощник для создания API.
Moscow, Moscow, Russia
25,000.00 руб. - 30,000.00 руб.
Разработчик Qt/C++
Barnaul, Altai Krai, Russia

Для зарегистрированных пользователей на сайте присутствует минимальное количество рекламы

EVILEG
О нас
Услуги
Присоединяйтесь к нам
© EVILEG 2015-2019
Рекомендует хостинг TIMEWEB