powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / OLE сервер Java
17 сообщений из 17, страница 1 из 1
OLE сервер Java
    #37972558
iDimash
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

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

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

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

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

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

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

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

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

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

но я б сначала у них спросил - пусть дают документацию по протоколу )
...
Рейтинг: 0 / 0
OLE сервер Java
    #37972721
iDimash
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
OLE сервер Java
    #37972726
Фотография grasoff.net
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iDimashВ версии для Линукса можно его взять прямо с архива, без установки.угу, я знаю

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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