Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];

Вниз

Проблемы с Printer.PageWidth/PageHeight   Найти похожие ветки 

 
Andy BitOff ©   (2005-12-15 18:18) [0]

В справке написано, что свойства возвращают ширину/высоту страницы в пикселях и даже пример использования.

begin
 with Printer do
 begin
   BeginDoc;
   Canvas.TextRect(Rect(200,200,PageWidth-200,PageHeight-200), 200, 200, Memo1.Lines.Text);
   EndDoc;
 end;
end;


Так вот, мой принтер (LJ 4200) возвращает значения 4 и 6 с чем-то тысяч на А4. При этом, если я вывожу картинку на канвас размером во весь лист, то печатается чуть меньше чем четверть изображения, но она занимает весь лист (бумажный). А если использовать пример из справки с большим текстом, то на листе видна одна строка (начало текста).

Поясните мне пожалуйста.


 
Andy BitOff ©   (2005-12-15 21:37) [1]

[робко] Никто не знает или я не понятно описал проблему.


 
Джо ©   (2005-12-15 21:39) [2]

А что пояснить? Да, они возвращают  ширину/высоту страницы в пикселях.


 
Andy BitOff ©   (2005-12-15 21:52) [3]

Ну а почему тогда они не соответствуют действительности? Что это глюк принтера?


 
Prohodil Mimo ©   (2005-12-15 22:25) [4]

подозреваю что это для определённого DPI. попробуй при печати другой DPI выбери.

посмотри заодно вот это: http://www.delphiarea.com/products/preview/


 
GuAV ©   (2005-12-16 00:31) [5]


> если я вывожу картинку на канвас размером во весь
> лист, то печатается чуть меньше чем четверть
> изображения, но она занимает весь лист (бумажный).

Это не понял.


 
GuAV ©   (2005-12-16 00:39) [6]

Может, ошибка в коде ?
Мой пример попробуй
http://www.kladovka.net.ru/index.cgi?pid=list&rid=261


 
Andy BitOff ©   (2005-12-16 19:12) [7]

Блин, вчера так не вовремя кончилось время =( Но сегодня я опять в строю =)
Такое ощущение, что никто не работал с TPrint напрямую, а все пользуются компонентами.

Prohodil Mimo ©   (15.12.05 22:25) [4]
Этот компонент я давно использую, спасибо. Но для данной задачи он не подходит.

GuAV ©   (16.12.05 00:39) [6]
Ваш код посмотрел, но поскольку уже решил эту задачу, смотрел поверхностно ;)

А решилось так, и как подозревал Prohodil Mimo, в деле оказался замешан DPI. Попробовать была возможность на двух принтерах (LJ1100 и LJ4200) и на Acrobat PDFWriter. Вот решение:

pw:=Printer.PageWidth div (GetDeviceCaps(Printer.Handle, LogPixelsX) div 100);
ph:=Printer.PageHeight div (GetDeviceCaps(Printer.Handle, LogPixelsY) div 100);

Подсмотрено в реализации TPrint.


 
Джо ©   (2005-12-16 19:25) [8]


> [7] Andy BitOff ©   (16.12.05 19:12)

И что за значения ты таким образом получил?


 
Andy BitOff ©   (2005-12-16 19:44) [9]

Джо ©   (16.12.05 19:25) [8]

Всмысле? Какие цифры или что значит pw/ph?

При изменении приведенного в первом посте кода в соответствии с рассказанным мной, то как не странно он работает правильно, а в первой редакции не правильно.

begin
with Printer do
begin
  BeginDoc;
  Canvas.TextRect(Rect(200,200,pw-200,ph-200), 200, 200, Memo1.Lines.Text);
  EndDoc;
end;
end;



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.046 c
2-1136187898
Khim
2006-01-02 10:44
2006.01.22
Как можно вставить свою иконку в MessageBox, подробнее


2-1136405133
lex85
2006-01-04 23:05
2006.01.22
закладки


14-1135570964
Некто
2005-12-26 07:22
2006.01.22
Выключение файловых серверов


10-1112260922
Ломброзо
2005-03-31 13:22
2006.01.22
Java COM


4-1131616535
root
2005-11-10 12:55
2006.01.22
Распознать сообщение





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский