Форум: "Основная";
Текущий архив: 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.033 c