PDA

Ver la Versión Completa : Imprimir un Archivo de word con CreateOleObject


berna
18-11-2010, 00:31:00
Hola Buenas Tardes...

Tengo un Proceso el cual manda una serie de parametros a un documento base (Creado con anterioridad con campos de formulario) en word pero hasta ahora no he encontrado los parametros para mandar a imprimir este documento sin que el usuario vea dicho documento. este es el codigo que tengo:

var
Archivo,cadAux : String;
Word,Doc : Variant;
begin
try
Archivo:='C:\contrato.Doc';
Word:=CreateOleObject('word.application');
Word.Documents.Open(Archivo);
Doc:=Word.ActiveDocument;
.....
......
...... Serie de Parametros
// Word.Visible:=True;
Word.print(Archivo);
// Word.Documents.close(false);
except
.....
.....
//Word.Print;
end;

espero me puedan ayudar, me imagino que es algo sencillo y que estoy dejando ir...........Gracias.....

Neftali [Germán.Estévez]
18-11-2010, 10:48:56
Por favor, utiliza TAG's cuando añadas código delphi (http://tinyurl.com/y5ctbot).

En cuanto a la duda, es un código antiguo (y me temo que no funcionará con todas las versiones de Word), pero yo usaba algo similar a esto:


...
if( VarIsEmpty( WinWord ) ) then begin
WinWord := CreateOleObject('Word.Basic');
...
WinWord.FileOpen(FFileName);
...
// combinar corrrespondencia (esto no te hace falta)
WinWord.MailMergeToDoc;
...
// imprimir
WinWord.FilePrint(,,,,,,,Self._FCopias);
WinWord.FileCloseAll(2);

berna
18-11-2010, 17:22:16
Con esto que me mencionas si necesaria la forma de combinar informacion
ya que con el codigo que utilizo uso las siguiente linea para envirle los datos a la plantilla




Doc.FormFields.Item(NomVariable).Result:=Datos;

Neftali [Germán.Estévez]
18-11-2010, 17:39:09
No, el tema de la combinación era algo personal mío. No es necesario que lo hagas.
Sólo coge la parte de impresión.