Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-07-2007
jhges jhges is offline
Miembro
 
Registrado: may 2003
Ubicación: Baleares
Posts: 13
Poder: 0
jhges Va por buen camino
Interactuar con campos en documento pdf

Buenas tardes

Tengo un documento pdf que es una plantilla de una carta, en donde tengo un par de campos CLIENTE, DIRECCION, ETC...., tengo que rellenar esos campos de forma manual

Sabeis si desde delphi se puede cargar esos campos con datos de una bases de datos y pasarselos al documento de forma automatica, tipo combinar con word. Uso un documento pdf por que el documento esta escaneado, tiene mucha imagenes, y yo lo que he hech es insertar campos en algunas posiciones.

Trabajo con delphi 6. Tengo un activeX que es el TPDF pero por lo que he visto no puedo interactuar con los campos.

Saludos y gracias
Responder Con Cita
  #2  
Antiguo 06-07-2007
gabrielkc gabrielkc is offline
Miembro
 
Registrado: jun 2007
Ubicación: Chihuahua Mexico
Posts: 118
Poder: 17
gabrielkc Va por buen camino
mmm no es muy ortodoxo pero puedes emular que envias teclas al Acrobat Reader.

Código Delphi [-]

procedure PostKeyEx32(Key: Word; const Shift: TShiftState; SpecialKey: Boolean);

type
TShiftKeyInfo = record
shift: Byte;
vkey : Byte;
end;

byteset = set of 0..7;
const
ShiftKeys: array [1..3] of TShiftKeyInfo =
((shift: Ord(ssCtrl); vkey: VK_CONTROL ),
(shift: Ord(ssShift); vkey: VK_SHIFT ),
(shift: Ord(ssAlt); vkey: VK_MENU ));
var
 flag: DWORD;
 bShift: ByteSet absolute shift;
 i: Integer;
begin
 for i := 1 to 3 do
  begin
   if ShiftKeys[i].Shift in bShift then
    keybd_event( shiftkeys[i].vkey, MapVirtualKey(shiftkeys[i].vkey, 0), 0, 0);
  end;
 if SpecialKey then
  flag := KEYEVENTF_EXTENDEDKEY
 else
  flag := 0;

 keybd_event( key, MapvirtualKey( key, 0 ), flag, 0 );
 flag := flag or KEYEVENTF_KEYUP;
 keybd_event( key, MapvirtualKey( key, 0 ), flag, 0 );

 for i := 3 downto 1 do
  begin
   if ShiftKeys[i].Shift in bShift then
    keybd_event( ShiftKeys[i].vKey, MapVirtualKey(ShiftKeys[i].vKey, 0), KEYEVENTF_KEYUP, 0);
  end;
end; { PostKeyEx32 }

con el procedimiento anterior envias teclas a la ventana activa. Aunque si el usuario cambia la pantalla activa pues se enviarian a otra aplicación. Igual está el código por si te sirve
Responder Con Cita
  #3  
Antiguo 18-07-2007
afxe afxe is offline
Miembro
 
Registrado: jul 2004
Ubicación: Malaga-España
Posts: 273
Poder: 20
afxe Va por buen camino
¿Alguna otra solución? También estoy interesado en este tema y esperaba que alguien aportara algo más (que no es que sea poco lo de enviar teclas).

Ha llegado a mis manos los fuentes en C++ de cómo pasar un PDF a postscript y rellenar dichos campos, pero es un poco lioso: http://www.koders.com/cpp/fidEB54D8E...F2E3E7427.aspx

Seguiré buscando.
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
Interactuar con un Servicio en Terminal Server JJAlf API de Windows 1 29-01-2007 20:52:38
Interactuar pagina web con delphi manuweb Varios 6 20-12-2006 11:36:10
Interactuar pagina web con Delphi manuweb API de Windows 1 13-12-2006 11:18:52
Interactuar Con Servicio de Windows Enan0 API de Windows 4 27-01-2006 17:31:38
Interactuar con una web Masu Internet 1 03-07-2005 00:37:08


La franja horaria es GMT +2. Ahora son las 23:54:56.


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