Stampanje Delphi

  • Začetnik teme Začetnik teme -gost-
  • Datum pokretanja Datum pokretanja
G

-gost-

Gost
pa ja imam jako veliki problem sa ovim glupim stringgridom kako da iz te tabele odstampam podatke. ja sam pravio formu sa labelima i namestio da on sam prepisuje i stavljao komandu form1.print;

ali to neradi kako treba i kad mi treba da podelim to na vise strana izbacuje neke silne grske, stampac pobrljavi...

da li neko moze za to da mi napise otprilike kako bi to mogao da napravim...

LJUDI POMAGAJTE AKO TO DA NAPRAVIM !!!!

:evil:
 
Ako sam dobro razumela, probaj QuckReport.Preview :wink:

-gost-:
pa ja imam jako veliki problem sa ovim glupim stringgridom kako da iz te tabele odstampam podatke. ja sam pravio formu sa labelima i namestio da on sam prepisuje i stavljao komandu form1.print;

ali to neradi kako treba i kad mi treba da podelim to na vise strana izbacuje neke silne grske, stampac pobrljavi...

da li neko moze za to da mi napise otprilike kako bi to mogao da napravim...

LJUDI POMAGAJTE AKO TO DA NAPRAVIM !!!!

:evil:
 
Vidi, mozes koristiti QuickReport komponentu. Ja sam (ne preterano) zadovoljan njome. U sustini, toj komponenti dovedi ulaz koji hoces i ne bi trebalo da bude problema. Pokusaj. ako se ne snadjes, javi.
Pozdrav.
Nenad.
 
Programerka:
Ako sam dobro razumela, probaj QuckReport.Preview :wink:

-gost-:
pa ja imam jako veliki problem sa ovim glupim stringgridom kako da iz te tabele odstampam podatke. ja sam pravio formu sa labelima i namestio da on sam prepisuje i stavljao komandu form1.print;

ali to neradi kako treba i kad mi treba da podelim to na vise strana izbacuje neke silne grske, stampac pobrljavi...

da li neko moze za to da mi napise otprilike kako bi to mogao da napravim...

LJUDI POMAGAJTE AKO TO DA NAPRAVIM !!!!

:evil:

Ma ja sam nesto pokusao sa qreportom ali mi bas neide ako imate neki primer za to napisite mi cod(ali sa komentarima da bi ja to ukapirao sta je sta),
ili ako moze to nekako jednostavnije bez qreporta.
 
ako je nesto jednostavno ne treba ti qreport.
poslacu ti kod koji sam ja radio za tabele. koristis Printer.Canvas i crtas po njemu linije sa MoveTo(x,y) i LineTo(x,y) da bi nacrtao tabelu (debljinu linije podesavas sa Printer.Canvas.Pen.Width) i popunjavas je sa Printer.Canvas.TextOut(X, Y, Text). Font Podesavas sa (logicno) Pritner.Canvas.Font i to je to.
Pocetak ti je Printer.BeginDoc a kraj Printer.EndDoc. Svaku novu stranicu posle prve zapocinjes sa Printer.NewPage.
Ovo sve ti kucam iz glave al bi trebalo da radi, u svakom sl. ces dobit kod pa ces videti vec.

pozdravi
 
Mislim da sam razumeo ali mi posalji kod da ja vidim kako to funkcionise. Hvala!!!

st0rmbringer:
ako je nesto jednostavno ne treba ti qreport.
poslacu ti kod koji sam ja radio za tabele. koristis Printer.Canvas i crtas po njemu linije sa MoveTo(x,y) i LineTo(x,y) da bi nacrtao tabelu (debljinu linije podesavas sa Printer.Canvas.Pen.Width) i popunjavas je sa Printer.Canvas.TextOut(X, Y, Text). Font Podesavas sa (logicno) Pritner.Canvas.Font i to je to.
Pocetak ti je Printer.BeginDoc a kraj Printer.EndDoc. Svaku novu stranicu posle prve zapocinjes sa Printer.NewPage.
Ovo sve ti kucam iz glave al bi trebalo da radi, u svakom sl. ces dobit kod pa ces videti vec.

pozdravi
 
evo, to je deo malo vece stvari tako da je komplikovanije nego sto bi trebalo da bude samo za tabelu, al valjda ces se snaci. ako ima pitanja, ti ih postavi :)

