Página 1 de 1

Ficheros EMF con Printer

Publicado: Vie Abr 13, 2007 5:50 pm
por jose.luis
Hola,
Existe alguna forma de importar un fichero EMF (creado con otra aplicación)
y añadirlo al documento actual de impresión. Algo así:
oPrinter:StartDoc()
oPrinter:StartPage()
oPrinter:ImportEMF("mifichero.emf")
oPrinter:....
oPrinter:...
oPrinter:EndPage()
oPrinter:EndDoc()
Saludos y gracias,
José Luis Capel

Ficheros EMF con Printer

Publicado: Vie Abr 13, 2007 10:27 pm
por notelo
José Luis,
> Existe alguna forma de importar un fichero EMF (creado con otra aplicación)
> y añadirlo al documento actual de impresión. Algo así­:
Quizás tengas que modificar el ejemplo, pero prueba así­:
oPrinter:oCanvas:DrawPicture( aRect, TPicture():Create( "mifichero.emf" ) )
Saludos,
José Lalí­n

Ficheros EMF con Printer

Publicado: Lun Abr 16, 2007 11:39 am
por jose.luis
José,
Lo voy a probar. Muchas gracias!!
Saludos,
José Luis Capel
"José Lalín" <notelo@digo.com> escribió en el mensaje
news:461fe7ee$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>
> José Luis,
>
>> Existe alguna forma de importar un fichero EMF (creado con otra
>> aplicación) y añadirlo al documento actual de impresión. Algo así:
>
> Quizás tengas que modificar el ejemplo, pero prueba así:
>
> oPrinter:oCanvas:DrawPicture( aRect, TPicture():Create(
> "mifichero.emf" ) )
>
> Saludos,
> José Lalín

Ficheros EMF con Printer

Publicado: Mar Abr 17, 2007 1:40 pm
por jose.luis
José,
>
> oPrinter:oCanvas:DrawPicture( aRect, TPicture():Create(
> "mifichero.emf" ) )
>
Disculpa esta pregunta... pero 'aRect' ¿como lo obtengo?
Saludos y gracias,
José Luis Capel

Ficheros EMF con Printer

Publicado: Mar Abr 17, 2007 2:36 pm
por notelo
José Luis,
> Disculpa esta pregunta... pero 'aRect' ¿como lo obtengo?
aRect son las coordenadas donde quieres que se dibuje la imagen, así­:
LOCAL oPicture := TPicture():Create( "mifichero.emf" )
oPrinter:oCanvas:DrawPicture( { 0, 0, oPicture:nWidth, oPicture:nHeight },
oPicture )
Las coordenas 0, 0 son el punto de origen y tendrás que ajustarlas a la
posición que necesites.
Saludos,
José Lalí­n

Ficheros EMF con Printer

Publicado: Mar Abr 17, 2007 4:29 pm
por jose.luis
José,
No se si esto es lo más correcto.
He probado lo siguiente:
WITH OBJECT oReport
:onStartPage := {| o | o:oDevice:oCanvas:DrawPicture(
{0,0,o:oDevice:PaperSize()[1],o:oDevice:PaperSize()[2] } ,
TPicture():Create( "pruebas.emf" ) ) }
END
Y me aparece el listado bien impreso pero el EMF aparece pequeño. Entonces
pensé que debemos pasar la información en mmHIMETRICS. Con lo que hice
esto:
WITH OBJECT oReport
:onStartPage := {| o |o:oDevice:oCanvas:nMapMode := mmHIMETRICS,
o:oDevice:oCanvas:DrawPicture(
{0,0,o:oDevice:PaperSize()[1],o:oDevice:PaperSize()[2] } ,
TPicture():Create( "pruebas.emf" ) ) }
END
Con esto consigo que el EMF aparezca como tiene que ser... pero como
contra-partida el listado aparece como más 'amplio', vamos, como si fuera a
doble espacio.
Yo creo que después de hacer la llamada a DrawPicture debería volver a dejar
el nMapMode como estaba... Entonces haciendo esto:
WITH OBJECT oReport
:onStartPage := {| o | a := o:oDevice:oCanvas:nMapMode,
o:oDevice:oCanvas:nMapMode := mmHIMETRICS, o:oDevice:oCanvas:DrawPicture(
{0,0,o:oDevice:PaperSize()[1],o:oDevice:PaperSize()[2] } ,
TPicture():Create( "pruebas.emf" ) ), o:oDevice:oCanvas:nMapMode := a }
END
Va estupendamente. Esto creo que puede ayudar a 'embellecer' la clase
tReport....
Muchas gracias José (Lalín) !!
Saludos,
José Luis Capel
"José Lalín" <notelo@digo.com> escribió en el mensaje
news:[email=4624bf9b@ozsrv2.ozlan.local...]4624bf9b@ozsrv2.ozlan.local...[/email]
>
> José Luis,
>
>> Disculpa esta pregunta... pero 'aRect' ¿como lo obtengo?
>
> aRect son las coordenadas donde quieres que se dibuje la imagen, así:
>
> LOCAL oPicture := TPicture():Create( "mifichero.emf" )
>
> oPrinter:oCanvas:DrawPicture( { 0, 0, oPicture:nWidth, oPicture:nHeight },
> oPicture )
>
> Las coordenas 0, 0 son el punto de origen y tendrás que ajustarlas a la
> posición que necesites.
>
> Saludos,
> José Lalín

Ficheros EMF con Printer

Publicado: Jue Abr 19, 2007 12:39 pm
por notelo
José Luis,
> Con esto consigo que el EMF aparezca como tiene que ser... pero como
> contra-partida el listado aparece como más 'amplio', vamos, como si fuera a
> doble espacio.
Acabo de revisar el código de TPicture y TCanvas y ninguna de las dos
cambia nMapMode, así­ que probablemente el problema esté en cómo se ha
generado el EMF. Si tienes alguna utilidad o quizás mirando las propiedades
del archivo EMF desde el Explorador, podrí­amos tener un poco más de
información.
> Va estupendamente. Esto creo que puede ayudar a 'embellecer' la clase
> tReport....
¡ M'alegro ! :-)
> Muchas gracias José (Lalí­n) !!
A mandar ;-))
Saludos,
José Lalí­n

Ficheros EMF con Printer

Publicado: Jue Abr 19, 2007 4:54 pm
por jose.luis
José,
>
> Acabo de revisar el código de TPicture y TCanvas y ninguna de las dos
> cambia nMapMode, así que probablemente el problema esté en cómo se ha
> generado el EMF. Si tienes alguna utilidad o quizás mirando las
> propiedades del archivo EMF desde el Explorador, podríamos tener un poco
> más de información.
>
Fallo mío!!! Al cambiar el mapmode para imprimer el emf y no dejarlo como
estaba.
Por cierto... ¿lo mismo es válido para los WMF?
Saludos,
José Luis Capel

Ficheros EMF con Printer

Publicado: Vie Abr 20, 2007 4:21 pm
por notelo
José Luis,
> Fallo mí­o!!! Al cambiar el mapmode para imprimer el emf y no dejarlo como
> estaba.
Gracias por aclararlo :-)
> Por cierto... ¿lo mismo es válido para los WMF?
Sí­.
Saludos,
José Lalí­n