Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Como puedo controlar los margenes de la impresora para el richedit (https://www.clubdelphi.com/foros/showthread.php?t=62494)

cmm07 29-12-2008 15:07:53

Como puedo controlar los margenes de la impresora para el richedit
 
Hola, les pido porfavor que me ayuden , es algo muy urgente y lo tengo que entregar mañana por la mañana, lo que sucede es que estoy trabajando con jvRichEdit, al imprimir deseo cambiar los márgenes, ¿Como puedo controlar los margenes de la impresora para el jvrichedit?, gracias, ojala lo solucione..

es urgente amigo porfavor!!;)

gracias.:D:)

duilioisola 29-12-2008 15:16:32

Y como lo imprimes? Utilizando Fast Report, Quick Report, otro?

La solución simple es configurar la impresora para que tenga ciertos márgenes y así todo lo que imprimas salga con ese margen. (Inicio/Configuracion/Impresotras/...)

duilioisola 29-12-2008 15:37:19

Acabo de ver también en el Help de Delphi 6:

property PageRect: TRect;

Specifies the dimensions, in pixels, of the logical page size used when printing the contents of a rich text edit control.

Description

Use PageRect to specify the logical page size used when formatting the contents of the rich edit control for printing. Specify the dimensions in pixels.

cmm07 29-12-2008 15:38:40

gracias, y pues no utilizo ni quickreport, freereport ni nada de eso, ocupo :
Código Delphi [-]
jvRichEdit1.Print('hola');
y lo del poperty lo voy a probar, gracias.

cmm07 29-12-2008 15:51:58

Hola, coloco algunas imagenes de lo que deseo hacer, esta imagen es lo que esta normalmente osea en el ahora, con los margenes no desados:


y Aquí esta un montage creado en Microsoft Paint, y así me gustaría que me quedase sin los margenes:



en la misma imagen explica el problema., ¿Como quiito los margenes para que me quede así al imprimir?

gracia.s

duilioisola 29-12-2008 16:17:20

En esto no te puedo ayudar... No se que hace internamente TRichEdit.Print.

Supongo que se podrá hacer algo con TPrinter.PageHeight y TPrinter.PageWidth.

Del help de Delphi 6:

The VCL TPrinter object encapsulates details of Windows printers. To get a list of installed and available printers, use the Printers property. The CLX TPrinter object is a paint device that paints on a printer. It generates postscript and sends that to lpr, lp, or another print command.
Both printer objects use a TCanvas (which is identical to the form's TCanvas) which means that anything that can be drawn on a form can be printed as well. To print an image, call the BeginDoc method followed by whatever canvas graphics you want to print (including text through the TextOut method) and send the job to the printer by calling the EndDoc method.

This example uses a button and a memo on a form. When the user clicks the button, the content of the memo is printed with a 200-pixel border around the page.
To run this example successfully, add Printers to your uses clause.

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  r: TRect;
  i: Integer;
begin
  with Printer do
    begin
      r := Rect(200,200,(Pagewidth - 200),(PageHeight - 200));
      BeginDoc;
      for i := 0 to Memo1.Lines.Count do
       Canvas.TextOut(200,200 + (i * Canvas.TextHeight(Memo1.Lines.Strings[i])),Memo1.Lines.Strings[i]);
      Canvas.Brush.Color := clBlack;
      Canvas.FrameRect(r);
      EndDoc;
    end;
end;

Además de esto (imprimir directamente), supongo que te servirá mirar un poco el QuickReport.
Es cuestion de agregar una banda de impresion y repetirla tantas veces como desees.

Neftali [Germán.Estévez] 29-12-2008 16:17:59

Cita:

Empezado por cmm07 (Mensaje 332457)
¿Como quiito los margenes para que me quede así al imprimir?

Piensa que no siempre puedes "eliminar" esos márgenes pues dependen en cierta manera de la impresora (físicamente).

Neftali [Germán.Estévez] 29-12-2008 16:35:51

Cita:

Empezado por duilioisola (Mensaje 332461)
No se que hace internamente TRichEdit.Print.

Bueno, para eso está la VCL.;) Se puede mirar el método:
Código Delphi [-]
procedure TCustomRichEdit.Print(const Caption: string);

de la unit ComCntrls.pas

De todas formas se puede cambiar la línea:
Código Delphi [-]
r := Rect(0,0,(Pagewidth - 200),(PageHeight - 200));

Añadiendo como X,Y un 0,0 y se ve como el recuadro se dibuja más arriba y a la izquierda (pero aun con márgenes), no en la esquina superior izquierda de la página. Esos márgenes son a los que yo me refiero y me parece que "no son modificables".

Si se escribe:
Código Delphi [-]
r := Rect(-10,-10,(Pagewidth - 200),(PageHeight - 200));
Lo que se aprecia es que la parte superior del recuadro no se ve. Es decir, la impresora no ha podido pintar el recuadro.


cmm07 29-12-2008 17:12:17

Amigo el problema es que estoy trabajando con el JVRichEdit, y no encuentro esa parte de instruccion en el componente, en el procedure Print del JVRichEdit, estoy demasiado desesperado, ya no se que hacer he buscado por todos lados y no hay solución alguna, ¿que puedo hacer?, cada intento es fallido, ayudame

gracias.

cmm07 29-12-2008 18:27:47

entonces, en quick report, ¿Como puedo duplicar una imagen?
o como repetiralo?


La franja horaria es GMT +2. Ahora son las 04:13:01.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi