Jump to content


Photo

Imprimir la imagen de un stringgrid


  • Please log in to reply
3 replies to this topic

#1 FGarcia

FGarcia

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 687 posts
  • LocationMéxico

Posted 14 January 2011 - 12:27 PM

Hola!
En este hilo de CD Seoane pone un procedimiento para imprimir el StringGrid, sin embargo he tratado de probarlo imprimiendo en una impresora PDF y me genera error de que el documento no esta completo. ¿Habra que modificar algo para poder hacerlo en pdf? o ¿como se podria hacer para guardar el stringgrid en jpg o png? En una impresora "normal" funciona correctamente.
No pongo el zip aqui pues creo que no seria decente, a menos que el autor lo apruebe.
Gracias por su tiempo.
  • 0

#2 mikrosurfer

mikrosurfer

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 155 posts

Posted 16 January 2011 - 08:35 AM

Puedes exportar a excel y luego imprimir por ejemplo esta funcion puede servir:


delphi
  1. uses
  2. Excel_TLB, ActiveX.
  3.  
  4. procedure ExportaExcel(pStringGrid : TstringGrid; c0,r0,c1,r1 : Integer);
  5. var ExLin, ExCol, i, Linea, AuxInteger : Integer;
  6.     AuxFloat : Double;
  7.     AuxFecha : tDatetime;
  8.     c : TCursor;
  9.     Excel, ExcelDoc, WS : Variant;
  10. begin
  11.   c            := Screen.Cursor;
  12.   Screen.Cursor := crHourGlass;
  13.   with pStringGrid do begin
  14.     try
  15.       coinitialize(nil);
  16.       Excel        := CreateOleObject('Excel.Application');
  17.       ExcelDoc      := Excel.Workbooks.Add;
  18.       WS            := ExcelDoc.ActiveSheet;
  19.       Excel.Visible := true;
  20.       ExCol        := 0;
  21.       for i := c0 to c1 do begin
  22.         inc(ExCol);
  23.         ws.Cells.Item[1, ExCol]:= cells[i, 0];
  24.       end;
  25.  
  26.       for linea := r0 to r1 do begin
  27.         inc(ExLin);
  28.         ExCol := 0;
  29.         for i := c0 to c1 do begin
  30.           inc(ExCol);
  31.           try
  32.             try
  33.               if pos(&#39;/&#39;, cells[i, linea - 1]) <> 0 then begin
  34.                 AuxFecha := strtodatetime(cells[i, linea - 1]));
  35.                 ws.Cells.Item[ExLin, ExCol] := AuxFecha;
  36.               end
  37.               else AuxFecha := strtodatetime(&#39;GENERA EXCEPCION&#39;);
  38.             except
  39.               try
  40.                 AuxInteger := strtoint(cells[i,linea-1]));
  41.                 ws.Cells.Item[ExLin,ExCol]:= AuxInteger;
  42.               except
  43.                 try
  44.                   AuxFloat := strtofloat(cells[i,linea-1]);
  45.                   ws.Cells.Item[ExLin,ExCol]:= AuxFloat;
  46.                 except
  47.                   ws.Cells.Item[ExLin,ExCol]:= cells[i,linea-1];
  48.                 end;
  49.               end;
  50.             end;
  51.           except end;
  52.         end;
  53.       end;
  54.       ws.cells.entirecolumn.autofit;
  55.     finally
  56.       screen.Cursor := c;
  57.     end;
  58.   end;
  59. end;



ejemplo de uso:



delphi
  1. ExportaExcel(StringGrid1, 0, StringGrid1.ColCount-1, 0, StringGrid.RowCount-1);



Fuente: http://www.clubdelph...rimir.php?id=77

  • 0

#3 seoane

seoane

    Advanced Member

  • Administrador
  • 1259 posts
  • LocationEspaña

Posted 16 January 2011 - 09:39 AM

Pues a mi no me da ningún error al usar el PdfCreator ¿Puedes poner el código que estas usando?
  • 0

#4 FGarcia

FGarcia

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 687 posts
  • LocationMéxico

Posted 18 January 2011 - 10:12 AM

He andado un poco ocupado con el trabajo asi que no le habia dedicado tiempo a este pequeño problema. Gracias por su interes.
mikrosurfer en realidad no deseo exportar datos, solo imprimir la imagen del contenido del stringgrid.
seoane: en realidad no habia probado con PDFCreator tengo en mi maquina instalado el Foxit Phantom y es el que estaba usando como impresora pdf pero al parecer si tiene un error al generar el documento, con pdfcreator se imprime bastante bien y se visualiza bien con el Foxit.
Aunque es tema de otro hilo ¿como se podria copiar el stringgrid a una imagen jpg o png?
  • 0




IP.Board spam blocked by CleanTalk.