Page 1 of 1
PrintWindow
Posted: Mon Apr 14, 2014 10:09 am
by Agustin
Necesito imprimir la pantalla con la función PRINTWINDOW() , pero no consigo dirigir la impresión a la impresora PDFCreator.
Uso SELECT PRINTER "PDFCreator"
Alguna idea ?
Saludos cordiales
Re: PrintWindow
Posted: Mon Apr 14, 2014 11:02 am
by danielmaximiliano
Hola :
tienes que seleccionar primeramente la impresora para redirigirla a ella.
Code: Select all
**********************************************************
PROCEDURE Print
**********************************************************
LOCAL nLeft, nTop, nRight, nBottom, aSelRange
LOCAL lSuccessVar
LOCAL nRow, nCol, nPag
SELECT PRINTER DIALOG TO lSuccessVar PREVIEW
IF lSuccessVar == .T.
despues que tienes seleccionada imprime sobre ella.
estos son los parametros recibidos por la funcion
Code: Select all
FUNCTION PRINTWINDOW ( cWindowName , lPreview , ldialog , nRow , nCol , nWidth , nHeight )
Re: PrintWindow
Posted: Mon Apr 14, 2014 11:14 am
by Agustin
Gracias por tu respuesta, pero mi idea es que el usuario no tenga que intervenir, y se genere el fichero pdf automáticamente en el directorio que se indica en la opción de autoguardado de PDFCreator
Re: PrintWindow
Posted: Mon Apr 14, 2014 11:18 am
by Agustin
Añado a lo anterior, que quizás pueda cambiarse la impresora default por programa, y después de imprimir restaurar la impresora default, pero no se hacerlo
Un saludo
Re: PrintWindow
Posted: Mon Apr 14, 2014 12:01 pm
by danielmaximiliano
try to use this function
Code: Select all
Function main
Local cPrinter
cPrinter := GetPrinter()
If Empty (cPrinter)
cPrinter := "PDFCreator"
EndIf
..
...
SetDefaultPrinter (cPrinter)
...
...
return
# ifndef __ XHARBOUR__
# pragma BEGINDUMP
# include "hbapi.h"
HB_FUNC_EXTERN (WIN_PRINTERSETDEFAULT); HB_FUNC (SetDefaultPrinter) {HB_FUNC_EXEC (WIN_PRINTERSETDEFAULT); }
# pragma ENDDUMP
# endif
Re: PrintWindow
Posted: Mon Apr 14, 2014 3:31 pm
by Agustin
Hola DanielMaximiliano:
Tu función puede ser lo que necesito, pero me da error:
C:\DEPOSITO\entradas.prg(5222) Error E0013 Error in #ifdef
C:\DEPOSITO\entradas.prg(5232) Error E0014 #endif does not match #ifdef
Puede ser porque no uso xharbor ?
Re: PrintWindow
Posted: Mon Apr 14, 2014 4:47 pm
by esgici
Re: PrintWindow
Posted: Tue Apr 15, 2014 1:00 pm
by bpd2000
Look example attached
Re: PrintWindow
Posted: Tue Apr 15, 2014 2:46 pm
by danielmaximiliano
Sorry . Update Sample
Code: Select all
#include <hmg.ch>
#require "hbwin"
/************************************************/
Function main
/************************************************/
Public cPrinter:= GetDefaultPrinter()
DEFINE WINDOW Main AT 160 , 314 WIDTH 400 HEIGHT 300 Main TITLE 'Printer Default'
DEFINE LABEL Label_1
ROW 30
COL 38
WIDTH 250
HEIGHT 24
VALUE "default printer : " + cPrinter
FONTNAME "Arial"
FONTSIZE 12
TOOLTIP ""
END LABEL
DEFINE BUTTON Button_1
ROW 97
COL 100
WIDTH 140
HEIGHT 28
ACTION Prn()
CAPTION "Set printer PDFcreator"
END BUTTON
DEFINE LABEL Label_2
ROW 170
COL 38
WIDTH 300
HEIGHT 24
VALUE ""
FONTNAME "Arial"
FONTSIZE 14
FONTBOLD .T.
END LABEL
END WINDOW
Main.Center
Main.Activate
Return
/************************************************/
Function Prn()
/************************************************/
win_printerSetDefault( "PDFcreator" )
cPrinter := "Default printer : " + GetDefaultPrinter()
Main.Label_2.Visible := .T.
Main.Label_2.Value := cPrinter
Main.Label_2.Refresh
Return

- 2014-04-15 11_45_17-Printer Default.jpg (15.14 KiB) Viewed 4606 times
Re: PrintWindow
Posted: Tue Apr 15, 2014 5:11 pm
by Agustin
Ahora si funciona bien.
Muy agradecido.
Saludos