![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Ребята очень спишу все изыскал вывожу на печать картинку отрывается диолог сохранения в файл в(xps) хотя принтер не виртуальный/ Что делать ..
Мне нужно запретить всем принтерам печать в файл. в PrintDialog все отключил. печатаю напрямую. Вот мой код подскажите плиз Заранее всем спс. Код:
begin Printer.PrinterIndex:=sComboBox1.ItemIndex; BeginDoc; try CR := Rect(-50,-50, PageWidth + 50 , PageHeight + 50); canvas.stretchdraw(CR, image2.picture.graphic); finally EndDoc; end; |
#2
|
||||
|
||||
![]() В настройках печати стоит галка "печать в файл". Её надо снять.
Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#3
|
||||
|
||||
![]() Цитата:
) Я этот диалог не показываю и не использую PrintDialog я знаю что есть printtofile в PrintDialog но у меня своя форма и печать задаю программно Самое интересное что все принтеры обхожу а вот cenon печатает в xps , может в реестре этот параметр изменить вот только найти его не могу или называется он по другому. |
#4
|
||||
|
||||
![]() 1. Сделай
Код:
ShowMessage(Printer.Printers[Printer.PrinterIndex]+', '+Printer.Title); Код:
Printer.PrinterIndex:=sComboBox1.ItemIndex Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
Этот пользователь сказал Спасибо PhoeniX за это полезное сообщение: | ||
Paskal (28.01.2013)
|
#5
|
||||
|
||||
![]() Цитата:
![]() |
#6
|
||||
|
||||
![]() А есть способ в стандартном диалоге скрыть принтеры?
|
#7
|
||||
|
||||
![]() А зачем?
У меня была какая-то программка (во времена cd дисков), которая печатала тупо на один принтер, сколько гимора она доставляла, когда надо было напечатать в файл, а скопировать из программы небыло возможности. — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#8
|
||||
|
||||
![]() Цитата:
![]() ps я объяснял сто есть сканеры и обойти такую прогу легко но попросили выжать максимум |
#9
|
||||
|
||||
![]() В таком случае я просто переименую в настройках один из виртуальных принтеров (хоть от того же print2pdf) как реальный... И никакая защита не поможет
![]() Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#10
|
||||
|
||||
![]() Цитата:
|
#11
|
||||
|
||||
![]() Ок, запуск в Linux под Wine с пробросом принтера в cupsd с преобразованием в pdf (ЩИТО?) устроит?
![]() В общем, надо как минимум проверять 3 фактора: 1. Печать не в файл. 2. Принтер не виртуальный (как проверить - неизвестно, при том, что многие виртуальные принтеры регистрируются на уровне драйверов). 3. Система не виртуальная (базовые коды для проверки vmWare, VirtualBox и QEMU где-то в сети были, но обходится такое за пару секунд). Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj Последний раз редактировалось PhoeniX, 28.01.2013 в 20:34. |
Этот пользователь сказал Спасибо PhoeniX за это полезное сообщение: | ||
Paskal (28.01.2013)
|
#12
|
||||
|
||||
![]() Цитата:
интересно ![]() но мы отошли от темы |
#13
|
||||
|
||||
![]() Самое логичное, что можно придумать:
1. Проверять, включена ли печать в файл (в реестре). 2. Если да - то проверить, можем ли мы её вырубить (на некоторых виндах не получится залезть в реестр в нужную ветку). 3. Если не получится вырубить - выдавать эррор "юзер - редиска, выключи печать в файл - тогда поговорим". Но, повторюсь - это не панацея. Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |