Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-03-2007
chozas chozas is offline
Miembro
 
Registrado: may 2003
Ubicación: El Cuervo de Sevilla
Posts: 24
Poder: 0
chozas Va por buen camino
Error Marca de Agua en pdf

Uso el siguiente procedimiento para colocar en el quickreport (versión 3.0) una imagen a modo de marca de agua. El preview del report lo hace correcto así como la impresión en papel, el problema viene al imprir a pdf con una impresora virtual que coloca la imagen sobre el texto. Probé con varias impresoras virtuales a pdf y el problema es común a todas.

Código Delphi [-]
procedure TFormulario.ImprimeMarcaAgua(QuickRep1:TQuickRep);
var
   bmp : TBitMap;
   R      : TRect;
   X, Y   : integer;
   Cnv    : TCanvas;
   Info : PBitMapInfo;
   InfoSize : DWORD;
   Image : Pointer;
   ImageSize : DWORD;
begin
  TRY

    bmp := TBitMap.Create;
    bmp.Width :=Image1.Picture .Width;
    bmp.Height :=Image1.Picture.Height;
    bmp.Canvas.Draw(0,0,Image1.Picture.Bitmap);

    with QuickRep1.QRPrinter do
    begin
      Y := YPos(PaperLengthValue) div 6;
      X := XPos(PaperWidthValue) div 4;
      R := Rect(X, 2 * Y, 3 * X, 4 * Y);
      Cnv:=Canvas;
    end;//with

    with bmp do
    begin
      GetDIBSizes(Handle, InfoSize, ImageSize);
      GetMem(Info, InfoSize);
      try
         Getmem(Image, ImageSize);
         try
            GetDIB(Handle, Palette, Info^,Image^);
            with Info^.bmiHeader do
               StretchDIBits(Cnv.Handle, R.Left, R.Top,
                             R.Right - R.Left, R.Bottom - R.Top,
                             0, 0, biWidth, biHeight, Image,
                             Info^, DIB_RGB_COLORS, SRCAND );

         finally
            FreeMem(Image, ImageSize);
         end;//try-finally
      finally
         FreeMem(Info, InfoSize);
      end;//try-finally
    end;//with

  FINALLY
    bmp.free
  END;//try-finally
end;

Este procedimiento lo llamo desde el evento AfterPrint de una banda PageFooter.
A ver si alguien me dá una solución a este problema, muchas gracias de antemano.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como insertar fondo (marca de agua), a un pdf con codigo???? JuanErasmo API de Windows 1 14-12-2006 23:32:41
Marca de Agua en FastReport droguerman Impresión 0 29-08-2006 04:21:13
marca de agua davidgaldo Impresión 1 18-02-2004 12:47:28
Me Marca Error!! Supermagayin Conexión con bases de datos 1 15-12-2003 01:40:22
Marca de Agua en Rave javiermorales Impresión 1 12-06-2003 08:59:05


La franja horaria es GMT +2. Ahora son las 13:27:39.


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
Copyright 1996-2007 Club Delphi