type TOnePage = array [1..30] of TFilter;
TPrintPages = array [1..1000] of TOnePage;

const LinesPerPage: Integer = 25; //25 + header

...

TFilter = record
Header1......bla bla...Header9: string;
end;


var
Pages: TPrintPages;
PrintRatios, ViewRatios: array [0..10] of Real;
HeaderText: array [1..8] of string = ('Header1', 'Header2', 'Header3', 'Header4', 'Header5', 'Header6', 'Header8', 'Header9');

...


procedure DrawGrid(PageNum: Integer);
var i: Integer;
PageTitle: string;
begin
Printer.Canvas.Font.Name := 'Tahoma';
//horizontal
for i := 1 to LinesPerPage do
begin
Printer.Canvas.MoveTo(100, 300 + i * (Printer.PageHeight - 500) div (LinesPerPage + 1));
Printer.Canvas.LineTo(Printer.PageWidth - 100, 300 + i * (Printer.PageHeight - 500) div (LinesPerPage + 1));
end;

Printer.Canvas.Font.Style := [fsBold];

//header
Printer.Canvas.TextOut(100, 0, 'Spisak 329');
Printer.Canvas.TextOut(Printer.PageWidth - 100 - Printer.Canvas.TextWidth('Opsta uprava'), 0, 'OpÜta uprava');
Printer.Canvas.MoveTo(100, 120);
Printer.Canvas.LineTo(Printer.PageWidth - 100, 120);
PageTitle := UpperCase('Naslov');
Printer.Canvas.TextOut((Printer.PageWidth - Printer.Canvas.TextWidth(PageTitle)) div 2, 170, PageTitle);

//header row
Printer.Canvas.Rectangle(100, 300, Printer.PageWidth - 100, 300 + (Printer.PageHeight - 500) div (LinesPerPage + 1));
Printer.Canvas.TextOut(140, 330, HeaderText[1]);
for i := 2 to 8 do
Printer.Canvas.TextOut(140 + Round(PrintRatios[i - 1] * (Printer.PageWidth - 200)), 330, HeaderText);

//vertical
for i := 1 to 7 do
begin
Printer.Canvas.MoveTo(100 + Round(PrintRatios * (Printer.PageWidth - 200)), 300);
Printer.Canvas.LineTo(100 + Round(PrintRatios * (Printer.PageWidth - 200)), Printer.PageHeight - 200);
end;

//frame
Printer.Canvas.Pen.Width := 10;
Printer.Canvas.MoveTo(100, 300);
Printer.Canvas.LineTo(100, Printer.PageHeight - 200);
Printer.Canvas.LineTo(Printer.PageWidth - 100, Printer.PageHeight - 200);
Printer.Canvas.LineTo(Printer.PageWidth - 100, 300);
Printer.Canvas.LineTo(100, 300);
Printer.Canvas.Pen.Width := 2;

//text
Printer.Canvas.TextOut(Printer.PageWidth - 100 - Printer.Canvas.TextWidth('Strana ' + IntToStr(PageNum) + '.'), Printer.PageHeight - 150, 'Strana ' + IntToStr(PageNum) + '.');
Printer.Canvas.Font.Style := [];
Printer.Canvas.Font.Name := 'Courier New';
end;

procedure TMainForm.PrintButtonClick(Sender: TObject);
var i, j, k: Integer;
Lines: TStringList;
PageNum, LineNum: Integer;
DB2: TStringList;
tmp1, tmp2, p: string;
begin
//prepare printer
PrintRatios[1] := 5/100;
PrintRatios[2] := 30/100;
PrintRatios[3] := 32/100;
PrintRatios[4] := 37/100;
PrintRatios[5] := 49/100;
PrintRatios[6] := 75/100;
PrintRatios[7] := 90/100;
PrintRatios[8] := 100/100;
Printer.Title := 'Naslov';
Printer.Orientation := poLandscape;
Printer.Canvas.Brush.Color := Rgb(240, 240, 240);

Printer.BeginDoc;
Printer.Canvas.Font.Charset := EASTEUROPE_CHARSET;
Printer.Canvas.Font.Size := 10;
//print pages
for i := 1 to PageNum do
begin
DrawGrid(i);

if i < PageNum then
k := LinesPerPage
else
k := LineNum;

