 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
jfuentevilla Lt JG

Registrado: 22 Nov 2005Mensajes: 53
|
Publicado: Lun 25 Nov, 2019 5:52 pm Asunto: Como puedo pasar una imagen directamente a un Pdf |
|
|
| Como puedo pasar una imagen directamente a un Pdf |
|
| Volver arriba |
|
 |
jfuentevilla Lt JG

Registrado: 22 Nov 2005Mensajes: 53
|
Publicado: Mie 27 Nov, 2019 5:37 pm Asunto: Escribir en pdf |
|
|
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 |
|
 |
jfuentevilla Lt JG

Registrado: 22 Nov 2005Mensajes: 53
|
Publicado: Vie 29 Nov, 2019 5:18 pm Asunto: Insertar imagen al pdf |
|
|
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 |
|
 |
jfuentevilla Lt JG

Registrado: 22 Nov 2005Mensajes: 53
|
Publicado: Vie 06 Dic, 2019 7:47 pm Asunto: Firma Elect. solo visible en formato digital |
|
|
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 |
|
 |
jfuentevilla Lt JG

Registrado: 22 Nov 2005Mensajes: 53
|
Publicado: Vie 13 Dic, 2019 5:47 pm Asunto: |
|
|
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 |
|
 |
jfuentevilla Lt JG

Registrado: 22 Nov 2005Mensajes: 53
|
Publicado: Vie 13 Dic, 2019 8:24 pm Asunto: Firma Elect. solo visible en formato digital |
|
|
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 |
|
 |
|
|
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
|
© 2002–2026 Club Builder · Funciona con phpBB.
|