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.
Imprimir la imagen de un stringgrid
Started by
FGarcia
, Jan 14 2011 12:27 PM
3 replies to this topic
#1
Posted 14 January 2011 - 12:27 PM
#2
Posted 16 January 2011 - 08:35 AM
Puedes exportar a excel y luego imprimir por ejemplo esta funcion puede servir:
ejemplo de uso:
Fuente: http://www.clubdelph...rimir.php?id=77
delphi
uses Excel_TLB, ActiveX. procedure ExportaExcel(pStringGrid : TstringGrid; c0,r0,c1,r1 : Integer); var ExLin, ExCol, i, Linea, AuxInteger : Integer; AuxFloat : Double; AuxFecha : tDatetime; c : TCursor; Excel, ExcelDoc, WS : Variant; begin c := Screen.Cursor; Screen.Cursor := crHourGlass; with pStringGrid do begin try coinitialize(nil); Excel := CreateOleObject('Excel.Application'); ExcelDoc := Excel.Workbooks.Add; WS := ExcelDoc.ActiveSheet; Excel.Visible := true; ExCol := 0; for i := c0 to c1 do begin inc(ExCol); ws.Cells.Item[1, ExCol]:= cells[i, 0]; end; for linea := r0 to r1 do begin inc(ExLin); ExCol := 0; for i := c0 to c1 do begin inc(ExCol); try try if pos('/', cells[i, linea - 1]) <> 0 then begin AuxFecha := strtodatetime(cells[i, linea - 1])); ws.Cells.Item[ExLin, ExCol] := AuxFecha; end else AuxFecha := strtodatetime('GENERA EXCEPCION'); except try AuxInteger := strtoint(cells[i,linea-1])); ws.Cells.Item[ExLin,ExCol]:= AuxInteger; except try AuxFloat := strtofloat(cells[i,linea-1]); ws.Cells.Item[ExLin,ExCol]:= AuxFloat; except ws.Cells.Item[ExLin,ExCol]:= cells[i,linea-1]; end; end; end; except end; end; end; ws.cells.entirecolumn.autofit; finally screen.Cursor := c; end; end; end;
ejemplo de uso:
delphi
ExportaExcel(StringGrid1, 0, StringGrid1.ColCount-1, 0, StringGrid.RowCount-1);
Fuente: http://www.clubdelph...rimir.php?id=77
#3
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?
#4
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?
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?