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
  #1  
Antiguo 09-10-2014
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.481
Poder: 21
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
  #2  
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
  #3  
Antiguo 09-10-2014
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.481
Poder: 21
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
  #4  
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 18:36:13.


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