//print page
for j := 1 to k do
begin
Printer.Canvas.TextOut(140, 350 + (j) * (Printer.PageHeight - 500) div (LinesPerPage + 1), Pages[j].Header1);
Printer.Canvas.TextOut(140 + Round(PrintRatios[1] * (Printer.PageWidth - 200)), 350 + (j) * (Printer.PageHeight - 500) div (LinesPerPage + 1), Pages[j].Header2 + ' ' + Pages[j].Header3);
Printer.Canvas.TextOut(140 + Round(PrintRatios[2] * (Printer.PageWidth - 200)), 350 + (j) * (Printer.PageHeight - 500) div (LinesPerPage + 1), Pages[j].Header4);
Printer.Canvas.TextOut(140 + Round(PrintRatios[3] * (Printer.PageWidth - 200)), 350 + (j) * (Printer.PageHeight - 500) div (LinesPerPage + 1), '1' + Copy(Pages[j].Header5, 5, 3));

...

end;
if i < PageNum then
begin
Printer.NewPage;
BusyForm.Progress.Position := BusyForm.Progress.Position + 1;
Application.ProcessMessages;
end;
end;

Printer.EndDoc;
//ShowMessage(IntToStr(Printer.PageHeight) + ' ' + IntToStr(Printer.PageWidth));
Busyform.Close;
end;
 
Ja sam to pravio ovako nekako pa onda sam to prepisivao i prepravljao u 10 button-a i moglo je samo deset strana da stampa ali to bas neradi kako treba hoce da brljavi da li neko to moze malo da prepravi da to samo deli na strane i stampa

procedure TForm32.Button1Click(Sender: TObject);
var
rrr,rr,kraj,r: integer;
labels_br: array[1..41] of TLabel;
labels_datum: array[1..41] of TLabel;
labels_naziv: array[1..41] of TLabel;
labels_iznosr: array[1..41] of TLabel;
labels_iznos2r: array[1..41] of TLabel;
labels_valuta: array[1..41] of TLabel;
labels_placenod: array[1..41] of TLabel;
labels_placeno: array[1..41] of TLabel;
labels_kk: array[1..41] of TLabel;
shape_linije: array[1..41] of tshape;
begin
for r := 1 to 41 do
begin
rr:=r-1;
shape_linije[r] :=Tshape.Create(self);
with shape_linije[r] do
begin
Parent := Form32;
BidiMode := Form32.Bidimode;
height := 1;
width:=800;
Left := 8;
Top := 23+rr*18;
pen.Color := clwhite;
brush.Color := clwhite;
end;

labels_br[r] :=TLabel.Create(self);
with labels_br[r] do
begin
font.Size := 12;
Parent := Form32;
BidiMode := Form32.Bidimode;
Left := kolona1.Left;
Top := 24+rr*18;
Caption := form31.StringGrid1.cells[0,r];
end;

