powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Java printing PDF под Windows
9 сообщений из 9, страница 1 из 1
Java printing PDF под Windows
    #38578128
irbis_al
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день уважаемые форумчане.
Имеем стандартный код печати 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
Java printing PDF под Windows
    #38578138
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Desktop.print()?
...
Рейтинг: 0 / 0
Java printing PDF под Windows
    #38578150
irbis_al
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczDesktop.print()?
Да...действительно...можно попробовать..Протестировать.Благодарю за наводку.
...
Рейтинг: 0 / 0
Java printing PDF под Windows
    #38606321
irbis_al
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовал(извините за задержку ,-клиентов на винде мало и их всё меньше)
Работает.Но возникает проблема .программа теряет фокус(из-за того,что adobe acrobat га мгновение промелькивает,как видимо для печати)
Так как рабочее место для магазина это имеет значение. Ибо оператор нажала кнопочку чек убрался с
экрана.А сейчас(после печати,после того как акробат промелькнёт)надо щёлкнуть мышкой по проге.
а потом нажать на кнопочку "убрать чек с экрана и тут же открыть новый".
И это конечно неудовлетворительно.
Я вернул клиента на старое решений.(на многозвенку java прога socket->socket дельфи прога->печать)
Поэтому опять вопрос в студию .Как заставить печатать нативным java print под windows?
...
Рейтинг: 0 / 0
Java printing PDF под Windows
    #38607563
irbis_al
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сегодня переставил adobe acrobat reader на более раннюю версию.
И более ранняя версия(9.5) фокус не крадёт.всё работает "пучком"..
Всем благодарность. :-)
...
Рейтинг: 0 / 0
Java printing PDF под Windows
    #38607652
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно было какой-нибудь focus/window listener настроить. Или "охранника", который бы проверял в фокусе ли окно и возвращал фокус по таймеру.
...
Рейтинг: 0 / 0
Java printing PDF под Windows
    #38610376
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
foxit reader получше будет.
там специально есть headerless print опция. на печать уходит в backgroundе
он отступы правильнее обрабатывает.

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

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

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

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


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

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

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


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