Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Java printing PDF под Windows / 9 сообщений из 9, страница 1 из 1
04.03.2014, 18:00
    #38578128
irbis_al
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java printing PDF под Windows
Добрый день уважаемые форумчане.
Имеем стандартный код печати java printing
Код: java
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.
PrintService defaultPrintService =null; 
//Поиск нужного принтера
            if (printer==null) {defaultPrintService= PrintServiceLookup.lookupDefaultPrintService(); } 
                                   else {
                                       
                                       PrintService[] service = PrintServiceLookup.lookupPrintServices(null, null);
                                       for (PrintService sp:service) {
 if (sp.getName().equals(printer)) {defaultPrintService=sp;break;}
 if (defaultPrintService==null) 
defaultPrintService= PrintServiceLookup.lookupDefaultPrintService();
}
                                   }

//Конец поиска нужного принтера
             DocPrintJob printerJob = defaultPrintService.createPrintJob();  
            SimpleDoc simpleDoc = null;  
       
                        try {  
               
               InputStream pdfFile=new FileInputStream("xmldesktop/tmprep/tmp.pdf");
               if (Platform.isWindows()) simpleDoc = new SimpleDoc(pdfFile, DocFlavor.INPUT_STREAM.AUTOSENSE, null);  
                   else   simpleDoc = new SimpleDoc(pdfFile, DocFlavor.INPUT_STREAM.PDF,null );  
                           
                    
                        }  
                        catch ( Exception fe) { fe.printStackTrace();  }
                    try {  
                        printerJob.print(simpleDoc,null);  
                    } catch (PrintException ex) {  
                        ex.printStackTrace();  
                    }  
                      
        }



Так вот из под Linux ,Maca,FreeBsd и т.д Всё классно печатается ..без проблем.
А блин под Виндой...Как бог на душу положит.Иногда печатает...иногда не печатает.(Приходится через предварительный просмотр Adobe reader печатать).
(adobe reader еа винде естественно установлен)
POS принтера никогда под виндой не печатают....какой то мусор "срут".
А Лазерные офисные принтера серии Canon ..Нормально работают в этом коде под виндой.
Другие принтера HP,samsung по разному...раз на раз не приходится.Чёткий статистики нет.


У кого есть какой опыт печати PDF из под винды в режиме java printing поделитесь,пожалуйста.

P.S Печать из сторонних класов Типа IcePDF или PDFBox и т.д не предлагать...(Интересует чисто printerJob.print() )
...
Рейтинг: 0 / 0
04.03.2014, 18:04
    #38578138
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java printing PDF под Windows
Desktop.print()?
...
Рейтинг: 0 / 0
04.03.2014, 18:10
    #38578150
irbis_al
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java printing PDF под Windows
BlazkowiczDesktop.print()?
Да...действительно...можно попробовать..Протестировать.Благодарю за наводку.
...
Рейтинг: 0 / 0
06.04.2014, 09:52
    #38606321
irbis_al
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java printing PDF под Windows
Попробовал(извините за задержку ,-клиентов на винде мало и их всё меньше)
Работает.Но возникает проблема .программа теряет фокус(из-за того,что adobe acrobat га мгновение промелькивает,как видимо для печати)
Так как рабочее место для магазина это имеет значение. Ибо оператор нажала кнопочку чек убрался с
экрана.А сейчас(после печати,после того как акробат промелькнёт)надо щёлкнуть мышкой по проге.
а потом нажать на кнопочку "убрать чек с экрана и тут же открыть новый".
И это конечно неудовлетворительно.
Я вернул клиента на старое решений.(на многозвенку java прога socket->socket дельфи прога->печать)
Поэтому опять вопрос в студию .Как заставить печатать нативным java print под windows?
...
Рейтинг: 0 / 0
07.04.2014, 17:43
    #38607563
irbis_al
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java printing PDF под Windows
Сегодня переставил adobe acrobat reader на более раннюю версию.
И более ранняя версия(9.5) фокус не крадёт.всё работает "пучком"..
Всем благодарность. :-)
...
Рейтинг: 0 / 0
07.04.2014, 19:36
    #38607652
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java printing PDF под Windows
Можно было какой-нибудь focus/window listener настроить. Или "охранника", который бы проверял в фокусе ли окно и возвращал фокус по таймеру.
...
Рейтинг: 0 / 0
09.04.2014, 18:35
    #38610376
lleming
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java printing PDF под Windows
foxit reader получше будет.
там специально есть headerless print опция. на печать уходит в backgroundе
он отступы правильнее обрабатывает.

desktop.print() у меня плохо работал. так как на печать уходили смешанные Portrait и Landscape документы. То растянет то сожмет документы.
...
Рейтинг: 0 / 0
10.04.2014, 10:10
    #38610786
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java printing PDF под Windows
llemingdesktop.print() у меня плохо работал. так как на печать уходили смешанные Portrait и Landscape документы. То растянет то сожмет документы.
Desktop.print() вызывает системную ассоциацию для печати. Он не может "плохо" работает. Он просто делегирует задачу в ОС. А там уже как у вас настроено.
...
Рейтинг: 0 / 0
14.04.2014, 10:59
    #38613996
lleming
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java printing PDF под Windows
Blazkowiczllemingdesktop.print() у меня плохо работал. так как на печать уходили смешанные Portrait и Landscape документы. То растянет то сожмет документы.
Desktop.print() вызывает системную ассоциацию для печати. Он не может "плохо" работает. Он просто делегирует задачу в ОС. А там уже как у вас настроено.

тут то вы правы. она не работает плохо.

можно было выделить пучок документов pdf, нажать правой кнопкой и отправить на печать и получить в итоге тоже самое неправильное сжатие или растяжение растяжение документов при печати.

скорее всего генератор pdf документов лепил все под одну гребенку и указывал структуре в pdf что он portrait на все документы а там и landscape были тоже. отсюда и косяки шли.


foxit судя по всему пытается понять portrait или landscape и затем слал их на печать.

к тому же у него есть headless функция так что все класно. ничего не моргает не появляется на экране.

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


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