labels_datum[r] := TLabel.Create(self);
with labels_datum[r]do
begin
font.Size := 12;
Parent := Form32;
BidiMode := Form32.Bidimode;
Left := kolona2.Left;
Top := 24+rr*18;
Caption := form31.StringGrid1.cells[1,r];
end;
labels_naziv[r] :=TLabel.Create(self);
with labels_naziv[r] do
begin
font.Size := 12;
Parent := Form32;
BidiMode := Form32.Bidimode;
Left := kolona3.Left;
Top := 24+rr*18;
Caption := form31.StringGrid1.cells[2,r];
end;
labels_iznosr[r] := TLabel.Create(self);
with labels_iznosr[r]do
begin
font.Size := 12;
Parent := Form32;
BidiMode := Form32.Bidimode;
Left := kolona4.Left;
Top := 24+rr*18;
Caption := form31.StringGrid1.cells[3,r];
end;
labels_iznos2r[r] :=TLabel.Create(self);
with labels_iznos2r[r] do
begin
font.Size := 12;
Parent := Form32;
BidiMode := Form32.Bidimode;
Left := kolona5.Left;
Top := 24+rr*18;
autosize := false;
width := kolona5.Width ;
ALIGnMENT:= taRightJustify;
Caption := form31.StringGrid1.cells[4,r];
end;
labels_valuta[r] := TLabel.Create(self);
with labels_valuta[r]do
begin
font.Size := 12;
Parent := Form32;
BidiMode := Form32.Bidimode;
Left := kolona6.Left;
Top := 24+rr*18;
autosize := false;
width := kolona6.Width ;
ALIGnMENT:= taRightJustify;
Caption := form31.StringGrid1.cells[5,r];
end;
labels_placenod[r] :=TLabel.Create(self);
with labels_placenod[r] do
begin
font.Size := 12;
Parent := Form32;
BidiMode := Form32.Bidimode;
Left := kolona7.Left;
Top := 24+rr*18;
autosize := false;
width := kolona7.Width ;
ALIGnMENT:= taRightJustify;
Caption := form31.StringGrid1.cells[6,r];
end;
labels_placeno[r] := TLabel.Create(self);
with labels_placeno[r]do
begin
font.Size := 12;
Parent := Form32;
BidiMode := Form32.Bidimode;
Left := kolona8.Left;
Top := 24+rr*18;
autosize := false;
width := kolona8.Width ;
ALIGnMENT:= taRightJustify;
Caption := form31.StringGrid1.cells[7,r];
end;
labels_kk[r] := TLabel.Create(self);
with labels_kk[r]do
begin
font.Size := 12;
Parent := Form32;
BidiMode := Form32.Bidimode;
Left := kolona9.Left;
Top := 24+rr*18;
autosize := false;
width := kolona9.Width ;
ALIGnMENT:= taleftJustify;
Caption := form31.StringGrid1.cells[8,r];
end;

if r = 41 then
begin
form32.Print ;
sleep(2000);
Form32.Refresh;
for rrr:=1 to 41 do
begin
labels_br[rrr].free;
labels_datum[rrr].free;
labels_naziv[rrr].free;
labels_iznosr[rrr].free;
labels_iznos2r[rrr].free;
labels_valuta[rrr].free;
labels_placenod[rrr].free;
labels_placeno[rrr].free;
labels_kk[rrr].free;
end;
page.caption := inttostr(strtoint(page.caption)-1);
if page.caption = '0' then
begin
showmessage('Mozete da nastavite sa radom');
form32.hide;
form31.button1click(self);
end
else
begin
button4click(self);
end;

end;
end;

end;

znaci to ima na strani 41 red otprilike 2 trecine strane i to sve brljavi kad je vise strana u stampi !!!

DA LI JE NEKO OVO RAZUMEO I DA LI MOZE DA MI TO POMOGNE
 
E bas me mrzi da citam sve ovo i tumacim :) evo ti procedura koju sam naso na netu, trebalo bi da radi

uses
printers;

//StringGrid Inhalt ausdrucken
procedure PrintStringGrid(Grid: TStringGrid; Title: string;
Orientation: TPrinterOrientation);
var
P, I, J, YPos, XPos, HorzSize, VertSize: Integer;
AnzSeiten, Seite, Zeilen, HeaderSize, FooterSize, ZeilenSize, FontHeight: Integer;
mmx, mmy: Extended;
Footer: string;
begin
//Kopfzeile, Fußzeile, Zeilenabstand, Schriftgröße festlegen
HeaderSize := 100;
FooterSize := 200;
ZeilenSize := 36;
FontHeight := 36;
//Printer initializieren
Printer.Orientation := Orientation;
Printer.Title := Title;
Printer.BeginDoc;
//Druck auf mm einstellen
mmx := GetDeviceCaps(Printer.Canvas.Handle, PHYSICALWIDTH) /
GetDeviceCaps(Printer.Canvas.Handle, LOGPIXELSX) * 25.4;
mmy := GetDeviceCaps(Printer.Canvas.Handle, PHYSICALHEIGHT) /
GetDeviceCaps(Printer.Canvas.Handle, LOGPIXELSY) * 25.4;

VertSize := Trunc(mmy) * 10;
HorzSize := Trunc(mmx) * 10;
SetMapMode(Printer.Canvas.Handle, MM_LOMETRIC);

//Zeilenanzahl festlegen
Zeilen := (VertSize - HeaderSize - FooterSize) div ZeilenSize;
//Seitenanzahl ermitteln
if Grid.RowCount mod Zeilen <> 0 then
AnzSeiten := Grid.RowCount div Zeilen + 1
else
AnzSeiten := Grid.RowCount div Zeilen;

