Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / OLE сервер Java / 17 сообщений из 17, страница 1 из 1
26.09.2012, 10:57:55
    #37972558
iDimash
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OLE сервер Java
Добрый день!

Хочу написать программу, которая будет работать фискальным принтером. Принтер работает через COM порт. В руководстве принтера описаны только методы управления OLE сервера.

Также в руководстве написано: "Определение и формат методов приводится в нотации PASCAL. Все методы OLE-сервера реализованы в виде функций."

Как можно подключиться к принтеру из JAVA?
...
Рейтинг: 0 / 0
26.09.2012, 11:27:23
    #37972604
grasoff.net
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OLE сервер Java
iDimashКак можно подключиться к принтеру из JAVA?
iDimashПринтер работает через COM порт.
через com-порт!!
rxtx в гугле

а что за модель?
...
Рейтинг: 0 / 0
26.09.2012, 11:30:56
    #37972612
iDimash
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OLE сервер Java
grasoff.net
а что за модель?

unisystem MINI FP6
...
Рейтинг: 0 / 0
26.09.2012, 11:42:20
    #37972633
grasoff.net
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OLE сервер Java
iDimashgrasoff.netа что за модель?

unisystem MINI FP6ну, они странные, да - чето нет на сайте ничего
можно запрос написать, чтоб дали
если не дадут - ну, можно помониторить что они в компорт пишут/читают
...
Рейтинг: 0 / 0
26.09.2012, 11:52:17
    #37972658
iDimash
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OLE сервер Java
grasoff.net,

Спасибо, буду разбираться.

Ну в руководстве есть все необходимые методы и примеры написанные на Делфи, но как это все осуществить в Java?
...
Рейтинг: 0 / 0
26.09.2012, 12:05:31
    #37972679
grasoff.net
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OLE сервер Java
iDimashНу в руководстве есть все необходимые методы и примеры написанные на Делфи, но как это все осуществить в Java?чото я не нашёл.
там высокоуровневые только - типа вызвать какую-то функцию. а что она конкретно в порт
посылает/читает - я не виделъ.

но теоретически можно и на этом уровне работать, через тот, который они сами предлагают
посмотреть, например, JNA

но я б сначала у них спросил - пусть дают документацию по протоколу )
...
Рейтинг: 0 / 0
26.09.2012, 12:25:51
    #37972721
iDimash
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OLE сервер Java
grasoff.net,

автортам высокоуровневые только - типа вызвать какую-то функцию. а что она конкретно в порт
посылает/читает - я не виделъ.


