Power Builder - API PrinterProperties

 
Vista:

API PrinterProperties

Publicado por Usuario (30 intervenciones) el 15/01/2004 14:42:02
Hola.

He conseguido mostrar el cuadro de diálogo de las propiedades de la impresora Acrobat Distiller con las API's OpenPrinter y PrinterProperties
pero no me permite editar ninguna de las propiedades porque es como si los controles estuvieran deshabilitados.

¿Alguién sabría decirme cuál es el problema?

Por último, si utilizo la función PrintSetup, puedo hacer los cambios pero no tienen efecto al imprimir desde la aplicación de powerbuilder en la que estoy mostrando el cuadro de diálogo.

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:API PrinterProperties

Publicado por Oscar (1178 intervenciones) el 16/01/2004 23:07:08
No verifiqué esas APIS. Sobre PrinterSetup ó PrintSetupPrinter, funcionan PERFECTAMENTE cuando se usan en la misma aplicación de PB, tal como reza su ayuda.

Ahora bien, como estas imprimiendo una aplicación externa (Word) con OLE; no tiene sentido que uses esas funciones; es como pretender configurar la impresora en Excel, para que ésta funcione en Word.

Debes actuar desde el mismo OLE. Por ejemplo, para fijar una impresora en la aplicación de PB, se usa:
PrintSetPrinter ( printername )

Pero si estas usando un OLE, se usa:
ole_object.ActivePrinter = "Distiller Assistant v3.01"

Tal como se observa en este ejemplo:

string ls_connect
string ls_archivo='c:\miarchivo.doc'
OLEObject ole_object
ole_object = CREATE OLEObject

ls_connect = "word.application.8"
IF ole_object.ConnectToNewObject(ls_connect) = 0 THEN
ole_object.Documents.open(ls_archivo)
ole_object.Visible=FALSE
//Observá esta línea:
ole_object.ActivePrinter = "FinePrint pdfFactory Pro"
ole_object.ActiveDocument.printout(0)
ole_object.quit(0) // no guardar
ole_object.DisconnectObject()
end if

En vez del Distiller, se usó pdfFactory Pro, que tiene dos opciones interesantes:
- Puede tornarse invisible.
- Permite elegir una carpeta, donde van a parar los pdf.
Si estás usando Distiller, existe un código en VB, llamado:
"Cómo convertir una carpeta llena de documentos Word a pdf"

http://www.planetpdf.com/mainpage.asp?WebPageID=244

Puede darte ideas, usa APIS, OLES y esas cosas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:API PrinterProperties

Publicado por Usuario (30 intervenciones) el 19/01/2004 09:47:06
Gracias por tu ayuda.

Lo unico que quería configurar era el tamaño de la página a imprimir: A4, A3,..., pero no encuentro la forma con OLE.

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:API PrinterProperties

Publicado por Oscar (1178 intervenciones) el 19/01/2004 15:43:00
Si estas usando OLE, probá con esto:

//Tamaño papel
//Tabloid=1, Letter=2, Legal=4, Executive=5,A3=6, A5=9, etc.
ole_object.ActiveDocument.pagesetup.Papersize= 7 // A4

//Orientación
ole_object.ActiveDocument.pagesetup.Orientation= 0 // Portrait

//Márgenes
ole_object.ActiveDocument.pagesetup.LeftMargin=ole_object.CentimetersToPoints( 2.5)
ole_object.ActiveDocument.pagesetup.RightMargin=ole_object.CentimetersToPoints( 2)
ole_object.ActiveDocument.pagesetup.TopMargin=ole_object.CentimetersToPoints( 2.5)
ole_object.ActiveDocument.pagesetup.BottomMargin=ole_object.CentimetersToPoints( 2)

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:API PrinterProperties

Publicado por Usuario (30 intervenciones) el 19/01/2004 17:27:59
Gracias por la respuesta.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar