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-07-2011
gabyzava gabyzava is offline
Miembro
 
Registrado: oct 2006
Posts: 34
Poder: 0
gabyzava Va por buen camino
imprimir varios archivos de word

Hola a todos

Necesito saber como imprimir varios archivos de word

Uso lo siguiente:
Código Delphi [-]
 
s:=c:/apuntes.doc;
ShellExecute(form1.Handle,'open',@s[1],nil,nil,0);
si la instrucción es una vez si funciona, pero varias veces ya no
hace nada.

¿Que se puede hacer para imprimir varios?

o porque no funciona esta instrucción?


Mil gracias

Última edición por ecfisa fecha: 15-07-2011 a las 00:33:00. Razón: ETIQUETAS [DELPHI] [/DELPHI]
Responder Con Cita
  #2  
Antiguo 15-07-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

A ver... no entiendo algunas cosas:

Cita:
Necesito saber como imprimir varios archivos de word
Las líneas que adjuntas, te abriran el archivo especificado en la variable 's' con el editor asociado pero no lo imprimirán en forma directa.

Si lo que buscas es imprimir te pongo un ejemplo de como sería:
Código Delphi [-]
...
  s:= 'C:\ARCHIVO.TXT';
  ShellExecute(Handle, 'print', @s[1], nil, nil, 0);  
...
No sé si funciona con Word, en principio por que uso LibreOffice. Tendrías que revisar si hay que pasarle algún argumento para que lo haga.

Cita:
si la instrucción es una vez si funciona, pero varias veces ya no hace nada.
Por otra parte el código
Código Delphi [-]
...
 s:= 'C:\apuntes1.doc';
 ShellExecute(Handle, 'open', @s[1], nil, nil, 0);
 s:= 'C:\apuntes2.doc';
 ShellExecute(Handle, 'open', @s[1], nil, nil, 0);
 s:= 'C:\apuntes3.doc';
 ShellExecute(Handle, 'open', @s[1], nil, nil, 0);
...
funciona correctamente, te abrirá tres instancias distintas del editor asociado.

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 15-07-2011
gabyzava gabyzava is offline
Miembro
 
Registrado: oct 2006
Posts: 34
Poder: 0
gabyzava Va por buen camino
imprimir con ShellExecute

Hola otra vez
Mil gracias por contestar

Es cierto que me equivoque al poner open y print,
sin embargo tampoco hace nada con open,

tengo un ciclo en que leo los nombres de varios archivos
y dentro del ciclo no funciona, solo funciona si mando
una instruccion.
por ejemplo:

primero pongo esta y si funciona:
Código Delphi [-]
    
    s:= 'C:\apuntes1.doc';
     ShellExecute(Handle, 'print', @s[1], nil, nil, 0);
pero si esta asi ya no hace nada
Código Delphi [-]
 
   for i:=1 to 100 do
    if archivos[i]<>'' then
    begin
      s:=archivos[i];
      ShellExecute(Handle, 'print', @s[1], nil, nil, 0);
    end;
¿Porque ShellExecute no funciona dentro de un ciclo?

que puedo hacer?

Gracias a todos

Última edición por ecfisa fecha: 15-07-2011 a las 03:00:19. Razón: ETIQUETAS [DELPHI] [/DELPHI]
Responder Con Cita
  #4  
Antiguo 15-07-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola gabyzava.

Te pongo el código de esta prueba con un archivo de texto por que sé que podrás reproducirlo sin problemas y quizá te pueda servir. Funciona correctamente abriendo tres instancias del notepad:
Código Delphi [-]
...
uses ShellApi;

procedure TForm1.Button1Click(Sender: TObject);
var
  v: array[1..3] of PChar;
  i: integer;
begin
  v[1]:='c:\archivo1.txt';
  v[2]:='c:\archivo2.txt';
  v[3]:='c:\archivo3.txt';
  for i:= 1 to 3 do
    ShellExecute(Handle, 'open', v[i], nil, nil, SW_SHOWNORMAL);
end;

Realmente lamento no tener el Word para mirar por que no te está funcionando...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 15-07-2011 a las 03:00:52.
Responder Con Cita
  #5  
Antiguo 16-07-2011
gabyzava gabyzava is offline
Miembro
 
Registrado: oct 2006
Posts: 34
Poder: 0
gabyzava Va por buen camino
Si funciona

hola

Solo para decir gracias, ya encontre el error y el ShellExecute si funciona.


Mil gracias
Responder Con Cita
  #6  
Antiguo 16-07-2011
Avatar de Osorio
Osorio Osorio is offline
Miembro
 
Registrado: may 2003
Ubicación: Colombia
Posts: 251
Poder: 22
Osorio Va por buen camino
Compartir

No está demás que compartas lo que encontraste, quizá a otro compañero hoy, mañana o mas tarde le puede servir.

Saludo.
Responder Con Cita
  #7  
Antiguo 27-07-2011
faustofabian faustofabian is offline
Registrado
 
Registrado: oct 2007
Posts: 4
Poder: 0
faustofabian Va por buen camino
Hola gente estoy haciendo lectura de todos, y lo que estoy buscando es imprimir un campo dbmemo en un qreport, tambien se me ha ocurrido escribir en un archivo de word el campo meno, he previsto que el campo tenga 1000 caracteres pues se trata de diagnosticos.... ahora solo estoy viendo que es lo mejor, que imprima directamente en un campo memo, o bien lo saque por word, que el usuario vea el diagnostico completo ahi..... Si alguien me da una mano les agradecere, ... desde ya gracias!!!!
Responder Con Cita
  #8  
Antiguo 22-11-2011
jonydread jonydread is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 157
Poder: 13
jonydread Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola gabyzava.

Te pongo el código de esta prueba con un archivo de texto por que sé que podrás reproducirlo sin problemas y quizá te pueda servir. Funciona correctamente abriendo tres instancias del notepad:
Código Delphi [-]
...
uses ShellApi;

procedure TForm1.Button1Click(Sender: TObject);
var
  v: array[1..3] of PChar;
  i: integer;
begin
  v[1]:='c:\archivo1.txt';
  v[2]:='c:\archivo2.txt';
  v[3]:='c:\archivo3.txt';
  for i:= 1 to 3 do
    ShellExecute(Handle, 'open', v[i], nil, nil, SW_SHOWNORMAL);
end;

Realmente lamento no tener el Word para mirar por que no te está funcionando...

Saludos.
Como se puede hacer eso cargando archivos mediante un opendialog o listbox y enviarlos sucesivamente a una aplicación externa??
Responder Con Cita
  #9  
Antiguo 23-11-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Como se puede hacer eso cargando archivos mediante un opendialog o listbox y enviarlos sucesivamente a una aplicación externa??
Te pongo un ejemplo que carga nombres de archivos de texto (.TXT) en un TComboBox usando un TOpenDialog y ShellExecute los envía para ser abiertos. En este caso, los archivos serán abiertos por la aplicación que esté asociada al tipo de extensión en el S.O.

Código Delphi [-]
...
implementation

uses ShellApi;

// Carga los nombres en el combo
procedure TForm1.btnLoadFileNameClick(Sender: TObject);
begin
  with OpenDialog1 do
  begin
    Filter:= 'Archivos de texto | *.TXT';
    if Execute then
      ComboBox1.Items.Add(FileName);
  end;
end;

// Abre los archivos existentes en el combo 
procedure TForm1.btnOpenFilesClick(Sender: TObject);
var
  i: Integer;
begin
  for i:= 0 to ComboBox1.Items.Count - 1 do
    ShellExecute(Handle, 'open',PChar(ComboBox1.Items[i]), nil, nil, SW_SHOWNORMAL);
end;
...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #10  
Antiguo 23-11-2011
jonydread jonydread is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 157
Poder: 13
jonydread Va por buen camino
mi Aplicacion externa toma de a uno los archivos por eso consultaba como enviarlos susesivamente estoy tratando de hacerlo con createprocess para cuando termine con uno seguir con otro ay estoy medio colgado porque me sale un error
Código Delphi [-]
procedure Tform1.LlamarReg2inf(Hnd: THandle; const App:string; const Origen: string; const Destino: string);
begin
  ShellExecute(Hnd,
              'OPEN',
              PChar(ExtractFileName(App)),
              Pchar(Origen+' '+Destino),
              PChar(ExtractFilePath(App)),
              SW_HIDE);
procedure TForm1.Button2Click(Sender: TObject);
var Origen, Destino : string;
  i: Integer;
   Process: Cardinal;
begin
Origen := Listbox1.Items[i];
Destino := ChangeFileExt(Origen,'.inf');
 LlamarReg2inf(Handle,'REG2INF.EXE',Origen,Destino );
 Process := ExecuteProcess('reg2inf.exe');
  if Process <> 0 then
    WaitForSingleObject(Process, INFINITE);
    //finalizado
 end;

uso esa funcion que me pasaste en otro post
Gracias
Responder Con Cita
  #11  
Antiguo 24-11-2011
Avatar de PepeLolo
PepeLolo PepeLolo is offline
Miembro
 
Registrado: jun 2003
Ubicación: Fuenlabrada - Madrid - Espagna
Posts: 265
Poder: 21
PepeLolo Va por buen camino
Te pongo enlace a una aplicación realizada en delphi que fusiona PDF. Descarga el código fuente del mismo, y sigue el proceso al guardar el PDF a generar, este contiene un ejemplo de código que solicitas.

un saludo.
__________________
PepeLolo
El hombre el único virus que mide más de unas cuantas micras
Responder Con Cita
  #12  
Antiguo 25-11-2011
jonydread jonydread is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 157
Poder: 13
jonydread Va por buen camino
Cita:
Empezado por PepeLolo Ver Mensaje
Te pongo enlace a una aplicación realizada en delphi que fusiona PDF. Descarga el código fuente del mismo, y sigue el proceso al guardar el PDF a generar, este contiene un ejemplo de código que solicitas.

un saludo.
uff lo vi pero no logre comprender del todo
gracias!!
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
Varios archivos en uno elcolo83 Varios 5 03-01-2008 15:02:17
Imprimir varios QReport luxus Impresión 2 06-12-2007 02:51:10
Aplicación con varios archivos Alexander Varios 8 08-11-2007 15:15:22
Imprimir Varios Hojas luxus Impresión 1 23-03-2007 00:42:50
Borrar varios archivos mrmanuel Varios 5 27-05-2004 02:03:54


La franja horaria es GMT +2. Ahora son las 12:02:04.


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