Вы это имеете ввиду?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
Чтение параметров состояния принтера  ( метод PrinterState_ 

Назначение:  Чтение значений основных параметров состояния принтера.

Формат:       PrinterState_ (Ncom: Integer; 
var AbortLastCommand, Fiscal, NewTax, OpenCheck, 
      SaleYes, TypeTax, LastCheck,  OnLine, ExtInd: WordBool;
 var SerialNumber, DateSerialNumber, RegNumber, DateFiscal, TimeFiscal, Str1, Str2, Str3, Str4, Vers: WideString;
  var Dh1,Dh2,Dh3,Dh4, Dw1,Dw2,Dw3,Dw4: WordBool): WordBool;

Результат:   Истина	 – операция выполнена;  Ложь – операция не выполнена.

Входные параметры:
Ncom	 –	номер COM-порта (1 – 8);
     
Выходные параметры:
AbortLastCommang     True   – аварийное завершение последней команды
False – нормальное завершение последней команды
Fiscal          		     True   – фискальный принтер фискализирован
False – фискальный принтер не фискализирован
NewTax       		     True   – введены новые налоговые ставки
False – налоговые ставки прежние
OpenCheck 		     True   – есть открытый чек; False – нет открытого чека
SaleYes   		     True   – после выдачи Z-отчета были продажи/выплаты
False – после выдачи Z-отчета не было продаж/выплат
TypeTax   		     True   – вид налога ~ НДС наложенный
False – вид налога ~ НДС вложенный
LastCheck		     True   – последний чек – выплата;  False – последний чек - продажи
OnLine	              True   – OnLine режим печати чека (печать чека осуществляется при регистрации товара (методы Sale_ и Disburse_) и при оплате чека (метод Pay_) )
False – OffLine режим печати чека (распечатка всего чека осуществляется при оплате чека (метод Pay_)
ExtInd	              True   – Подключен внешний индикатор клиента; False – не подключен
SerialNumber    	     Серийный номер принтера (10 символов)
DateSerialNumber       Дата заводского номера (изготовления) в формате:  ДД-ММ-ГГ
RegNumber    	     Регистрационный (фискальный) № принтера
DateFiscal    	              Дата фискализации принтера в формате:  ДДММГГ
TimeFiscal    	              Время фискализации принтера в формате:  ЧЧММ
Str1       	   	    Текст 1-й строки заголовка чека
Str2       	   	    Текст 2-й строки заголовка чека
Str3       	   	    Текст 3-й строки заголовка чека
Str4       	   	    Текст 4-й строки заголовка чека
Vers       	   	    Версия фискального принтера
Dh1,Dh2,Dh3,Dh4      Тип шрифта 1,2,3,4-й строк заголовка чека (True – двойная высота шрифта; 
False – одинарная высота)
Dw1,Dw2,Dw3,Dw4  Тип шрифта 1,2,3,4-й строк заголовка чека  (True – двойная ширина шрифта; 
False – одинарная ширина)

Формируемые свойства:   

LastErr: integer;   	                    0 – нормальное завершение выполненной команды; 1 – нет.
AbortLastCommang: integer;   	1 – аварийное завершение последней команды; 0 – нет. 
Fiscal: integer;          	1 – фискальный принтер фискализирован; 0 – нет. 
NewTax: integer;       	1 – введены новые налоговые ставки; 0 – налоговые ставки прежние.
OpenCheck: integer; 	1 – есть открытый чек; 0 – нет открытого чека
SaleYes: integer;   	1 – после выдачи Z-отчета были продажи/выплаты; 0 – нет.
TypeTax: integer;   	вид налога:  1 –НДС наложенный; 0 –НДС вложенный.
LastCheck: integer;	1 – последний чек – выплата;  0 – последний чек – продажи.
OnLine: integer;         	1 – OnLine режим печати чека (печать чека осуществляется при регистрации товара (методы Sale_ и Disburse_) и при оплате чека (метод Pay_) )
	0 – OffLine режим печати чека (распечатка  при оплате чека (метод Pay_)
ExtInd: integer;          		1 – подключен внешний индикатор клиента; 0 – не подключен
SerialNumber: widestring;    	Серийный номер принтера (10 символов)
DateSerialNumber: widestring;   	Дата заводского номера (изготовления) в формате:  ДД-ММ-ГГ
RegNumber: widestring;      	Регистрационный (фискальный) № принтера
DateFiscal: widestring;  	Дата фискализации принтера в формате:  ДДММГГ
TimeFiscal: widestring;	Время фискализации принтера в формате:  ЧЧММ
Str1, Str2, Str3, Str4: widestring; Текст 1,2,3,4-й строки заголовка чека
Vers: widestring;  	Версия фискального принтера
Dh1,Dh2,Dh3,Dh4: integer;     	Шрифт 1,2,3,4-й строк заголовка чека (1 – двойная высота; 0  – одинарная)
Dw1,Dw2,Dw3,Dw4: integer;  	Шрифт 1,2,3,4-й строк заголовка чека (1 – двойная ширина; 0 – одинарная)

Пример метода PrinterState_

Исходные данные: МІНІ-ФП6 фискализирован и подключен к COM1.

Реализация:  // Определение переменных 
var AbortLastCommand, Fiscal, NewTax,OpenCheck,SaleYes,TypeTax,LastCheck,  
OnLine, ExtInd, Dh1, Dh2, Dh3, Dh4, Dw1, Dw2, Dw3, Dw4: WordBool;
SerialNumber, DateSerialNumber, RegNumber, DateFiscal, TimeFiscal, Str1, Str2, Str3, Str4, Vers: WideString;
	FP6: Variant;

FP6:=CreateOleObject( 'OLE_MiniFP6.FP6' );       // Создание объекта OLE-сервера
//  Выполнение метода
If FP6.PrinterState_ (1, AbortLastCommand, Fiscal, NewTax, OpenCheck, 
    SaleYes, TypeTax, LastCheck, OnLine,ExtInd,SerialNumber, DateSerialNumber, RegNumber, DateFiscal, TimeFiscal, Str1, Str2, Str3, Str4, Vers, Dh1,Dh2,Dh3,Dh4, Dw1,Dw2,Dw3,Dw4) = True
Then ShowMessage(‘Состояние принтера определено’);

// Или с использованием сформированных свойств:
FP6.PrinterState_ (1, AbortLastCommand, Fiscal, …,Dw4);
If FP6.LastErr = 0  Then ShowMessage(‘Состояние принтера определено’);


Если выполнение метода завершилось нормально, выходные параметры и свойства будут содержать реальные значения, например, значения выходных параметров:

AbortLastCommang   False – нормальное завершение последней команды
Fiscal          		      True   – фискальный принтер фискализирован
NewTax       		      False – налоговые ставки прежние
OpenCheck 		      False – нет открытого чека
SaleYes   		      True   – после выдачи Z-отчета были продажи/выплаты
TypeTax   		      False – вид налога ~ НДС вложенный
LastCheck		      False – последний чек - продажи
BlkPrint		      False – печать разблокирована
OnLine		      True – OnLine режим печати чека
ExtInd	              True – фискальный принтер включает как внутренний, так и внешний индикатор клиента
SerialNumber    	      ПР03000019       ~ серийный номер принтера 
DateSerialNumber     26-08-03              ~ дата заводского номера (изготовления)
RegNumber    	      21542001            ~  регистрационный (фискальный) № принтера
DateFiscal    	      150903                ~ дата фискализации принтера  (15-09-03)
TimeFiscal    	      1307	         ~ время фискализации принтера  13 час. 7 мин.
Str1       	   	      Украина, г.Киев   ~ текст 1-й строки заголовка чека
Str2       	   	      НПФ Юнисистем ~ текст 2-й строки заголовка чека
Str3       	   	      Р.Н. 21542001     ~ текст 3-й строки заголовка чека
Str4       	   	      тел. 236-5-236     ~ текст 4-й строки заголовка чека
Vers       	   	      257.01                  ~ версия фискального принтера
Dh1,Dw1		      True   – двойная высота и ширина шрифта 1-й строки заголовка чека
Dh2,Dh3,Dh4	      False – одинарная высота шрифта 2,3,4-й строк заголовка чека
Dw2,Dw3,Dw4	      False – одинарная ширина шрифта 2,3,4-й строк заголовка чека



Чтобы получить руководство программиста нужно установить OLE-сервер. В версии для Линукса можно его взять прямо с архива, без установки.
...
Рейтинг: 0 / 0
26.09.2012, 12:27:01
    #37972726
grasoff.net
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OLE сервер Java
iDimashВ версии для Линукса можно его взять прямо с архива, без установки.угу, я знаю

да, я про это
...
Рейтинг: 0 / 0
26.09.2012, 12:45:39
    #37972764
iDimash
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OLE сервер Java
Ну хотелось бы конечна работать на таком уровне. Я так понял эти функции нужно слать ОЛЕ серверу, вот мне нужно сделать из Java. Есть какие то соображения на счет этого?

А вот слать все прямиком на порт, ну уж не знаю :) Для меня это что то новое и страшное :), но попробовать думаю стоит.
Попрошу у них доку по протоколу :)
Я конечно не спец в этом но мне кажется на таком низком уровне откроется масса возможностей, которые не должны быть доступны простым смертным, например статус фискализации принтера :)
...
Рейтинг: 0 / 0
26.09.2012, 13:10:33
    #37972800
