Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Como puedo pasar una imagen directamente a un Pdf

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Como puedo pasar una imagen directamente a un Pdf Responder citando

Como puedo pasar una imagen directamente a un Pdf
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Escribir en pdf Responder citando

Encontré esta paginas: https://litepdf.sourceforge.io/CppBuilderUnit.cpp.html

Hice algunas pruebas y funciona bien. Solo me falta poder incluir una imagen a la nueva imagen

void __fastcall TForm1::CreateBtnClick(TObject *Sender)
{
try {
// define a LitePDF instance
TLitePDF lpdf;

// Crear un documento pdf
//lpdf.CreateMemDocument();

//Abrir un documento pdf
lpdf.LoadFromFile("c:\\Scan.pdf","",true,true);

//Num hojas Documento
int pag=lpdf.GetPageCount();

// crear un canvas para dibujar
Graphics::TCanvas *canvas = new Graphics::TCanvas();
if (!canvas) {
throw Exception("Low memory!");
}

HDC hdc = NULL;

try
{
// agregar una página, con una escala de píxeles lo suficientemente grande
//hdc = lpdf.AddPage(lpdf.MMToUnit(210), lpdf.MMToUnit(297), 2100, 2970, LitePDFDrawFlag_None);


//Insertar una pagina al doc. al principio
hdc=lpdf.InsertPage(0, lpdf.MMToUnit(210), lpdf.MMToUnit(297), 2100, 2970, LitePDFDrawFlag_None);
canvas->Handle = hdc;// iniciar el canvas

// escribir texto
canvas->Font->Size = 25;
canvas->Font->Color = clNavy;
canvas->TextOut(100, 100, "xxxxxxxxxxxxxxxxxxxx");
canvas->TextOut(100, 140, "xxxxxxxxxxxxxxx");
canvas->TextOut(100, 180, "xxxxxxxxxxxxxxxxxxxxx");

canvas->Font->Size = 30;
canvas->Font->Color = clBlack;
canvas->TextOut(100, 320, "Nº Documento:000000000002152.-");

canvas->Font->Size = 20;
canvas->Font->Color = 0x00B4B4B4;
canvas->TextOut(900, 265, IntToStr(pag)+" pag.");

canvas->Pen->Width = 3;
canvas->Pen->Style = psSolid;
canvas->Pen->Color = 0x00B4B4B4;

// dibujar linea Horizontal
canvas->MoveTo(100, 265);
canvas->LineTo(1000, 265);

canvas->Font->Size = 35;
canvas->Font->Color = 0x00B4B4B4;
canvas->TextOut(100, 2700, "xxxxxxxx");
canvas->Font->Size = 20;
canvas->TextOut(100, 2750, "xxxxxxxxxxxxxxxxx");

//Terminar de dibujar
lpdf.FinishPage(hdc);

//Insertar texto pagina existente del documento
hdc=lpdf.UpdatePage(pag, 2000, 2970,LitePDFDrawFlag_None);
canvas->Handle = hdc;

canvas->Font->Name = "Arial";
canvas->Font->Size = 18;
canvas->Font->Color = clNavy;
canvas->TextOut(50, 90, "xxxxxxxxxxxxxxxxxxxxxx");
canvas->TextOut(50, 120, "xxxxxxxxxxxxxxxxx");
canvas->TextOut(50, 150, "xxxxxxxxxxxxxxxxxxxxxx");

canvas->Font->Color = clRed;
canvas->TextOut(50, 210, "Nº Documento:000000000002152.-");



/*
//dibujar linea vertical
canvas->Pen->Width = 8;
canvas->MoveTo(50, 100);
canvas->LineTo(50, 2780); */

} __finally {
delete canvas;
}

if (hdc) {
// finish drawing
lpdf.FinishPage(hdc);

// save the document
//lpdf.SaveToFile("cppbuilder-1.pdf");
lpdf.SaveToFile("c:\\Scan.pdf");

}

// close the document
lpdf.Close();
} catch (TLitePDFException &ex) {
throw Exception(ex.getMessage());
}
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Insertar imagen al pdf Responder citando

Graphics::TPicture *Imagen = new Graphics::TPicture();

Imagen->LoadFromFile("c:\\QR.bmp");
canvas->Draw(98,400,Imagen->Bitmap);
//No se si se puede dar un tamaño predeterminado a la imagen

Ademas, la dll tiene esta función para firma electrónica.
Si alguien me puede ayudar para implementar la firma en los pdf

void litePDF::TLitePDF::AddSignerPEM (const BYTE * pemData,
unsigned int pemDataLength,
const BYTE * pkeyData,
unsigned int pkeyDataLength,
const char * pkeyPassword
)

Parameters
pemData A certificate in the PEM format.
pemDataLength A length of the pemData.
pkeyData A private key for the certificate, in the PEM format.
pkeyDataLength A length of the pkeyData.
pkeyPassword A password to use to open the private key; can be NULL.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Firma Elect. solo visible en formato digital Responder citando

Al generar el PDF, este tiene creado el campo de firma. Pincho sobre él y genero la firma electrónica avanzada, la cual es válida. El documento queda firmado, pero al imprimirlo, este no se imprime con la firma electrónica(solo es visible en el documento digital).

//Agregar campo de firma s/firma
hDC=litePDF.UpdatePage(0, 2000, 2970,LitePDFAnnotationFlag_Print );
litePDF.CreateSignature("Camilo Ossandon Espinoza",0,60, 150, 90, 40, LitePDFAnnotationFlag_Print);
//---crear apariencia de firma
litePDF.FinishPage(hDC);
litePDF.SetSignatureAppearance(0,LitePDFAppearance_Normal, createResource(litePDF, RGB(55, 52, 53), "Camilo Ossandon Espinoza"), 0,0);
litePDF.SetSignatureAppearance(0,LitePDFAppearance_Rollover, createResource(litePDF, RGB(237, 50, 55), "Camilo Ossandon Espinoza"), 0,0);
litePDF.SetSignatureAppearance(0,LitePDFAppearance_Down, createResource(litePDF, RGB(62, 64, 149), "Camilo Ossandon Espinoza"), 0,0);
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Alguna ayuda para firma elect. de documentos.

También si existe alguna forma de pago, la cual pueda incluir a mi sistema
para firmar documentos.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Firma Elect. solo visible en formato digital Responder citando

El autor de litePDF, sobre no impresión de firma electrónica en documento
dice:

I fixed this in [r18]. With that, you can pass LitePDFAnnotationFlag_Print as annotationFlags argument of the CreateSignature() function and the field will be also printed.

[r18] https://sourceforge.net/p/litepdf/code/18/

pero donde realiza el cambio???
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.