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
  #21  
Antiguo 12-01-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Neftali Ver Mensaje
No se si ahora ha quedado más claro...
Me parece que sí. Aunque, supongo, sería mejor crear un perfil ad hoc para la aplicación en cuestión y así no afectar la conversión-impresión predeterminada.

// Saludos
Responder Con Cita
  #22  
Antiguo 13-01-2011
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.269
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por roman Ver Mensaje
Aunque, supongo, sería mejor crear un perfil ad hoc para la aplicación en cuestión y así no afectar la conversión-impresión predeterminada.
Correcto, pero lo que ya no se es cómo enviarías la impresión modificando el perfil PREDETERMINADO. Cuando Desde Delphi haces, por decir algo, un:

Código Delphi [-]
   RichEdit.Print;

No tienes opción de cambiar el perfil. Si cuando trabajas en el otro modo (enviar un fichero ya existente en disco) porque lo haces utilizando línea de comandos.

En este caso una opción sencilla es tener 2 instancias del programa, 2 impresoras. Y utilizar una para generar PDF's; Por ejemplo que siempre se generan en R:\out.pdf.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #23  
Antiguo 18-01-2011
Avatar de juanelo
juanelo juanelo is offline
Miembro
 
Registrado: sep 2007
Posts: 1.083
Poder: 18
juanelo Va por buen camino
Agradezco a todos los que amablemente respondieron este hilo, al final les digo que termine usando los filtros de QReport, claro, limitando al formato o diseño del mismo, es decir, no se es permitido usar "shapes" rectangulares, lo cual dicho sea de paso solo representa mas trabajo de construccion del reporte.
No es lo mejor, pero debido al tiempo y el coste del proyecto creo fue la mejor solucion, aunque sigo en busca de un buen componente para hacer la exportacion. El cual si encuentro tengan por seguro que uds seran los segundos en saberlo.
Muchas gracias de nuevo.
Juanelo.
__________________
Ya tengo Firma!
Responder Con Cita
  #24  
Antiguo 07-10-2014
nnebli nnebli is offline
Miembro
NULL
 
Registrado: may 2011
Posts: 14
Poder: 0
nnebli Va por buen camino
Obtener un archivo en PDF sin que nos pida el nombre del archivo

Buenas noches.

Estoy buscando información de como guardar un archivo PDF sin que me pregunte el nombre del archivo, de tal forma que yo se lo pase y lo guarde directamente, o que se cree el PDF con un nombre por defecto y yo lo cambie después.

Actualmente hago lo siguiente:

1) Creo directamente en el Cavas lo que quiero tener en PDF

2) Lo envío en la impresora en PDF que previamente he seleccionado entre las que tengo instaladas

3) Cuando lo va a imprimir en PDF me pide el nombre del archivo y al dar el nombre del archivo y hacer click en guardar ya tengo el documento PDF.


Lo que quiero es que el paso 3) se lo salte porque yo le pase el nombre del archivo o que lo guarde con un nombre por defecto y luego yo lo cambie. Prefiero la primera opción, pero la segunda también me valdría.

Creo que lo que comenta Neftalí es una de las dos opciones que has indicado, pero en mi caso sería imprimiendo el Cavas en PDF.

Me puede alguien decir como obtener el archivo en PDF imprimiendo directamente sobre el Canvas sin que me pida el nombre del archivo.

Disculpad si me repito en lo que habéis explicado, pero no 'controlo' mucho este tema.

Gracias anticipadas a quien me pueda ayudar.

Saludos.
Responder Con Cita
  #25  
Antiguo 08-10-2014
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.269
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
En mi caso, tal y como he dicho aquí lo he realizado utilizando un perfil personalizado. En ese caso especificas las opciones y no te pide el nombre del archivo.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #26  
Antiguo 08-10-2014
nnebli nnebli is offline
Miembro
NULL
 
Registrado: may 2011
Posts: 14
Poder: 0
nnebli Va por buen camino
Buenas noches.

Según comentas, conviertes un fichero de tipo txt a PDF y con la configuración que indicas no hace falta darle el nombre del fichero. En mi caso creo no es lo mismo, yo voy escribiendo en el cavas y una vez que he terminado, al cerrar el documento con 'EndDoc' te pide el nombre del archivo (saliendo por defecto el que lleva como título el documento que se está imprimiendo) y al darle a guardar, se guarda, y ya está creado el documento pdf. Como es natural, tenemos que haber seleccionado previamente que la impresora es la que indica PDF.

Lo que no entiendo de lo que comentas, es como crear lo del perfil personalizado, no se si eso es para PdfCreator o si sirve para cualquier conversor de PDF. En mi caso me pone que se trata de Adobe Acrobat.

Te agradecería tus comentarios.


A continuación pongo un pequeño ejemplo de lo que hago:

Código Delphi [-]
 
Procedure EjemploParaImprimirEnElCanvas;
Begin
 
// trabaja con la Impresora
With Printer Do
Begin
 
Title := 'Titulo del documento';
 
BeginDoc;
 
