| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
titipower Ens

Registrado: 27 Nov 2002Mensajes: 39Ubicación: España
|
Publicado: Mie 24 Mar, 2004 1:11 pm Asunto: EXPORTAR UN QUICKREPORT A PDF??? |
|
|
Quiero exportar todo los quickReport q genero a PDF para tener copias de ellos guardadas.
He estado buscando en el foro y he conseguido guardar los quickReport como HTML y RTF. Pero no me sirven pq no me los guarda exactamente igual. En HTML sale patetico y en RTF sale parecido pero me quita las tablas, ... vamos q no me sirve tampoco. Para poder hacer esto me pille el archivo "QR362ProfCB5.exe" q me lo pille del foro y me lo instalé.
Ahora quiero guardar en PDF pero con el paquete este q me instalé no va pq no me reconoce ("TQRPDFDocumentFilter" ni #include "qrpdffilt.hpp" ...)
Quiero pasar a PDF los quickReport y no me vale ni usar el preview ni la impresora virtual. Lo quiero de la misma forma q en el foro se exporta a RTF:
//Exportación a RTF
TQRRTFExportFilter* filtro = new TQRRTFExportFilter("C:\\informe.rtf");
formQRAnexoEvaluacionNormales->qrAnexoEvaluacionNormales->ExportToFilter(filtro);
delete filtro;
A ver si alguién del foro ha guardado los quickReport como PDF y me dice q tengo q instalar para pasar a PDF un quickReport y como sería el codigo más o menos si no es mucho pedir.
Un saludo.  |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Mie 24 Mar, 2004 1:45 pm Asunto: |
|
|
En la ayuda de Builder 5 viene código para exportar a PDF. Te lo pego aquí por si no lot uevieras. Te aviso que no lo he probado.
| Cita: | TQRPDFDocumentFilter
Unit : QRPDFFilt.pas
The PDF filter accepts output from the standard QRLabel, QRDBText as well as QRGrImage and QRGrDBImage and QRPDFShape. For compatibility the QRHRule is also output.
The filter also has a concatenating mode that allows many reports to be sent to the same document.
Properties
TextOnTop : Boolean If true then text will be rendered after grahics in the PDF. Default is True.
Concatenating : Boolean If true then many reports may be streamed to one document. Default is false.
LeftMargin Integer This may be a positive or negative number ( in pixels) and adjusts the left margin position relative to the default which is the Quickreport left margin.
TopMargin Integer This may be a positive or negative number ( in pixels) and adjusts the top margin position relative to the default which is the Quickreport top margin.
Methods
Create( filename : string )
AddFontMap( fmap : string );
This version of the PDF filter uses the fonts incorporated in the Adobe Acrobat reader, which are ?
Courier,
Courier-Bold,
Courier-BoldOblique,
Courier-Oblique,
Helvetica,
Helvetica-Bold,
Helvetica-BoldOblique,
Helvetica-Oblique,
Times-Roman,
Times-Bold,
Times-Italic,
Times-BoldItalic,
Symbol,
ZapfDingbats
A font map is a fontname followed by a colon and the name of the standard font to use. So the string
'Bookman-Old-Style:Times' will make the report use Times whenever Bookman Old Style is encountered.
The fontmap is not case sensitive. The default font mappings are ?
?Arial:Helvetica';
'Times-new-roman:Times';
'Courier-new:Courier';
The qualifiers Bold and Italic are detected and added.
If a font is not mapped it will default to Courier.
The PDF filter class also has the standard methods Destroy and Free.
Example ?
The filter is invoked in the usual way, viz ?
| Código: | procedure DoPDFExport;
var
aPDFFilt : TQRPDFDocumentFilter;
begin
table1.open;
aPDFFilt := TQRPDFDocumentFilter.Create('Fish Report.pdf');
// set filter properties
pdffilt.TextOnTop := true;
pdffilt.LeftMargin := -10;
aPDFFilt.AddFontMap( 'Bookman-Old-Style:Times' );
Form2.QuickRep1.ExportToFilter( aPDFFilt );
table1.close;
aPDFFilt.free;
end;
To use the PDF filter in concatenating mode this is the procedure -
aPDFFilt := TQRPDFDocumentFilter.Create( 'PDFExport.pdf' );
// set filter properties
aPDFFilt .AddFontMap( 'Bookman-Old-Style:Times' );
aPDFFilt .TextOnTop := true;
// switch on concat mode
aPDFFilt.Concatenating := true;
// export reports
repform.QuickRep1.ExportToFilter( aPDFFilt );
form1.QuickRep1.ExportToFilter( aPDFFilt );
// add as many reports as required ... then
aPDFFilt.EndConcat;
aPDFFilt.Free; |
C++ example code -
| Código: | //----------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "qrpdffilt.hpp"
//----------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//----------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//----------------------------------------------------------------
void __fastcall TForm1::StartBClick(TObject *Sender)
{
TQRPDFDocumentFilter *aPDFFilt;
aPDFFilt = new TQRPDFDocumentFilter("test.pdf");
aPDFFilt->AddFontMap("Arial:Helvetica");
// must initialise filter
aPDFFilt->StartConcat();
// export reports
Form1->QuickRep1->ExportToFilter(aPDFFilt);
// add as many reports as needed
Form2->QuickRep1->ExportToFilter(aPDFFilt);
// must end process to get document
aPDFFilt->EndConcat();
delete aPDFFilt;
}
//---------------------------------------------------------------- |
|
_________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
Invitado
|
Publicado: Mie 24 Mar, 2004 2:05 pm Asunto: |
|
|
Pero me da error de compilación:
Aqui=>#include "qrpdffilt.hpp"
Aqui=>TQRPDFDocumentFilter ...
Ese codigo ya lo tengo pero no me compila.
Me explicas pq.
Un saludo y gracias.  |
|
| Volver arriba |
|
 |
Invitado
|
Publicado: Mie 24 Mar, 2004 3:31 pm Asunto: |
|
|
Ademas en la ayuda yo no tengo =>TQRPDFDocumentFilter
Será por eso q no me compila.
Q tengo q instalar??  |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Jue 25 Mar, 2004 8:21 am Asunto: |
|
|
El fichero qrpdffilt.hpp yo lo tengo en C:\Archivos de programa\Borland\CBuilder5\quickrpt. La ayuda la obtengo si pongo en PDF Filter en Temas de ayuda.
El código ya te decía antes que no lo he probado, con lo cual no sé si funiciona o no. De todas formas, me llegó el otro día de Qusoft (propietarios de QuickReport) que han lanzado QuickReport 4 que ya incluye los filtros para PDF. Mira en http://www.qusoft.com _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
titipower Ens

Registrado: 27 Nov 2002Mensajes: 39Ubicación: España
|
Publicado: Jue 25 Mar, 2004 11:01 am Asunto: |
|
|
Ya me funciona. He añadido paquetes y parece q va.
Dejo aqui el codigo para que todos podaís verlo:
#include <IniFiles.hpp>
//Exportación a PDF
String ruta="C:\\Informe2.PDF";
TQRPDFDocumentFilter* filtro = new TQRPDFDocumentFilter(ruta);
formQRAnexoEvaluacionNormales->qrAnexoEvaluacionNormales->ExportToFilter(filtro);
delete filtro;
Funciona correctamente.
Un saludo.  |
|
| Volver arriba |
|
 |
Enrique Master


Registrado: 13 Ago 2002Mensajes: 261Ubicación: La Vila Joiosa (Alacant)
|
Publicado: Jue 25 Mar, 2004 11:10 am Asunto: |
|
|
Hola, titipower, un posible error está en la búsqueda de tu #include:
#include "qrpdffilt.hpp"
Al poner el nombre de la librería entre comillas le dices al compilador que la busque en el directorio en que está tu proyecto. Si lo escribes entre <>:
#include <qrpdffilt.hpp>
lo buscará también en otros directorios, como el que te indica Ángel. |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Jue 01 Abr, 2004 12:44 pm Asunto: |
|
|
Haciendo lo que dices en el include me dce que no puede abrir el fichero include (Error E2209 del compilador), y si llevo el fichero a donde están los otros includes (..\CBuilder5\Include\Vcl) los errores me los da en los includes del propio fichero hpp _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
Enrique Master


Registrado: 13 Ago 2002Mensajes: 261Ubicación: La Vila Joiosa (Alacant)
|
Publicado: Jue 01 Abr, 2004 1:55 pm Asunto: |
|
|
Hola, el error es por no encontrar el fichero, como parece que has averiguado.
Lo de mover ficheros que quieres que se incluyan a otros directorios no es la mejor técnica (creo). Es mejor que en Projects/Options... escribas la ruta en Directories/Conditionals->Directories->Include path:.
En tu caso, por lo que he visto, deberías añadir la ruta $(BCB)\quickrpt.
Respecto a los errores que te producen los propios #include del hpp no puedo contestarte pues no tengo en mi instalación el susodicho hpp, no sé qué tiene por dentro, pues, sólo se me ocurre que tenga alguno del tipo #include "loquesea.hpp" y el hecho de tener el nombre entre comillas hace que loquesea.hpp se busque en el mismo directorio en que está qrpdffilt.hpp(pero tú lo has cambiado de directorio a él solito ¿me explico?). Creo que la primera respuesta que te doy es la solución adecuada, pero no puedo comprobarlo por no tener el hpp (¿tienes alguna actualización que yo no tenga, quizás?).
Suerte. |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Jue 01 Abr, 2004 3:55 pm Asunto: |
|
|
Chapeau! Efectivamente, ese es el camino: incluir la instrucción $(BCB)\quickrpt.
Sobre la actualización, tengo la que ya he ofrecido en otras ocasiones en este foro: QR362ProfCB5.exe. Mándame una dirección de correo y te paso el parche si no lo tienes. _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Ultima edición por Angel el Jue 22 Feb, 2007 8:11 am, editado 1 vez |
|
| Volver arriba |
|
 |
ikis Master


Registrado: 28 Dic 2002Mensajes: 703Ubicación: Madrid, España
|
Publicado: Jue 01 Abr, 2004 4:03 pm Asunto: |
|
|
Angel, pasame la actualización a mi correo si puedes.
No leí todo el thread, pero una solución para imprimir en pdf es instalar el Adobe Acrobat o cualquier otro conversor que imprima en pdf. Es decir, tu mandas a imprimir y se genera un pdf.
atte _________________ Adrián
http://adrian.org.ar |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Vie 02 Abr, 2004 7:43 am Asunto: |
|
|
Vamos a ver: Ahora me da un lista de errores en el enlazado
| Cita: | 1. Unresolved external '__fastcall Qrpdfflit::TQRPDFDocumentFilter::~TQRPDFDocumentFilter()' referenced from D:\Proyectos\Listados.obj
2. Unresolved external 'Qrpdfflit::TQRPDFDocumentFilter::' referenced from D:\Proyectos\Listados.obj
3. Unresolved external '__fastcall Qrpdfflit::TQRPDFDocumentFilter::TQRPDFDocumentFilter(System::AnsiString)' referenced from D:\Proyectos\Listados.obj
4. Unresolved external '__fastcall Qrpdfflit::TQRPDFDocumentFilter::StartConcat()' referenced from D:\Proyectos\Listados.obj
5. Unresolved external '__fastcall Qrpdfflit::TQRPDFDocumentFilter::EndConcat()' referenced from D:\Proyectos\Listados.obj |
Además, al compilar me da un aviso provocado por una llamada desde qrpdffilt.hpp:
| Cita: | | Math.hpp(76): W8058 Cannot create pre-compiled header: initialized data in header |
Se ruega ayuda. Please ! _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
rockfavc Cmdr


Registrado: 23 Ago 2002Mensajes: 138Ubicación: Colombia (Medellín)
|
Publicado: Mie 21 Abr, 2004 3:15 pm Asunto: |
|
|
Hola colegas!
Este tema me es de gran interes, pero no se como hacerlo en QR 3.0, alguien sabe si es posible?
Saben que QR se distribuye con BCB 6 Enterprise?
Muchas gracias |
|
| Volver arriba |
|
 |
Rigoberto Mtz Invitado
|
|
| Volver arriba |
|
 |
ikis Master


Registrado: 28 Dic 2002Mensajes: 703Ubicación: Madrid, España
|
Publicado: Vie 14 May, 2004 4:24 pm Asunto: |
|
|
alguien tiene el
QR362ProfCB6.EXE ?? _________________ Adrián
http://adrian.org.ar |
|
| Volver arriba |
|
 |
|