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

Registrado: 06 Jul 2005Mensajes: 31
|
Publicado: Lun 24 Dic, 2007 11:07 am Asunto: PDFCom |
|
|
He encontrado una dll capaz de generar pdfs de forma muy sencilla. La verdad que la he estado probando en Visual Basic y me parece muy pontente.
El problema viene cuando intento utilizarla en C++ Builder. Lo primero que hago es un "Import type library"->Create Unit, con lo que me genera un PdfComLib_TLB.h y PdfComLib_TLB.cpp con lo que se supone que es la clase y todos sus métodos.
Pues bién....no soy capaz de hacer funcionar un sólo método, no es que no funcionen es que no sé cómo llamarlos.
Éste es link a la libería PDFCom http://www.linares.net/wxpdfcom/index_es.html
Aprovechando para desearos Felices Fiestas. Un saludo. Roberto Blasco |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Lun 24 Dic, 2007 5:37 pm Asunto: |
|
|
Convirtiendo el ejemplo más básico que venía en VB (crea un archivo pdf con el texto 'Hello World!':
| Código: | PdfDocPtr pdf;
pdf.CreateInstance(CLSID_PdfDoc);
pdf->AddPage(1);
long res = 0;
pdf->SetFont(WideString("Arial"), WideString(""), 10, &res);
long fill = 0;
pdf->Cell(20, 10, WideString("Hello World!"), 0, 0, 1, &fill, WideString(""));
pdf->SaveAsFile(WideString("helloworld.pdf")); |
La librería original está escrita en C++:
http://wxcode.sourceforge.net/components/wxpdfdoc/
(Aunque no la uses ahí puedes conseguir más documentación) |
|
| Volver arriba |
|
 |
bobbylanuit Ens

Registrado: 06 Jul 2005Mensajes: 31
|
Publicado: Mie 26 Dic, 2007 4:41 pm Asunto: |
|
|
Muchísimas gracias de nuevo.
Feliz Navidad. Un saludo. Roberto. |
|
| Volver arriba |
|
 |
jotny Master


Registrado: 17 Feb 2004Mensajes: 226Ubicación: santiago
|
Publicado: Mar 15 Ene, 2008 6:51 am Asunto: No entiendo como usar |
|
|
Hola amigos, a pesar de haber visto como utilizar funciones de una dll externa no comprendo cómo instanciar la clase desde esa dll.
El ejemplo traducido por leo es comprensible, pero no comprendo cómo iniciar bien el codigo de forma de instanciar la clase pdfcom y utilizar todo su potencial.
de antemano gracias. |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Mar 15 Ene, 2008 3:46 pm Asunto: |
|
|
- Tienes que ir a la siguiente web y descargar el archivo necesario. De todo el archivo comprimido solo necesitas la dll: "pdfcom.dll":
http://www.linares.net/wxpdfcom
- Como la dll lo que contiene es un objeto COM tendrás que registrarla usando la siguiente línea desde la consola:
regsvr32 pdfcom.dll
- Luego tienes que ir al menú: Project -> Import Type Library...
Se abrirá una ventana, en la lista que muestra selecciona:
"PdfCom 1.1 Type Library (Version 1.0)"
y a continuación pulsa el botón: "Create Unit"
- Añade la siguiente cabecera en el modulo donde vayas a hacer uso del código de arriba:
#include "PdfComLib_TLB.h"
Ultima edición por _Leo el Mar 12 Ago, 2008 12:37 am, editado 1 vez |
|
| Volver arriba |
|
 |
Onice Cdt


Registrado: 15 Ene 2008Mensajes: 12
|
Publicado: Mar 15 Ene, 2008 3:51 pm Asunto: |
|
|
Una pregunta referente a este tema: Con esta biblioteca podría guardar quickreports como archivos pdf? Pos algun extraño motivo la version que tengo de quickreport (la 4.03) no tiene el método StartConcat para la clase TQRPDFDocumentFilter (lo raro es que sí que tiene el EndConcat), y soy incapaz de encontrar la manera de hacerlo sin ese método. _________________ All your base are belong to me |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Mar 15 Ene, 2008 4:17 pm Asunto: |
|
|
| Onice escribió: | | Con esta biblioteca podría guardar quickreports como archivos pdf? |
No, esta librería es independiente del QuickReport.
| Onice escribió: | | Pos algun extraño motivo la version que tengo de quickreport (la 4.03) no tiene el método StartConcat para la clase TQRPDFDocumentFilter |
Hay dos versiones de QuickReport, la Standard, que es la que hasta ahora venía con el BCB y la versión Professional, que es de pago. Si la que tienes es la que venía de fábrica con tu BCB, que yo sepa no trae filtros para PDF. |
|
| Volver arriba |
|
 |
juanma Cmdr

Registrado: 17 Nov 2005Mensajes: 127Ubicación: Almeria - España
|
Publicado: Mar 15 Ene, 2008 7:04 pm Asunto: |
|
|
Hola,
Solo decir que he seguido las instrucciones de Leo para utilizar la dll y funciona en CB2007, solo que para importarla, el menú es:
Component, Import Component y en la ventana ya sale por defecto la opción de Import a type Library.
Gracias Leo |
|
| Volver arriba |
|
 |
Onice Cdt


Registrado: 15 Ene 2008Mensajes: 12
|
Publicado: Mie 16 Ene, 2008 9:48 am Asunto: |
|
|
Gracias por la información, así me ahorro comerme la cabeza intentando buscar una manera de hacerlo... ^^U
| _Leo escribió: | | Hay dos versiones de QuickReport, la Standard, que es la que hasta ahora venía con el BCB y la versión Professional, que es de pago. Si la que tienes es la que venía de fábrica con tu BCB, que yo sepa no trae filtros para PDF. |
Creo que tengo la profesional, porque sí que trae filtros para pdf. El problema es que a la clase le falta uno de los métodos que necesito u_u Lo cual es extrañisimo por cierto, igual lo tengo mal instalado o_O _________________ All your base are belong to me |
|
| Volver arriba |
|
 |
JAVH Lt JG


Registrado: 23 Oct 2003Mensajes: 61Ubicación: Tampico Tamaulipas, México
|
Publicado: Lun 21 Ene, 2008 3:42 am Asunto: |
|
|
| Hola, ví el link que puso Leo y al parecer usa las librerías wxWidgets, es necesario tener instalado también todo el framework en el C++ Builder para que trabaje??? |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Lun 21 Ene, 2008 4:01 am Asunto: |
|
|
| JAVH escribió: | | Hola, ví el link que puso Leo y al parecer usa las librerías wxWidgets, es necesario tener instalado también todo el framework en el C++ Builder para que trabaje??? |
No, solo es necesaria la DLL que se nombra más arriba. |
|
| Volver arriba |
|
 |
JAVH Lt JG


Registrado: 23 Oct 2003Mensajes: 61Ubicación: Tampico Tamaulipas, México
|
Publicado: Lun 21 Ene, 2008 8:28 pm Asunto: |
|
|
| Ok, gracias por el dato. |
|
| Volver arriba |
|
 |
bosoft Master

Registrado: 23 Oct 2005Mensajes: 342
|
Publicado: Vie 01 Feb, 2008 3:12 pm Asunto: |
|
|
Hola:
Necesito una manita con el dll.
En mis aplicaciones yo no imprimo en la impresora, sino que lo hago en un TBitmap a 300x300 (no he conseguido hacerlo a 600x600) y después lo cargo en la impresora.
| Código: | if(PANTA==true){ // pantalla
frapanta =new Tfrapanta(this);
frapanta->Image1->Picture->Assign(proba); // 3507x2486
}
else { // impresora
print->Copies=2;
if(print->Execute()==false) return; // buscar impresora
grafic = Rect(0,0,Printer()->PageWidth,Printer()->PageHeight);
Printer()->BeginDoc();
Printer()->Canvas->StretchDraw(grafic,proba);
Printer()->EndDoc();
}
PANTA=false; // por defecto a impresora
|
frapanta es un Form ocupado por un TImage que es el que hace de previsualizador. Cuando lo lanzo a la impresora uso el TBitmap y por StrechDraw lo pongo en la Printer().
Ahora viene mi pregunta. ¿Como lo hago a pdf con la dll?
si alguien tiene alguna solución o sabe usar bien esta dll , por favor que me lance un cable.
Saludos, Bosoft. |
|
| Volver arriba |
|
 |
tronxx Lt JG


Registrado: 30 May 2003Mensajes: 56Ubicación: Merida, Yucatan, Mexico
|
Publicado: Lun 11 Ago, 2008 3:32 pm Asunto: Distribución de Librerías |
|
|
Hola, tal como lo expone Leo, si se agrega al momento de desarrollo todo bien, pero que hay que hacer si ese programa se distribuye ? el usuario final tiene que hace todo el rollo ? o solo hay que distribuirle el dll ?
Gracias _________________ La caja decía, requiere Win95 o superior así que instalé Linux. |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Lun 11 Ago, 2008 11:51 pm Asunto: |
|
|
| tronxx escribió: | | pero que hay que hacer si ese programa se distribuye ? el usuario final tiene que hace todo el rollo ? o solo hay que distribuirle el dll ? |
Solo hay que distribuir la DLL y registrarla, ya sea manualmente usando "regsvr32" o bien usando la opción del instalador necesaria para ello (todos los instaladores suelen tener una opción para esto). |
|
| Volver arriba |
|
 |
|