grasoff.net
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OLE сервер Java
iDimashЯ так понял эти функции нужно слать ОЛЕ серверу, вот мне нужно сделать из Javaда

http://sourceforge.net/projects/jacob-project/
...
Рейтинг: 0 / 0
26.09.2012, 18:18:54
    #37973319
iDimash
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OLE сервер Java
grasoff.netiDimashНу в руководстве есть все необходимые методы и примеры написанные на Делфи, но как это все осуществить в Java?чото я не нашёл.
там высокоуровневые только - типа вызвать какую-то функцию. а что она конкретно в порт
посылает/читает - я не виделъ.

но теоретически можно и на этом уровне работать, через тот, который они сами предлагают
посмотреть, например, JNA

но я б сначала у них спросил - пусть дают документацию по протоколу )

Тех.поддержка ответила. Сказали что все необходимые доки. на сайте и что управление происходит через ОЛЕ сервер который работает и по Окнами и под Пингвинами и конектица нужно к нему :) Как я это сделаю, мои заботы :)
...
Рейтинг: 0 / 0
26.09.2012, 19:37:33
    #37973418
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OLE сервер Java
iDimash,
Если через оле то всё просто.
Представь что принтер это Excell OLE
...
Рейтинг: 0 / 0
27.09.2012, 00:38:27
    #37973708
