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

Qprint document word

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

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

Вам это нравится? Поделитесь в социальных сетях!

7
Evgenii Legotckoi
  • 28 декабря 2018 г. 7:08

Добрый день.

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

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

    IF
    • 28 декабря 2018 г. 7:21

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

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

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

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

      IF
      • 28 декабря 2018 г. 7:22

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

        IF
        • 28 декабря 2018 г. 8:17

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

        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");
        
          nayk1982
          • 28 декабря 2018 г. 8:53
          • (ред.)

          В приведенном Вами куске кода нет ничего, связанного с печатью документа. Это способ работы с 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
            • 28 декабря 2018 г. 10:59

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

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

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

              nayk1982
              • 28 декабря 2018 г. 21:00

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

                Комментарии

                Только авторизованные пользователи могут публиковать комментарии.
                Пожалуйста, авторизуйтесь или зарегистрируйтесь
                г
                • ги
                • 24 апреля 2024 г. 1:51

                C++ - Тест 005. Структуры и Классы

                • Результат:41баллов,
                • Очки рейтинга-8
                l
                • laei
                • 23 апреля 2024 г. 19:19

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

                • Результат:10баллов,
                • Очки рейтинга-10
                l
                • laei
                • 23 апреля 2024 г. 19:17

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

                • Результат:50баллов,
                • Очки рейтинга-4
                Последние комментарии
                k
                kmssr9 февраля 2024 г. 5:43
                Qt Linux - Урок 001. Автозапуск Qt приложения под Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
                АК
                Анатолий Кононенко5 февраля 2024 г. 12:50
                Qt WinAPI - Урок 007. Работаем с ICMP Ping в Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
                EVA
                EVA25 декабря 2023 г. 21:30
                Boost - статическая линковка в CMake проекте под Windows Ошибка LNK1104 часто возникает, когда компоновщик не может найти или открыть файл библиотеки. В вашем случае, это файл libboost_locale-vc142-mt-gd-x64-1_74.lib из библиотеки Boost для C+…
                J
                JonnyJo25 декабря 2023 г. 19:38
                Boost - статическая линковка в CMake проекте под Windows Сделал всё по-как у вас, но выдаёт ошибку [build] LINK : fatal error LNK1104: не удается открыть файл "libboost_locale-vc142-mt-gd-x64-1_74.lib" Хоть убей, не могу понять в чём дел…
                G
                Gvozdik19 декабря 2023 г. 8:01
                Qt/C++ - Урок 056. Подключение библиотеки Boost в Qt для компиляторов MinGW и MSVC Для решения твой проблемы добавь в файл .pro строчку "LIBS += -lws2_32" она решит проблему , лично мне помогло.
                Сейчас обсуждают на форуме
                G
                Gar22 апреля 2024 г. 15:46
                Clipboard Как скопировать окно целиком в clipb?
                DA
                Dr Gangil Academics20 апреля 2024 г. 17:45
                Unlock Your Aesthetic Potential: Explore MSC in Facial Aesthetics and Cosmetology in India Embark on a transformative journey with an msc in facial aesthetics and cosmetology in india . Delve into the intricate world of beauty and rejuvenation, guided by expert faculty and …
                a
                a_vlasov14 апреля 2024 г. 16:41
                Мобильное приложение на C++Qt и бэкенд к нему на Django Rest Framework Евгений, добрый день! Такой вопрос. Верно ли следующее утверждение: Любое Android-приложение, написанное на Java/Kotlin чисто теоретически (пусть и с большими трудностями) можно написать и на C+…
                Павел Дорофеев
                Павел Дорофеев14 апреля 2024 г. 12:35
                QTableWidget с 2 заголовками Вот тут есть кастомный QTableView с многорядностью проект поддерживается, обращайтесь
                f
                fastrex4 апреля 2024 г. 14:47
                Вернуть старое поведение QComboBox, не менять индекс при resetModel Добрый день! У нас много проектов в которых используется QComboBox, в версии 5.5.1, когда модель испускает сигнал resetModel, currentIndex не менялся. В версии 5.15 при resetModel происходит try…

                Следите за нами в социальных сетях