![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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
|
||||
|
||||
|
В настройках печати стоит галка "печать в файл". Её надо снять.
|
|
#3
|
||||
|
||||
|
Цитата:
) Я этот диалог не показываю и не использую PrintDialog я знаю что есть printtofile в PrintDialog но у меня своя форма и печать задаю программно Самое интересное что все принтеры обхожу а вот cenon печатает в xps , может в реестре этот параметр изменить вот только найти его не могу или называется он по другому. |
|
#4
|
||||
|
||||
|
1. Сделай
Код:
ShowMessage(Printer.Printers[Printer.PrinterIndex]+', '+Printer.Title); Код:
Printer.PrinterIndex:=sComboBox1.ItemIndex |
| Этот пользователь сказал Спасибо PhoeniX за это полезное сообщение: | ||
Paskal (28.01.2013)
| ||
|
#5
|
||||
|
||||
|
Цитата:
![]() |
|
#6
|
||||
|
||||
|
А есть способ в стандартном диалоге скрыть принтеры?
|
|
#7
|
||||
|
||||
|
А зачем?
У меня была какая-то программка (во времена cd дисков), которая печатала тупо на один принтер, сколько гимора она доставляла, когда надо было напечатать в файл, а скопировать из программы небыло возможности. |
|
#8
|
||||
|
||||
|
Цитата:
ps я объяснял сто есть сканеры и обойти такую прогу легко но попросили выжать максимум |
|
#9
|
||||
|
||||
|
В таком случае я просто переименую в настройках один из виртуальных принтеров (хоть от того же print2pdf) как реальный... И никакая защита не поможет
![]() |
|
#10
|
||||
|
||||
|
Цитата:
|
|
#11
|
||||
|
||||
|
Ок, запуск в Linux под Wine с пробросом принтера в cupsd с преобразованием в pdf (ЩИТО?) устроит?
![]() В общем, надо как минимум проверять 3 фактора: 1. Печать не в файл. 2. Принтер не виртуальный (как проверить - неизвестно, при том, что многие виртуальные принтеры регистрируются на уровне драйверов). 3. Система не виртуальная (базовые коды для проверки vmWare, VirtualBox и QEMU где-то в сети были, но обходится такое за пару секунд). Последний раз редактировалось PhoeniX, 28.01.2013 в 20:34. |
| Этот пользователь сказал Спасибо PhoeniX за это полезное сообщение: | ||
Paskal (28.01.2013)
| ||
|
#12
|
||||
|
||||
|
Цитата:
интересно но мы отошли от темы |
|
#13
|
||||
|
||||
|
Самое логичное, что можно придумать:
1. Проверять, включена ли печать в файл (в реестре). 2. Если да - то проверить, можем ли мы её вырубить (на некоторых виндах не получится залезть в реестр в нужную ветку). 3. Если не получится вырубить - выдавать эррор "юзер - редиска, выключи печать в файл - тогда поговорим". Но, повторюсь - это не панацея. |