Форум: "Начинающим";
Текущий архив: 2007.04.15;
Скачать: [xml.tar.bz2];
Вниз
Работа с принтером Найти похожие ветки
← →
sergeyxxx © (2007-03-26 07:30) [0]if (PrintDialog1.Execute) then begin
PrinterSetupDialog1.Execute;
Printer.Canvas.Draw(800,600,Image1.Picture.Graphic);
Народ подскажите пожалуйста что я нетак делаю.. нехочет распечатоваться..
← →
Loginov Dmitry © (2007-03-26 07:54) [1]А хэлп читать не пробовал? Там неплохие примеры можно узреть, сразу все понятно станет.
← →
sergeyxxx © (2007-03-26 16:53) [2]Пробывал толку мало.. поэтому и обратился сюда кто уже с этим сталкивался и на опыте!
← →
Нуб (2007-03-26 17:00) [3]
if (PrintDialog1.Execute) then begin
PrinterSetupDialog1.Execute;
Printer.Canvas.Draw(800,600,Image1.Picture.Graphic);
еще дописать внизу надА
for i :=1 to all_pages do begin
print.allpages.do;
if pages not print then print.them.again
else shut.down.computer := true;
end;
← →
sergeyxxx © (2007-03-26 17:24) [4]мда.. думаешь я не вижу что это прикол?
← →
Нуб (2007-03-26 17:29) [5]
> sergeyxxx ©
зайди на http://ya.ru/ - там инфы столько, что можно написать программулину не только чтобы твой принтер заработал, но и все принтеры в соседнем здании начали петь песни
← →
sergeyxxx © (2007-03-26 17:33) [6]если ты незнаешь, понт писать бред???
← →
Loginov Dmitry © (2007-03-26 17:33) [7]> Пробывал толку мало
Как пробовал?
← →
sergeyxxx © (2007-03-26 17:39) [8]begin
with Printer do
begin
BeginDoc;
Printer.Canvas.Draw(800,600,Image1.Picture.Graphic);
EndDoc;
end;
← →
Нуб (2007-03-26 17:41) [9]Удалено модератором
← →
Нуб (2007-03-26 17:43) [10]Удалено модератором
← →
sergeyxxx © (2007-03-26 17:43) [11]С Richedit без проблем а вот с Image.Picture невыходит...
begin
if (PrinterSetupDialog1.Execute) then begin
Form3.RichEdit1.Print("имя");
end;
← →
sergeyxxx © (2007-03-26 17:44) [12]Удалено модератором
← →
Нуб (2007-03-26 17:48) [13]а я не знаю как будет правильно , по-этому на тебе пример если захочешь разберешся http://files.adamant.ua/4755
← →
sergeyxxx © (2007-03-26 17:49) [14]Удалено модератором
← →
Loginov Dmitry © (2007-03-26 17:50) [15]> begin
> with Printer do
> begin
> BeginDoc;
> Printer.Canvas.Draw(800,600,Image1.Picture.Graphic);
> EndDoc;
> end;
У меня это работает.
← →
sergeyxxx © (2007-03-26 17:52) [16]а у меня нехочет пахать..
← →
Loginov Dmitry © (2007-03-26 18:05) [17]> а у меня нехочет пахать..
Так и говорит "Не хочу пахать", или что?
← →
sergeyxxx © (2007-03-26 18:07) [18]> begin
> with Printer do
> begin
> BeginDoc;
> Printer.Canvas.Draw(800,600,Image1.Picture.Graphic);
> EndDoc;
> end;
У меня при этом коде он предлагает сохранить файл в формате .mdi
как сделать так чтобы он печатал сразу..??
← →
Loginov Dmitry © (2007-03-26 18:09) [19]:)
if PrintDialog1.Execute then
......
принтер-то выбери реальный.
← →
Loginov Dmitry © (2007-03-26 18:10) [20]И сделай его по умолчанию:
Пуск/Принтеры и факсы/Использовать по умолчанию
← →
sergeyxxx © (2007-03-26 18:21) [21]Во спс, получилось но в 10 раз меньше получился.. как сделать 1:1 маштаб?
← →
Loginov Dmitry © (2007-03-26 18:30) [22]Вот кое-что из древних исходником. Но понять можно :)
if PrintDialog1.Execute then begin
// Выполняем печать
Printer.Orientation := poLandscape;
Printer.BeginDoc;
Printer.Canvas.Refresh;
PointsX:=GetDeviceCaps(Printer.Canvas.Handle, LOGPIXELSX) / 101.538;
PointsY:=GetDeviceCaps(Printer.Canvas.Handle, LOGPIXELSY) / 101.538;
X1:=round((Printer.PageWidth - Min(Image.Picture.Bitmap.Width, 1024) * PointsX) / 2) + 80;
Y1:=round((Printer.PageHeight - Min(Image.Picture.Bitmap.Height, 768) * PointsY) / 2);
X2:=round(X1 + Min(Image.Picture.Bitmap.Width, 1024)*PointsX);
Y2:=round(Y1 + Min(Image.Picture.Bitmap.Height, 768)*PointsY);
Printer.Canvas.CopyRect(Rect(X1, Y1, X2, Y2),Image.Picture.Bitmap.Canvas,
Rect(0,0,Min(Image.Picture.Bitmap.Width, 1024), Min(Image.Picture.Bitmap.Height, 768)));
Printer.EndDoc;
end;
← →
sergeyxxx © (2007-03-26 21:13) [23]r:TRect;
begin
if (PrintDialog1.Execute) then begin
Printer.Orientation := poLandscape;
Printer.BeginDoc;
Printer.Canvas.Refresh;
r := Rect(0, 0, Printer.Pagewidth, Printer.PageHeight);
{Printer.Canvas.StretchDraw(r,Image1.Picture.Graphic);} // печатает всё
Printer.Canvas.StretchDraw(r,form1.GetFormImage); // печатает но белый лист (Почему так ктонить подскажет?)
Printer.EndDoc;
← →
Loginov Dmitry © (2007-03-26 21:51) [24]Вообще-то код рабочий. Должен печатать изображение формы со всеми лежащими на ней контролами.
А на форме какие контролы лежат? (Может на ней ничего нет, и цвет - белый :))
← →
Loginov Dmitry © (2007-03-26 21:56) [25]Еще наводящий вопрос: в какой момент (при возникновении какого события) происходит попытка печати?
← →
sergeyxxx © (2007-03-26 22:11) [26]На форме Form1.Canvas.TextOut =)
← →
sergeyxxx © (2007-03-26 22:12) [27]При нажатии кнопки
← →
RASkov (2007-03-26 22:49) [28]> На форме Form1.Canvas.TextOut =)
Если это не на OnPaint формы, то GetFormImage это и не отрисует.
← →
sergeyxxx © (2007-03-26 23:13) [29]Да это я знаю но как записать GetFormImage в Image.Picture?
← →
sergeyxxx © (2007-03-26 23:14) [30]можешь написать процедуру?
← →
Loginov Dmitry © (2007-03-26 23:17) [31]Для чего записывать GetFormImage в Image.Picture?
← →
sergeyxxx © (2007-03-26 23:19) [32]У меня неполучается вывести на принтер Form1.Canvas
а Image.Picture всё идеально идёт
← →
RASkov (2007-03-26 23:29) [33]> [32] sergeyxxx © (26.03.07 23:19)
А что ты выводишь на форму TextOut"ом? Может Label использовать в данном случае...
← →
sergeyxxx © (2007-03-26 23:35) [34]Не там очень много..
← →
RASkov (2007-03-26 23:37) [35]> [29] sergeyxxx © (26.03.07 23:13)
> [30] sergeyxxx © (26.03.07 23:14)
Image.Picture.Bitmap.Assign(GetFormImage);
Но тебе это не поможет!
← →
RASkov (2007-03-26 23:48) [36]> [34] sergeyxxx © (26.03.07 23:35)
В таком случае положи Image и на нем рисуй, что тебе надо
Вот, если это выполняется в методе формы, то так попробуйImage.Canvas.Brush.Color:=Color;
Image.Canvas.FillRect(Image.Canvas.ClipRect);
Image.Canvas.TextOut(0, 0, "TEST");
............
Printer.Canvas.StretchDraw(r, form1.GetFormImage);
form1. - не пиши.
← →
sergeyxxx © (2007-03-27 00:12) [37]Ладно попробуем. :) Всем спосибо за помощь я спать...
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.04.15;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.065 c