// trabaja con el Canvas ( la superficie donde se va imprimiendo ) de la Impresora
With Canvas Do
Begin
 
// fija el tipo de letra elegido
Font.Name := 'Courier New'; // TipoDeLetraElegido;
 
// fija las unidades de trabajo a milímetros
SetMapMode(Printer.Handle,MM_LOMETRIC);
 
// imprimimos en el Canvas el texto indicado
TextOut(45,-70,'ESTO ES UNA PRUEBA');
 
End;
// fin de: trabaja con el Canvas ( la superficie donde se va imprimiendo ) de la Impresora
 
// termina el documento
EndDoc
 
End;
// fin de: trabaja con la Impresora
 
End;

Última edición por ecfisa fecha: 08-10-2014 a las 23:02:47. Razón: Agregar etiquetas [DELPHI] [/DELPHI]
Responder Con Cita
  #27  
Antiguo 09-10-2014
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.461
Poder: 20
newtron Va camino a la fama
Cita:
Empezado por nnebli Ver Mensaje
guiente:

1) Creo directamente en el Cavas lo que quiero tener en PDF

2) Lo envío en la impresora en PDF que previamente he seleccionado entre las que tengo instaladas

3) Cuando lo va a imprimir en PDF me pide el nombre del archivo y al dar el nombre del archivo y hacer click en guardar ya tengo el documento PDF.
y digo yo.... ya que usas el canvas para generar el impreso ¿por qué no utilizas algún componente pdf y generas directamente el pdf sin tener que usar una impresora virtual?.

Saludos
__________________
Be water my friend.
Responder Con Cita
  #28  
Antiguo 09-10-2014
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.269
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
La idea de las impresoras virtuales (entre ellas PDFCreator, que es de la que hablábamos), es que sirven para cuialquier cosa que imprimas y de cualquier forma. Da igual que imprimas desde word, desde un generador de reports, o desde canvas directamente. Cuando envía a la impresora PDF, habituamente te sale un cuadro de dialogo para seleccionar algunas opciones; Entre ellas una de la más importante es el nombre de fichero.

Lo que comento de crear un perfil, es que utilizando un fichero de configuración (fichero de perfil) puedes hacer que este cuadro de diálogo no aparezca, de forma que desde el programa sólo tienes que seleccionar la impresora "PDF" y enviar la impresión. Si lo configuras en el perfil se generará el PDF de forma automática sin intervención del usuario.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #29  
Antiguo 09-10-2014
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.461
Poder: 20
newtron Va camino a la fama
Cita:
Empezado por Neftali Ver Mensaje
La idea de las impresoras virtuales (entre ellas PDFCreator, que es de la que hablábamos), es que sirven para cuialquier cosa que imprimas y de cualquier forma. Da igual que imprimas desde word, desde un generador de reports, o desde canvas directamente. Cuando envía a la impresora PDF, habituamente te sale un cuadro de dialogo para seleccionar algunas opciones; Entre ellas una de la más importante es el nombre de fichero.

Lo que comento de crear un perfil, es que utilizando un fichero de configuración (fichero de perfil) puedes hacer que este cuadro de diálogo no aparezca, de forma que desde el programa sólo tienes que seleccionar la impresora "PDF" y enviar la impresión. Si lo configuras en el perfil se generará el PDF de forma automática sin intervención del usuario.
Si todo eso lo entiendo, lo que yo digo es que si imprime en el canvas, con un cambio fácil puede imprimir en el canvas de un componente pdf y se ahorra el instalar impresoras pdfs que es lo que yo hago.
__________________
Be water my friend.
Responder Con Cita
  #30  
Antiguo 09-10-2014
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.269
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por newtron Ver Mensaje
...lo que yo digo es que si imprime en el canvas, con un cambio fácil puede imprimir en el canvas de un componente pdf y se ahorra el instalar impresoras pdfs que es lo que yo hago.
Totalmente de acuerdo.
Mi comentario iba en referencia a esto que ha comentado él.


Cita:
Empezado por nnebli Ver Mensaje
...yo voy escribiendo en el cavas y una vez que he terminado, al cerrar el documento con 'EndDoc' te pide el nombre del archivo (saliendo por defecto el que lleva como título el documento que se está imprimiendo) y al darle a guardar, se guarda, y ya está creado el documento pdf. Como es natural, tenemos que haber seleccionado previamente que la impresora es la que indica PDF.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #31  
Antiguo 09-10-2014
nnebli nnebli is offline
Miembro
NULL
 
Registrado: may 2011
Posts: 14
Poder: 0
nnebli Va por buen camino
Newtron comentó:
------------------
y digo yo.... ya que usas el canvas para generar el impreso ¿por qué no utilizas algún componente pdf y generas directamente el pdf sin tener que usar una impresora virtual?.

Saludos

fin comentario de: Newtron
--------------------------


Buenas tardes.

Gracias Newtron por unirte a los comentarios que siempre son de agradecer.

