IF
Igor FedyaevЖел. 27, 2018, 5: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, 9 Т.Қ.

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

                Пікірлер

                Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
                Кіріңіз немесе Тіркеліңіз
                OI
                • Ora Iro
                • Жел. 24, 2024, 6:38 Т.Ж.

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

                • Нәтиже:40ұпай,
                • Бағалау ұпайлары-8
                AD

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

                • Нәтиже:50ұпай,
                • Бағалау ұпайлары-4
                m
                • molni99
                • Қаз. 26, 2024, 1:37 Т.Ж.

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

                • Нәтиже:80ұпай,
                • Бағалау ұпайлары4
                Соңғы пікірлер
                ИМ
                Игорь МаксимовҚар. 22, 2024, 11:51 Т.Ж.
                Django - Оқулық 017. Теңшелген Django кіру беті Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
                Evgenii Legotckoi
                Evgenii LegotckoiҚаз. 31, 2024, 2:37 Т.Қ.
                Django - Сабақ 064. Python Markdown кеңейтімін қалай жазуға болады Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
                A
                ALO1ZEҚаз. 19, 2024, 8:19 Т.Ж.
                Qt Creator көмегімен fb3 файл оқу құралы Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
                ИМ
                Игорь МаксимовҚаз. 5, 2024, 7:51 Т.Ж.
                Django - Сабақ 064. Python Markdown кеңейтімін қалай жазуға болады Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
                d
                dblas5Шілде 5, 2024, 11:02 Т.Ж.
                QML - Сабақ 016. SQLite деректер қоры және онымен QML Qt-та жұмыс істеу Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
                Енді форумда талқылаңыз
                n
                nklyҚаң. 3, 2025, 2:52 Т.Ж.
                Нужно запретить перемещение только некоторых итемов, остальные перемещать можно. Вопрос решен. Узнать QModelIndex элемента на который мы перетаскиваем другой элемент, можно с помощью функции indexAt(event->position().toPoint()) представления QTreeViev вызываемой в переопр…
                AW
                Ayden WatkinsҚаң. 2, 2025, 12:09 Т.Ж.
                Why Paying for a Research Paper Can Be a Smart Choice Writing a research paper can be a daunting task, especially when faced with tight deadlines, complex topics, or a lack of resources. For many students, paying for a research paper is a practical…
                p
                pimacontrols85Жел. 31, 2024, 9:39 Т.Ж.
                Finding the Right Rittal Small Enclosure for Your Needs Rittal is a leading manufacturer of enclosures for industrial and IT applications. Their small enclosures offer a compact and reliable solution for a wide range of needs, from housing electronic…
                Donald Randolph
                Donald RandolphЖел. 30, 2024, 2:59 Т.Ж.
                Personal Injury lawyer Santa Monica As an experienced Santa Monica personal injury lawyer, Donald C. Randolph has recovered over $100 Million in verdicts and settlements for our clients. In severe injury cases, this compensation i…
                Nirvana Yoga School
                Nirvana Yoga SchoolЖел. 30, 2024, 5:13 Т.Ж.
                OAuth2.0 через VK, получение email Nirvana Yoga School is one of the most trusted and reputed traditional Rishikesh yoga courses , India certified by Yoga Alliance, USA. We aim to spread traditional yoga teachings so t…

                Бізді әлеуметтік желілерде бақылаңыз