Seite := 1;
//Grid Drucken
for P := 1 to AnzSeiten do
begin
//Kopfzeile
Printer.Canvas.Font.Height := 48;
Printer.Canvas.TextOut((HorzSize div 2 - (Printer.Canvas.TextWidth(Title) div 2)),
- 20,Title);
Printer.Canvas.Pen.Width := 5;
Printer.Canvas.MoveTo(0, - HeaderSize);
Printer.Canvas.LineTo(HorzSize, - HeaderSize);
//Fußzeile
Printer.Canvas.MoveTo(0, - VertSize + FooterSize);
Printer.Canvas.LineTo(HorzSize, - VertSize + FooterSize);
Printer.Canvas.Font.Height := 36;
Footer := 'Seite: ' + IntToStr(Seite) + ' von ' + IntToStr(AnzSeiten);
Printer.Canvas.TextOut((HorzSize div 2 - (Printer.Canvas.TextWidth(Footer) div 2)),
- VertSize + 150,Footer);
//Zeilen drucken
Printer.Canvas.Font.Height := FontHeight;
YPos := HeaderSize + 10;
for I := 1 to Zeilen do
begin
if Grid.RowCount >= I + (Seite - 1) * Zeilen then
begin
XPos := 0;
for J := 0 to Grid.ColCount - 1 do
begin
Printer.Canvas.TextOut(XPos, - YPos,
Grid.Cells[J, I + (Seite - 1) * Zeilen - 1]);
XPos := XPos + Grid.ColWidths[J] * 3;
end;
YPos := YPos + ZeilenSize;
end;
end;
//Seite hinzufügen
Inc(Seite);
if Seite <= AnzSeiten then Printer.NewPage;
end;
Printer.EndDoc;
end;

//Example
procedure TForm1.Button1Click(Sender: TObject);
begin
//Drucken im Querformat
PrintStringGrid(Grid, 'StringGrid Print Landscape', poLandscape);
//Drucken im Hochformat
PrintStringGrid(Grid, 'StringGrid Print Portrait', poPortrait);
end;
 
Znam da sam smorio ali imam problem. ovo sto si mi zadnje napiso ja sam uspeo da nekako iskoristim ali mi izbacuje neku gresku !!!
tamo na button1click

procedure TForm1.Button1Click(Sender: TObject);
begin
//Drucken im Querformat
PrintStringGrid(Grid, 'StringGrid Print Landscape', poLandscape);
//Drucken im Hochformat
PrintStringGrid(Grid, 'StringGrid Print Portrait', poPortrait);

end;

izbaci mi gresku:

[Error] Unit1.pas(109): Undeclared identifier: 'Grid'

i zamarkira:

PrintStringGrid(Grid, 'StringGrid Print Landscape', poLandscape);

Sto mu je?

Hvala unapred!!!
 
Znam da sam smorio ali imam problem. ovo sto si mi zadnje napiso ja sam uspeo da nekako iskoristim ali mi izbacuje neku gresku !!!
tamo na button1click

procedure TForm1.Button1Click(Sender: TObject);
begin
//Drucken im Querformat
PrintStringGrid(Grid, 'StringGrid Print Landscape', poLandscape);
//Drucken im Hochformat
PrintStringGrid(Grid, 'StringGrid Print Portrait', poPortrait);

end;

izbaci mi gresku:

[Error] Unit1.pas(109): Undeclared identifier: 'Grid'

i zamarkira:

PrintStringGrid(Grid, 'StringGrid Print Landscape', poLandscape);

:?: Sto mu je?

Hvala unapred!!!
 
ma dileja !!! nisam ja to ni procito detaljno sve nego samo copy paste da ja vidim da li to radi kad sam ja sad sve to prelisto video sam sta se tu zbiva!!! HVALA TI BAS SI LIK !!! Da zivis negde bilize vodio bi te na pivo!!!
 
Samo jos nesto ja sam pokusavao ali mi nikako ne ide da smanjim duzinu strane odnosno papira. Kako to mogu da uradim ??!!

Ja sam pokusavao da smanjim heder i futer ali se sve jos vise povecalo i pobrljavilo a posle sam nasao nesto kao:

VertSize := Trunc(mmy) * 10;
HorzSize := Trunc(mmx) * 10;

