Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 28.01.2013, 19:43
Аватар для Paskal
Paskal Paskal вне форума
Новичок
 
Регистрация: 28.09.2010
Сообщения: 93
Репутация: 12
По умолчанию При выводе на печать открывается диалог сохранения в файл

Ребята очень спишу все изыскал вывожу на печать картинку отрывается диолог сохранения в файл в(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  
Старый 28.01.2013, 19:54
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

В настройках печати стоит галка "печать в файл". Её надо снять.
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #3  
Старый 28.01.2013, 19:59
Аватар для Paskal
Paskal Paskal вне форума
Новичок
 
Регистрация: 28.09.2010
Сообщения: 93
Репутация: 12
По умолчанию

Цитата:
Сообщение от PhoeniX
В настройках печати стоит галка "печать в файл". Её надо снять.

) Я этот диалог не показываю и не использую PrintDialog я знаю что есть printtofile в PrintDialog но у меня своя форма и печать задаю программно
Самое интересное что все принтеры обхожу а вот cenon печатает в xps ,
может в реестре этот параметр изменить вот только найти его не могу или называется он по другому.
Ответить с цитированием
  #4  
Старый 28.01.2013, 20:05
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

1. Сделай
Код:
ShowMessage(Printer.Printers[Printer.PrinterIndex]+', '+Printer.Title);
после
Код:
Printer.PrinterIndex:=sComboBox1.ItemIndex
2. Проверь диалог настроек принтера в системе, у него может быть более высокий приоритет, чем у твоей программы.
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
Этот пользователь сказал Спасибо PhoeniX за это полезное сообщение:
Paskal (28.01.2013)
  #5  
Старый 28.01.2013, 20:11
Аватар для Paskal
Paskal Paskal вне форума
Новичок
 
Регистрация: 28.09.2010
Сообщения: 93
Репутация: 12
По умолчанию

Цитата:
Сообщение от my33oh
менять настройки ОС и ПО без уведомления пользователя запрещает УК РФ
запомни на будущее
Не знал , для меня это открытие спс.
Ответить с цитированием
  #6  
Старый 28.01.2013, 20:13
Аватар для Paskal
Paskal Paskal вне форума
Новичок
 
Регистрация: 28.09.2010
Сообщения: 93
Репутация: 12
По умолчанию

А есть способ в стандартном диалоге скрыть принтеры?
Ответить с цитированием
  #7  
Старый 28.01.2013, 20:20
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

А зачем?
У меня была какая-то программка (во времена cd дисков), которая печатала тупо на один принтер, сколько гимора она доставляла, когда надо было напечатать в файл, а скопировать из программы небыло возможности.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #8  
Старый 28.01.2013, 20:24
Аватар для Paskal
Paskal Paskal вне форума
Новичок
 
Регистрация: 28.09.2010
Сообщения: 93
Репутация: 12
По умолчанию

Цитата:
Сообщение от M.A.D.M.A.N.
А зачем?
У меня была какая-то программка (во времена cd дисков), которая печатала тупо на один принтер, сколько гимора она доставляла, когда надо было напечатать в файл, а скопировать из программы небыло возможности.
вообщем одна орг делает печатную продукцию но боится за копирайт и ее требования для печати только в бумагу
ps я объяснял сто есть сканеры и обойти такую прогу легко но попросили выжать максимум
Ответить с цитированием
  #9  
Старый 28.01.2013, 20:27
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

В таком случае я просто переименую в настройках один из виртуальных принтеров (хоть от того же print2pdf) как реальный... И никакая защита не поможет
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #10  
Старый 28.01.2013, 20:28
Аватар для Paskal
Paskal Paskal вне форума
Новичок
 
Регистрация: 28.09.2010
Сообщения: 93
Репутация: 12
Смех

Цитата:
Сообщение от PhoeniX
В таком случае я просто переименую в настройках один из виртуальных принтеров (хоть от того же print2pdf) как реальный... И никакая защита не поможет
не все так просто )
Ответить с цитированием
  #11  
Старый 28.01.2013, 20:30
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Ок, запуск в 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  
Старый 28.01.2013, 20:32
Аватар для Paskal
Paskal Paskal вне форума
Новичок
 
Регистрация: 28.09.2010
Сообщения: 93
Репутация: 12
По умолчанию

Цитата:
Сообщение от PhoeniX
Ок, запуск в Linux под Wine с пробросом принтера в cupsd с преобразованием в pdf (ЩИТО?) устроит?

интересно
но мы отошли от темы
Ответить с цитированием
  #13  
Старый 28.01.2013, 20:54
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Самое логичное, что можно придумать:
1. Проверять, включена ли печать в файл (в реестре).
2. Если да - то проверить, можем ли мы её вырубить (на некоторых виндах не получится залезть в реестр в нужную ветку).
3. Если не получится вырубить - выдавать эррор "юзер - редиска, выключи печать в файл - тогда поговорим".
Но, повторюсь - это не панацея.
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:56.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025