grasoff.net
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OLE сервер Java
iDimashgrasoff.netпропущено...
чото я не нашёл.
там высокоуровневые только - типа вызвать какую-то функцию. а что она конкретно в порт
посылает/читает - я не виделъ.

но теоретически можно и на этом уровне работать, через тот, который они сами предлагают
посмотреть, например, JNA

но я б сначала у них спросил - пусть дают документацию по протоколу )

Тех.поддержка ответила. Сказали что все необходимые доки. на сайте и что управление происходит через ОЛЕ сервер который работает и по Окнами и под Пингвинами и конектица нужно к нему :) Как я это сделаю, мои заботы :)хм
а мне ответили, что ок, могут выслать мне, если я являюсь клиентом
но я не являюсь )
...
Рейтинг: 0 / 0
27.09.2012, 07:34:46
    #37973807
Alexey Kuznetsov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OLE сервер Java
iDimashДобрый день!

Хочу написать программу, которая будет работать фискальным принтером. Принтер работает через COM порт. В руководстве принтера описаны только методы управления OLE сервера.

Также в руководстве написано: "Определение и формат методов приводится в нотации PASCAL. Все методы OLE-сервера реализованы в виде функций."

Как можно подключиться к принтеру из JAVA?

Я делал такое для штриха и феликса с использованием jacob COM Bridge

там все достаточно тривиально
главное прописать в свойствах путь до dll якоба
что то типа: System.setProperty("jacob.dll.path","../lib/jacob-x86.dll");
...
Рейтинг: 0 / 0
27.09.2012, 10:39:24
    #37974015
iDimash
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OLE сервер Java
[quot grasoff.net]iDimashпропущено...
а мне ответили, что ок, могут выслать мне, если я являюсь клиентом
но я не являюсь )

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

Как вы спрашивали, если не секрет и кто вам ответил? Можно в личку :)
...
Рейтинг: 0 / 0
27.09.2012, 11:20:25
    #37974102
iDimash
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OLE сервер Java
Alexey KuznetsoviDimashДобрый день!

Хочу написать программу, которая будет работать фискальным принтером. Принтер работает через COM порт. В руководстве принтера описаны только методы управления OLE сервера.

Также в руководстве написано: "Определение и формат методов приводится в нотации PASCAL. Все методы OLE-сервера реализованы в виде функций."

Как можно подключиться к принтеру из JAVA?

Я делал такое для штриха и феликса с использованием jacob COM Bridge

там все достаточно тривиально
главное прописать в свойствах путь до dll якоба
что то типа: System.setProperty("jacob.dll.path","../lib/jacob-x86.dll");

А можно пожалуйста по подробней?
...
Рейтинг: 0 / 0
27.09.2012, 15:06:58
    #37974612
Alexey Kuznetsov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OLE сервер Java
iDimash
А можно пожалуйста по подробней?

стукни в мыло из профиля
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / OLE сервер Java / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]