i nerazumem sta je to tacno ali ne regulise duzinu strane!!!

Ali ja mislim da bi ovo trebalo ali nece:
Zeilen := (VertSize - HeaderSize - FooterSize) div ZeilenSize;

znaci ja sam pokusao od toga u zagradi da oduzmem jos 100 ali neide !!!

Da li mozes nekako da mi pomognes !!!

Evo i celog koda ako se neseceas kako to izgleda

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,printers, StdCtrls, Grids;

type
TForm1 = class(TForm)
Button1: TButton;
StringGrid1: TStringGrid;
Button2: TButton;
// procedure PrintStringGrid1(stringgrid1: TStringGrid; Title: string ;Orientation: TPrinterOrientation);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
// grid:tstringgrid;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure PrintStringGrid(stringgrid1: TStringGrid; Title: string;
Orientation: TPrinterOrientation);
var
P, I, J, YPos, XPos, HorzSize, VertSize: Integer;
AnzSeiten, Seite, Zeilen, HeaderSize, FooterSize, ZeilenSize, FontHeight: Integer;
mmx, mmy: Extended;
Footer: string;
begin
//Kopfzeile, Fußzeile, Zeilenabstand, Schriftgröße festlegen
HeaderSize := 100;
FooterSize := 200;
ZeilenSize := 36;
FontHeight := 36;
//Printer initializieren
Printer.Orientation := Orientation;
Printer.Title := Title;
Printer.BeginDoc;
//Druck auf mm einstellen
mmx := GetDeviceCaps(Printer.Canvas.Handle, PHYSICALWIDTH) /
GetDeviceCaps(Printer.Canvas.Handle, LOGPIXELSX) * 25.4;
mmy := GetDeviceCaps(Printer.Canvas.Handle, PHYSICALHEIGHT) /
GetDeviceCaps(Printer.Canvas.Handle, LOGPIXELSY) * 25.4;

VertSize := Trunc(mmy) * 10;
HorzSize := Trunc(mmx) * 10;
SetMapMode(Printer.Canvas.Handle, MM_LOMETRIC);

//Zeilenanzahl festlegen
Zeilen := (VertSize - HeaderSize - FooterSize) div ZeilenSize;
//Seitenanzahl ermitteln
if stringgrid1.RowCount mod Zeilen <> 0 then
AnzSeiten := stringgrid1.RowCount div Zeilen + 1
else
AnzSeiten := stringgrid1.RowCount div Zeilen;

Seite := 1;
//Grid Drucken
for P := 1 to AnzSeiten do
begin
//Kopfzeile
Printer.Canvas.Font.Height := 48;
Printer.Canvas.TextOut((HorzSize div 2 - (Printer.Canvas.TextWidth(Title) div 2)),
- 20,Title);
Printer.Canvas.Pen.Width := 5;
Printer.Canvas.MoveTo(0, - HeaderSize);
Printer.Canvas.LineTo(HorzSize, - HeaderSize);
//Fußzeile
Printer.Canvas.MoveTo(0, - VertSize + FooterSize);
Printer.Canvas.LineTo(HorzSize, - VertSize + FooterSize);
Printer.Canvas.Font.Height := 36;
Footer := 'strana: ' + IntToStr(Seite) + ' od ' + IntToStr(AnzSeiten);
Printer.Canvas.TextOut((HorzSize div 2 - (Printer.Canvas.TextWidth(Footer) div 2)),
- VertSize + 150,Footer);
//Zeilen drucken
Printer.Canvas.Font.Height := FontHeight;
YPos := HeaderSize + 10;
for I := 1 to Zeilen do
begin
if stringgrid1.RowCount >= I + (Seite - 1) * Zeilen then
begin
XPos := 0;
for J := 0 to stringgrid1.ColCount - 1 do
begin
Printer.Canvas.TextOut(XPos, - YPos,
stringgrid1.Cells[J, I + (Seite - 1) * Zeilen - 1]);
XPos := XPos + stringgrid1.ColWidths[J] * 3;
end;
YPos := YPos + ZeilenSize;
end;
end;
//Seite hinzufügen
Inc(Seite);
if Seite <= AnzSeiten then Printer.NewPage;
end;
Printer.EndDoc;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
PrintStringGrid(stringgrid1, 'pera zdera', poPortrait);

end;
 

Back
Top