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

Qprint document word

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

Виртуальный хостинг со скидкой 10 процентов
Виртуальный хостинг со скидкой 10 процентов
EVILEG предлагает надёжный хостинг со скидкой 10% на виртуальный хостинг и 5% на VPS
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, о кроссплатформенности уже речи не идет.

Комментарии

Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
Ищу работу?
14,000.00 руб. - 40,000.00 руб.
Разработчик Qt
Annino, Moscow Oblast, Russia
5,000.00 руб. - 15,000.00 руб.
Дизайнер
Moskovskiy, Moscow, Russia
25,000.00 руб. - 30,000.00 руб.
Разработчик Qt/C++
Barnaul, Altai Krai, Russia

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

А
22 августа 2019 г. 23:24
Александр73

Qt - Тест 001. Сигналы и слоты

  • Результат:47баллов,
  • Очки рейтинга-6
21 августа 2019 г. 10:23
Андрей Ермошин

C++ - Тест 002. Константы

  • Результат:58баллов,
  • Очки рейтинга-2
21 августа 2019 г. 10:15
Андрей Ермошин

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

  • Результат:86баллов,
  • Очки рейтинга6
Последние комментарии
19 августа 2019 г. 7:41
Андрей Янкович

это проблема дистрибутива, попробуйте установить через пакетный менеджер snap Суть проблемы: libQt5Core которая лежит в дистрибутиве требует версию glibc >= 2.25 у вас видимо …
b
18 августа 2019 г. 6:09
bbb116

cqtdeployer /home/aleks/CQtDeployer/bin/cqtdeployer: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.25' not found (required by /home/aleks/CQtDeployer/lib/libQt5Core.so.5) linux mint …
D
17 августа 2019 г. 9:04
Damir

github ChekableTView Правой групповая смена значения при перетаскивании левой как обычно.
Сейчас обсуждают на форуме
24 августа 2019 г. 7:21
Евгений Легоцкой

Не помню, давно уже с QML не работал, по-моему, обычно пишет в консоль, что не находит файл. В любом случае какую-то ошибку в консоль выкидывает. Но если честно, если у вас проект будет ак…
БГ
24 августа 2019 г. 4:27
Брюс Глифф

Спасибо, вначале в документации было не понятно что к чему, теперь разобрался
I
21 августа 2019 г. 8:36
Intruder

Александр, мне не нужно перебирать. Вы говорите правильно, сначала я написал избыточный код просто не подумав. Задача такая, мне нужно просто переложить из QMap в атрибуты xml тега все, что там …
21 августа 2019 г. 4:46
IscanderChe

Спасибо! Получилось.
21 августа 2019 г. 3:16
nayk1982

Если Вы разрабатываете какую-то универсальную утилиту, которая вообще не привязана к логике, тогда как вариант: 1. Получить список таблиц через QSqlDatabase::tables 2. Для каждой табли…
EVILEG
О нас
Услуги
© EVILEG 2015-2019
Рекомендует хостинг TIMEWEB