El problema de cambiar lo que hay hecho actualmente, es que el desarrollo ya está hecho y en su día, cuando me propuse que en lugar de salir la información en papel saliese a un archivo tipo PDF, lo desarrollé como lo tengo actualmente. Cambiarlo, aunque pueda parecer sencillo, creo que a primera vista es muy complicado para mí, por dos cosas: La principal que no tengo tiempo ni de rascarme y la segunda es que tendría que volver a realizar algo que posiblemente con algún fichero de configuración inicial o algo parecido, como dice Neftalí, se podría solucionar.

El programa donde está este módulo de impresión, llevo desarrollándolo posiblemente más de 25 años (no se si te sonará el Amstrad de 64 K que tenía una disquetera junto al teclado a la derecha de éste, con ese comenzó el programa y desde entonces se ha ido mejorando y poniendo cosas nuevas. En un determinado momento lo migré de Pascal a Delphi 3.0 y luego a Delphi 7). La unidad que se encarga de imprimir los distintos documentos según un formato concreto que se tienen que imprimir, ocupa más de 32.000 líneas, sólo esta unidad, porque después hay unidades para otras muchas cosas.

Sin ánímo de enrollarme más, , estoy comentando esto para hacer ver lo complicado que me resultaría cambiar todo el tema de la impresión

Lo que estoy buscando es algo sencillo, archivo de configuraicón o algo parecido que permita crear el PDF cogiendo el nombre del archivo que yo le paso por código, amoldándome a lo que ya hay hecho.

Lo que comentas Newtron de no tener que utilizar el cavas parece muy interesante, pero me imagino que tendría que resapar toda esa cantidad de líneas que tengo de código e ir cambiando lo que corresponda. Si es eso así, aunque la idea parece muy buena, en este momento no dispongo del tiempo que se necesitaría para hacer esto.

Hay alguien que se le ocurra algo sencillo que funcione con la forma de trabajar que comenté anteriormente y que me pueda ayudar.

Gracias anticipadas.
Responder Con Cita
  #32  
Antiguo 09-10-2014
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.461
Poder: 20
newtron Va camino a la fama
A ver....

O yo no me entero o tú no entiendes lo que te digo. Intentaré explicarme con un ejemplo. Esto que te pongo a continuación es usando un componente que se llama RolePDF y que se maneja exactamente igual que el objeto printer con lo que todo, o casi todo, tu código te serviría, solo que tendrías que iniciar el canvas con este componente.

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
PDF: TrolePDF;
begin
  PDF:=TrolePDF.Create(nil);
  PDF.BeginDoc ;
  PDF.FileName := 'PRUEBA.PDF';
  PDF.AutoLaunch := True;
  PDF.BeginDoc ;

  SetBKMode(PDF.Canvas.Handle, TRANSPARENT);
  PDF.Canvas.Brush.Color := 16777215;
  PDF.Canvas.Brush.Style := bsSolid;
  PDF.Canvas.Pen.Style := psSolid;
  PDF.Canvas.Pen.Width := 1;
  PDF.Canvas.Pen.Color := 0;

  PDF.Canvas.FillRect(Rect(144,114,211,179));
  PDF.Canvas.Rectangle(144,114,211,179);

  PDF.Canvas.Brush.Color := 9868950;
  PDF.Canvas.FillRect(Rect(227,114,294,179));
  PDF.Canvas.Rectangle(227,114,294,179);

  PDF.Canvas.Brush.Color := 16777215;
  PDF.Canvas.FillRect(Rect(310,114,377,179));
  PDF.Canvas.Rectangle(310,114,377,179);

  PDF.EndDoc ;
  PDF.Free;

end;

Este ejemplo lo que hace es crear tres cuadros rellenos y ejecutar el visor de pdf para abrirlo de forma automática.

No sé si esto resuelve tu duda.
Saludos
__________________
Be water my friend.
Responder Con Cita
  #33  
Antiguo 09-10-2014
nnebli nnebli is offline
Miembro
NULL
 
Registrado: may 2011
Posts: 14
Poder: 0
nnebli Va por buen camino
Gracias Newton por tu respuesta.

El problema, como ya comenté antes, es que mis conocimientos son mucho más reducidos que los vuestros, y entonces hay cosas que comentáis que no sé por donde cogerlas.

Con el ejemplo que has puesto ha quedado todo más claro.

Si además dices que posiblemente no haya que cambiar casi código, mejor todavía.

Intentaré probarlo lo antes posible y si veo que vale la pena, haré los cambios necesarios para trabajar como indicas tú a la hora de crear los PDF.

Gracias y un saludo.
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
impresion por USB VRO Impresión 4 10-10-2010 21:49:54
Impresion shoulder Varios 3 29-03-2010 18:37:11
Impresion.... La_Ministra Gráficos 5 21-10-2007 17:17:35
Problema de impresion Detener la Impresion Gangster Impresión 2 26-01-2007 19:22:12
Impresion en A5 igest2000 Impresión 1 03-02-2005 18:24:30


La franja horaria es GMT +2. Ahora son las 22:03:23.


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