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 р. 07:08

Добрый день.

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

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

    IF
    • 28 грудня 2018 р. 07:21

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

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

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

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

      IF
      • 28 грудня 2018 р. 07:22

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

        IF
        • 28 грудня 2018 р. 08: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 р. 08: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, о кроссплатформенности уже речи не идет.

                Коментарі

                Only authorized users can post comments.
                Please, Log in or Sign up
                AD

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

                • Результат:50бали,
                • Рейтинг балів-4
                m
                • molni99
                • 26 жовтня 2024 р. 01:37

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

                • Результат:80бали,
                • Рейтинг балів4
                m
                • molni99
                • 26 жовтня 2024 р. 01:29

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

                • Результат:20бали,
                • Рейтинг балів-10
                Останні коментарі
                ИМ
                Игорь Максимов22 листопада 2024 р. 11:51
                Django - Підручник 017. Налаштуйте сторінку входу до Django Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
                Evgenii Legotckoi
                Evgenii Legotckoi31 жовтня 2024 р. 14:37
                Django - Урок 064. Як написати розширення для Python Markdown Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
                A
                ALO1ZE19 жовтня 2024 р. 08:19
                Читалка файлів fb3 на Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
                ИМ
                Игорь Максимов05 жовтня 2024 р. 07:51
                Django - Урок 064. Як написати розширення для Python Markdown Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
                d
                dblas505 липня 2024 р. 11:02
                QML - Урок 016. База даних SQLite та робота з нею в QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
                Тепер обговоріть на форумі
                Evgenii Legotckoi
                Evgenii Legotckoi24 червня 2024 р. 15:11
                добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
                t
                tonypeachey115 листопада 2024 р. 06:04
                google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
                NSProject
                NSProject04 червня 2022 р. 03:49
                Всё ещё разбираюсь с кешем. В следствии прочтения данной статьи. Я принял для себя решение сделать кеширование свойств менеджера модели LikeDislike. И так как установка evileg_core для меня не была возможна, ибо он писался…
                9
                9Anonim25 жовтня 2024 р. 09:10
                Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…

                Слідкуйте за нами в соціальних мережах