Автор Тема: [Автоматизация] Сохранение PDF-файла из IE и отправка на печать, не имея явной ссылки на него  (Прочитано 2468 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Эта тема содержит сообщение, помеченное как лучший ответ. Кликните здесь для перехода к этому сообщению.

Оффлайн sh0ha [?]

  • Новичок
  • *
  • Сообщений: 3
  • Репутация: 0
    • Награды
  • Версия AutoIt: 3.3.14.0
День добрый, подскажите пожалуйста, на странице сайта есть кнопка "Печать", после нажатия которого загружается PDF документ. Мне необходимо автоматизировать процесс сохранения и последующей печати загруженного PDF-файла.
 

Русское сообщество AutoIt


Оффлайн inververs [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 2135
  • Репутация: 462
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Нужно версия браузера и скриншот как происходит процесс сохранения.

Оффлайн sh0ha [?]

  • Новичок
  • *
  • Сообщений: 3

  • Автор темы
  • Репутация: 0
    • Награды
  • Версия AutoIt: 3.3.14.0
Нужно версия браузера и скриншот как происходит процесс сохранения.

Версия браузера Internet Explorer 11, скриншот прилагаю


Добавлено: Апрель 27, 2017, 10:46:45
Ребята помогите, очень нужно! Я с Autoit первый день знаком.


Внимание: Для просмотра прикреплённых файлов необходимо Войти или Зарегистрироваться
« Последнее редактирование: Апрель 27, 2017, 10:46:45 от sh0ha, Причина: Объединение сообщений »

Русское сообщество AutoIt


Помечен как лучший ответ пользователем sh0ha Отправлен Апрель 28, 2017, 07:26:06

Оффлайн inververs [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 2135
  • Репутация: 462
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
С какого момента нужен скрип?  С нажатия на кнопку печать? С нажатия на кнопку сохранить?


Добавлено: Апрель 27, 2017, 16:09:22
Я могу помочь с момента, когда браузер уже показывает диалог сохранения. Т.е вы сами должны нажать печать.
Что бы этот скрипт работал, вам нужно скачать библиотеку https://autoit-script.ru/index.php?topic=16780.0 и распаковать файлы в туже папку, где будет скрипт.

Сам скрипт:
Код: AutoIt [Выделить]
#include 'UIAutomate.au3'
If Not _IeNotificationBarClick() Then
    MsgBox(16 + 262144, 'Скрипт завершен с ошибкой', @error)
    Exit 1
EndIf
MsgBox(64 + 262144, 'Выполено успешно', 'Нажато сохранить. Вам осталось дождаться загрузки и распечатать файл.')
_IeNotificationBarClick('Закрыть')

Func _IeNotificationBarClick($sText = 'Сохранить')
    Local $hNotificationBar = ControlGetHandle('[CLASS:IEFrame;]', '', '[CLASS:Frame Notification Bar; INSTANCE:1]')
    If @error Or Not $hNotificationBar Then
        Return SetError(1, @error, False)
    EndIf
    Local $oNotificationBar = _UIA_GetElementFromHandle($hNotificationBar)
    If @error Or Not IsObj($oNotificationBar) Then
        Return SetError(2, @error, False)
    EndIf
    Local $oCondition = _UIA_CreatePropertyCondition($UIA_NamePropertyId, $sText)
    If @error Or Not IsObj($oCondition) Then
        Return SetError(3, @error, False)
    EndIf
    Local $oButton = _UIA_GetElementFromCondition($oNotificationBar, $oCondition)
    If @error Or Not IsObj($oButton) Then
        Return SetError(4, @error, False)
    EndIf
    If Not _UIA_ElementDoDefaultAction($oButton) Then
        Return SetError(5, @error, False)
    EndIf
    Return True
EndFunc
 

« Последнее редактирование: Апрель 27, 2017, 16:11:37 от inververs »

Оффлайн Vovsla [?]

  • Осваивающий
  • **
  • Сообщений: 546
  • Репутация: 26
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
По идее на странице в любом случае должна быть ссылка на сам pdf, т.е. его можно скачать
А распечатать можно так
Код: AutoIt [Выделить]
ShellExecuteWait('имя файла', '', '', 'print')
 


Была бы ссылка на страницу можно было бы сделать сохранение


Добавлено: Апрель 27, 2017, 18:02:42
Или просто текст страницы

Русское сообщество AutoIt


Оффлайн sh0ha [?]

  • Новичок
  • *
  • Сообщений: 3

  • Автор темы
  • Репутация: 0
    • Награды
  • Версия AutoIt: 3.3.14.0
С какого момента нужен скрип?  С нажатия на кнопку печать? С нажатия на кнопку сохранить?


Добавлено: Апрель 27, 2017, 16:09:22
Я могу помочь с момента, когда браузер уже показывает диалог сохранения. Т.е вы сами должны нажать печать.

Сам скрипт:
(нажмите для показа/скрытия)

Спасибо большое, работает!
А как сделать что бы скрипт после нажатия кнопки Сохранить не завершался, а ждал следующее окно когда будет предложено сохранить?


Добавлено: Апрель 28, 2017, 09:04:05
По идее на странице в любом случае должна быть ссылка на сам pdf, т.е. его можно скачать
(нажмите для показа/скрытия)
Ссылка есть, но вот примерно такая: http://......../ReportService/GetReportFile/ReportCacheKey_237451b1-ef64-4fb5-8e5a-3aaea0ce4ff5
« Последнее редактирование: Апрель 28, 2017, 09:04:06 от sh0ha, Причина: Объединение сообщений »

Оффлайн Vovsla [?]

  • Осваивающий
  • **
  • Сообщений: 546
  • Репутация: 26
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Цитировать
Ссылка есть, но вот примерно такая: http://......../ReportService/GetReportFile/ReportCacheKey_237451b1-ef64-4fb5-8e5a-3aaea0ce4ff5

Нужен было содержимое самой страницы, по сути нужно узнать прямую ссылку на PDF чтобы его скачать. Если она всегда одна и та же, то можно только ее и использовать, если нет, то нужно будет получать из содержимого страницы

Русское сообщество AutoIt


 

Похожие темы

  Тема / Автор Ответов Последний ответ
5 Ответов
8930 Просмотров
Последний ответ Июнь 27, 2011, 15:27:20
от ShSergey
2 Ответов
2628 Просмотров
Последний ответ Январь 20, 2012, 21:03:55
от black1
14 Ответов
6442 Просмотров
Последний ответ Сентябрь 06, 2013, 17:58:18
от CreatoR
5 Ответов
3111 Просмотров
Последний ответ Октябрь 18, 2013, 20:44:20
от SlavaS
8 Ответов
3396 Просмотров
Последний ответ Декабрь 22, 2014, 09:38:53
от pvnn
0 Ответов
785 Просмотров
Последний ответ Апрель 13, 2015, 11:18:00
от lelik_keo
2 Ответов
2612 Просмотров
Последний ответ Апрель 15, 2015, 12:45:14
от InnI
8 Ответов
5739 Просмотров
Последний ответ Ноябрь 18, 2015, 18:57:52
от InnI
0 Ответов
374 Просмотров
Последний ответ Январь 16, 2018, 22:40:43
от TiranCool
0 Ответов
248 Просмотров
Последний ответ Февраль 08, 2019, 01:10:45
от Sky Green