[Delphi] stringgrid op sommige printers verkeerd

Pagina: 1
Acties:

  • VIsje
  • Registratie: Oktober 2000
  • Laatst online: 17-08 07:12

VIsje

keeper s.v. de Glind 2

Topicstarter
Ik heb een klein probleempje met een stringgrid uitprinten.
Op me HP Deskjet 845c print hij perfect uit.
Maar als ik ga printen op een HP Laserjet 4000/4050, dan print hij
of niks uit of hij print alles op een heel klein veldje (zodat alles op
elkaar is gedrukt en niet te lezen is)

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
Procedure Printstringgrid(stringgrid:Tstringgrid);
var outputfile:textfile;
    k,r:integer;
    breedtekolom:array[0..9]of byte;
    Plaatsblad:array[0..9]of word;
    Hoogte,extrahoogte:word;
Procedure plaatsbepaling;
var i:byte;
begin
 i:=1;
 while breedtekolom[i]<>0 do
  begin
    plaatsblad[i]:=plaatsblad[i-1]+(breedtekolom[i-1]*20);
    inc(i);
   end;
end;
Procedure Uitprint(k,r:word);
begin
printer.canvas.textOut(Plaatsblad[K],hoogte,stringgrid.cells[k,r]);
end;
Procedure titelbalk;
var kk:word;
begin
     {eerste rij van de stringgrid}
     for kk:=0 to stringgrid.colcount-1 do
      Uitprint(kk,0);{print titel af}
      hoogte:=hoogte+extrahoogte;
end;
Procedure BepaalBreedteMax;
Begin
IF breedtekolom[K]<length(stringgrid.cells[K,r]) then
breedtekolom[K]:=length(stringgrid.cells[K,r]);

end;
Begin
printer.canvas.font.style:=[];
printer.canvas.font.size:=10;
printer.canvas.font.name:='Arial';
hoogte:=0;
Extrahoogte:=45{34};
fillchar(breedtekolom,sizeof(breedtekolom),0);
fillchar(plaatsblad,sizeof(plaatsblad),0);
assignprn(outputfile);
try
rewrite(outputfile);
for k:=0 to stringgrid.colcount-1 do
for r:=0 to stringgrid.rowcount-1 do
       bepaalbreedteMax;{hoeveel letters staan er in de kolom}
       Plaatsbepaling;  {horizontal plaatsbepaling op het blad}
for r:=0 to stringgrid.rowcount-1 do
begin
   If (hoogte >1)and(hoogte mod 3330=0) then
     begin {nieuw blad uitprinten}
         writeln(outputfile,#12);
         hoogte:=0;    {3375= etrahoogte * aantalregel op een blad +1}
         titelbalk;
     end ;
   for k:=0 to stringgrid.colcount-1 do
       Uitprint(k,r);
 hoogte:=hoogte+extrahoogte;
end;
finally
close(outputfile);
end;
end;


Dat is me code. Lijkt mij dat hij goed is.

I'm proudly present you: www.bertverbeek.nl
Wie dit leest is ......
specs.
En keeper van s.v. de Glind 2


  • whoami
  • Registratie: December 2000
  • Laatst online: 01:57
Je maakt het best gebruik van Reports als je iets wilt uitprinten.

https://fgheysels.github.io/


  • VIsje
  • Registratie: Oktober 2000
  • Laatst online: 17-08 07:12

VIsje

keeper s.v. de Glind 2

Topicstarter
Zou toch zeggen dat dit ook goed is?

I'm proudly present you: www.bertverbeek.nl
Wie dit leest is ......
specs.
En keeper van s.v. de Glind 2


  • VIsje
  • Registratie: Oktober 2000
  • Laatst online: 17-08 07:12

VIsje

keeper s.v. de Glind 2

Topicstarter
Ik heb het opgelost door gebruik te makenvan deze software:
http://www.tmssoftware.com/

I'm proudly present you: www.bertverbeek.nl
Wie dit leest is ......
specs.
En keeper van s.v. de Glind 2


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Mental note: alle printing routines die ik binnen BCB ooit gebruikt hebt zijn buggy als de TYFUS, met als trieste hoofdmoot de TRichEdit.Print functie die het presteerde om een printjob van zo'n 16000 pagina's te produceren uit 3 regels tekst.

Professionele website nodig?