| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Программное обеспечение > [FireFox] Сохранить данные в файл и запустить bat |
| Автор: Akella 9.12.2010, 12:34 | ||
| Может я сейчас глупость скажу, но всё же Предисловие. В общем на филиалах установлены только матричные принтеры. Из виндовой программы печатать в ТЕКСТОВОМ режиме шрифтами самого принтера проблем не составляет. Но вот незадача. Организация переходит на ВЕБ. Т.е. пользователи будут работать в браузере. Почти все в Firefox. В программе есть такое понятие, как конструктор печати для создания всевозможных отчётов. Отчёты создаются ввиде текстовых файлов, которые отображаются в браузере моноширным шрифтом с разделителями. вот так примерно выглядит это в браузере: ![]() Теперь вопрос. Было бы неплохо, если бы программно из браузера можно было выполнить сохранение этого файла на диск, в какую-нибудь временную папку и потом запустить BAT (CMD) файл, для распечатывания такой командой:
Но на сколько мне известно, браузер из-за соображений безопасности не может такое сделать. Какие есть варианты. Может есть готовые дополнения?? И ещё. Если у кого есть возможность разработать расширение для Firefox под заказ, готовы оплатить. |
| Автор: Akella 9.12.2010, 13:01 | ||||
| На данный момент работает из виндовой программы так: есть командный файл в папке программы вида:
и вот так запускаем на печать:
|
| Автор: Snowy 9.12.2010, 13:36 |
| Можно написать крохотную програмку без интерфейса, которая будет выводить файл, передаваемый в коммандной строке в порт дефолтового принтера. Далее, создать ей ассоциацию с файлами с расширением, например, ".prn" Таким образом, можно всем отчётам назначаем расширение ".prn" и, при открытии в любом браузере, они автоматом уйдут на печать... Добавлено через 39 секунд Разумеется, придётся всем пользователям её установить. Но плагин тоже ведь ставить нужно. |
| Автор: Akella 9.12.2010, 16:29 | ||
а на Firefox можно что-то похожее провернуть?
|
| Автор: Xenag 10.12.2010, 02:05 |
| Для старого фирефокса был плагин для подключения ActiveX. Правда глючноватый... А сейчас рекомендуют только IE. Точнее плагины, которые открывают IE во вкладке фирефокса. Но это всё не вкусно. Не вижу разницы между IE и IE в виде вкладки фирефокса. Только заморочки с тем, как открывать страницу - в фоксе или в IE. Вобщем активикс - только для IE. Если хочешь - пересаживайте всех с фокса на IE. Но в последнем IE с активиксами тоже не всё просто. Капризный он стал. Нужно бороться с настройками безопасности. Я вообще с фоксом не дружу - тормозной он слишком. Но, если сравнивать с хромом или оперой, то работа с портами на уровне плагинов - задача подозрительная. Не факт, что реализовать просто. В отличие от IE, тут ограничения безопасности параноидальные. |
| Автор: Akella 10.12.2010, 10:48 |
| Тем не менее, FF мне кажется наиболее перспективным. Вот наши разработчики пишут код и он нормально работает только в FF. А для остальных браузеров нужно допиливать напильниками. Я был немного шокирован. Оказывается в вебе тоже не так всё просто с кроссплатформенностью, если так можно назвать. В вебе оно зовётся кроссбраузерность. |
| Автор: bilbobagginz 21.12.2010, 07:51 |
| Akella, Акелла, а разьве нельзя через политики безопасности или логон скрипт определить всем принтер НЕ ПО УМОЛЧАНИЮ, и просто тупо печатать на него отчет ? разьве в JS нет функции печати через браузер printWithDialog(), print() ? там еще можно определить CSS для печати, чтобы было fixed-width (и предполагаю, что функции можно передать путь на принтер) |
| Автор: Akella 21.12.2010, 10:26 |
| я не понимаю о чём ты Добавлено через 1 минуту и 52 секунды Представь, что к компьютеру подключен к LPT матричный принтер Epson. Нужно на него отправить текст в DOS кодировке. Текст, а не графику. На всякий случай скажу, что печать данных виндовыми шрифтами - это не текст и печать из Word`а и даже Блокнота - это тоже не текст. |
| Автор: Sibit 23.12.2010, 10:13 | ||
Сохранять файлы в FireFox можно, только это делается по-другому чем в експлорере
Сам пример выдрал из проекта http://www.tiddlywiki.com/ сохранение данных закомментировал что бы работало как есть. А распечатку сделать через задание, т.е. браузер сохраняет файл в определенную папку, а скрипт по заданию заглядывает туда и если она не пуста - отправляет не печать. |
| Автор: Akella 23.12.2010, 10:37 | ||
| дело не только в сохранении, а дело ещё в отправке этого файла на prn Добавлено через 1 минуту и 12 секунд
какой скрипт, по какому заданию? |
| Автор: Sibit 23.12.2010, 11:38 |
| Скрипт простой, типа copy $PATH/file.txt LPT1 del .\file.txt Дело же в винде происходит? Тогда Пуск>Панель управления>Назначенные задания>Добавить задания Там выбрать свой скрипт и настроить его запуск раз в минуту |
| Автор: Snowy 23.12.2010, 12:34 |
| Отправлять через задание - потоконебезопасное занятие. Тут вступают в игру две крайности - Увеличивая интервал, заставляем пользователя дольше ждать начала печати, сокращая интервал, рискуем увеличить шанс того, что документ уйдёт на печать не полностью. Можно, конечно, пойти по принципу, как делали в DOS, добавляя файл-флаг, что сильно усложняет алгоритм. Но, если интервал будет достаточно мал, то событие может наступить повторно ещё до окончания печати (не забываем - принтер матричный), особенно, если документ на N количество страниц. Конечно, если взять большой и широкий напильник, то можно победить многозадачность винды... |
| Автор: Sibit 23.12.2010, 12:52 |
| Ну тут можно навыдумывать всякого, например, сначала переносить файл с уникальным именем в спец папку а оттуда уже отправлять на печать. |
| Автор: Akella 23.12.2010, 14:17 | ||
Добавлено через 1 минуту и 56 секунд Ребята плагин уже написан. Я не знаю Kefir выложил его на паблик в mozdev или нет. Но если что, вот он, прикрепил к письму: |
| Автор: Akella 23.12.2010, 14:23 |
| Sibit, я не понимаю тебя, зачем ТАК извращаться? Это называется "настоящие герои всегда идут в обход" |
| Автор: Sibit 24.12.2010, 05:56 |
Я просто вариант предложил PS за то я теперь знаю как сохранять файлы на диск в фаерфоксе. |
| Автор: Akella 24.12.2010, 10:25 |
в больших конторах и где нет контроля очень даже популярны: не нужна дорогая ксероксная бумага, дешёвая лента, никто из работников не станет на нём печатать себе личные документы типа курсовые или дипломные. |
| Автор: Akina 24.12.2010, 10:33 |
| Akella, я не понимаю твоей проблемы. Установи ещё один принтер. Тип - локальный, привязка - LPT1 (или где там матричник), драйвер: производитель Generic, имя Generic/TextOnly. И печатай прямо на него из файрфокса. |
| Автор: Akella 24.12.2010, 15:10 |
| Спасибо, попробую |
| Автор: Akella 27.12.2010, 12:11 | ||
Установил принтер (Generic, имя Generic/TextOnly). Выбрал Файл->Печать, отправил на печать. Принтер просто выбрасывает лист бумаги и ничего не печатает. |
| Автор: Akina 27.12.2010, 12:48 |
Значит, на печатаемом документе нет текстовых данных. |
| Автор: Akella 27.12.2010, 15:19 |
| да что ты говоришь |