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

Вниз

Печать из TStringGrid   Найти похожие ветки 

 
lookin ©   (2005-07-15 21:42) [0]

Посоветуйте, пожалуйста, способы печати из TStringGrid.

У меня пока родилось вот что:

1. Через txt-файл. Этот способ ломает таблицу, если она не влазит в A4.

2. Через TStringGrid.Canvas. Работа этого способа не ясна, если StringGrid имеет ползунок (ScrollBar).

PS Использовать любые иные приложения для печати нельзя...
PPS У меня сумбур в голове по объективной причине, прошу извинить...


 
lookin ©   (2005-07-15 21:43) [1]

Еще посоветовали Rave Report. Почитал кое-чего, но не ясно, требует ли он наличие каких-либо особых файлов в системе?


 
Alexander Panov ©   (2005-07-15 21:52) [2]

Рисуешь каждую страницу на TBitmap, предварительно вычислив необходимую ширину, используя StretchBlt копируешь на канву принтера, сжимая, как тебе надо.


 
lookin ©   (2005-07-15 21:57) [3]

[2] Alexander Panov ©   (15.07.05 21:52)

Мне разбивку надо, а не сжатие...


 
Virgo_Style ©   (2005-07-15 21:58) [4]

3. Полностью руками. Находим масштаб (чтобы перевести ширину колонок в пиксели принтера), разбиваем на страницы и рисуем на канве принтера.
Ничего особенно сложного...
Посмотреть, как это не надо делать :o), можно в кладовке, http://www.kladovka.net.ru/index.cgi?pid=dir&rid=8 , модуль printgrids.

Alexander Panov ©   (15.07.05 21:52) [2]
imho качество может оказаться неважным из-за масштабирования...


 
lookin ©   (2005-07-15 22:02) [5]

[4] Virgo_Style ©   (15.07.05 21:58)

Я могу масштабировать, но не могу заставить принтер печатать следующую страницу... Или что то делаю не так...


 
Alexander Panov ©   (2005-07-15 22:05) [6]

lookin ©   (15.07.05 22:02) [5]
но не могу заставить принтер печатать следующую страницу


Самый простой вариант - Printer.EndDoc, затем снова Printer.BeginDoc;


 
lookin ©   (2005-07-15 22:07) [7]

Принтер мне одну страницу печатает и все...


 
lookin ©   (2005-07-15 22:09) [8]

[6] Alexander Panov ©   (15.07.05 22:05)
>>Самый простой вариант - Printer.EndDoc, затем снова Printer.BeginDoc;

Черт возьми, не считаю его самым простым...

И еще вопрос - есть ограничения на размер Bitmap? А то ругается на      b.Width:=Table.ColCount*800; b.Height:=Table.RowCount*200;

числа получаются около 8000 на 4000


 
Alexander Panov ©   (2005-07-15 22:11) [9]

lookin ©   (15.07.05 22:09) [8]

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


 
lookin ©   (2005-07-15 22:36) [10]

[9] Alexander Panov ©   (15.07.05 22:11)

Черт, все пытаюсь это сделать - ничего не удается...


 
Virgo_Style ©   (2005-07-15 22:42) [11]

lookin ©   (15.07.05 22:02) [5]
не могу заставить принтер печатать следующую страницу


Printer.NewPage не работает?? Вот это номер :-\


 
Alexander Panov ©   (2005-07-15 22:44) [12]

Virgo_Style ©   (15.07.05 22:42) [11]
Printer.NewPage не работает?? Вот это номер :-\


Как говорится - "Век живи - век учись" ;)


 
lookin ©   (2005-07-15 22:57) [13]

[11] Virgo_Style ©   (15.07.05 22:42)

Сложно сказать, что там не работает. Но печатает лишь одну страницу, причем на ней не вся таблица... Я уж и наужимался с этими масштабами, скоро сам сожмусь... Принтер печатает ОДНУ старницу...


 
lookin ©   (2005-07-15 22:58) [14]

Вопрос - будет ли принтер печатать следующую страницу, если размер Bitmap выползает за пределы некоторой величины?



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

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

Наверх





Память: 0.47 MB
Время: 0.063 c
1-1121728449
jcrush
2005-07-19 03:14
2005.08.07
Найти в списке memo буквы КД и по горячим клавишам заменить


3-1119953847
serg83
2005-06-28 14:17
2005.08.07
upload в мускль через дельфи-cgi и html-форму


1-1121928117
Funt_IK
2005-07-21 10:41
2005.08.07
Delphi 2005


3-1120043176
Тучудище
2005-06-29 15:06
2005.08.07
Когда лучше подтверждать транзакции


4-1116915457
m52
2005-05-24 10:17
2005.08.07
Запуск программы как службы. Очень нужна помощь.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский