es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

iText7 – Cambiar la apariencia de la firma de PDF después de firmarlo.

Me gustaría actualizar la apariencia de la firma en un PDF después de firmar. Se ha creado un prototipo usando iTextshap y siguiendo https://stackoverflow.com/questions/55964130/is-it-possible-to-change-the-appearance-of-the-signature-within-the-document-aft. Funciona muy bien. Sin embargo, he tenido problemas después de cambiar a iText7. Muchas de las clases no están disponibles en iText7. ¿Podría alguien asesorarme sobre cómo hacerlo en iText7?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Actualización de la apariencia de la firma PDF después de su firma en iText7

    Si usted es un experto en tecnología de la información especializado en c#, pdf, itext, firma, itext7 y ha tenido problemas al actualizar la apariencia de una firma PDF después de su firma mientras trabaja con iText7, necesita ayuda para encontrar una solución. Ya se ha creado un prototipo utilizando iTextshap.

    Puede seguir los siguientes pasos para actualizar la apariencia de una firma PDF después de su firma utilizando iText7:

    1. Obtenga la última versión de las bibliotecas de iText7 y agréguelas a su proyecto.
    2. Utilice la clase PdfDocument para abrir un documento PDF existente y leer su contenido.
    3. Acceda al campo de firma utilizando el método GetField() de la clase PdfAcroForm.
    4. Lea la instancia PdfSignature llamando al método GetSignature() de la clase PdfFormField.
    5. Obtenga la anotación widget de la apariencia de la firma desde la instancia PdfSignature y elimínela.
    6. Cambie la apariencia del objeto Appearance de la firma.
    7. Llame al método SetAppearance() de PdfSignatureAppearance para actualizar la apariencia de la firma en la anotación widget.
    8. Llame al método Save() de PdfDocument para guardar los cambios realizados en el documento PDF.

    Ejemplo de fragmento de código:

    using iText.Kernel.Pdf;
    using iText.Forms;
    using iText.Forms.Fields;
    using iText.Signatures;
    using iText.Kernel.Geom;
    using iText.Kernel.Colors;
    
    // ...
    
    PdfDocument pdfDoc = new PdfDocument(new PdfReader("source.pdf"), new PdfWriter("result.pdf"));
    PdfAcroForm acroForm = PdfAcroForm.GetAcroForm(pdfDoc, true);
    
    PdfFormField signatureField = acroForm.GetField("signature");
    PdfSignature signature = signatureField.GetSignature();
    PdfAnnotationWidget widget = signature.GetAppearance().GetWidget();
    pdfDoc.GetPage(widget.GetPage()).RemoveAnnotation(widget);
    
    Rectangle rect = new Rectangle(100, 100, 200, 50);
    PdfSignatureAppearance appearance = signature.GetAppearance();
    appearance.SetPageRect(rect).SetLayer2Text("Firmado por John Doe");
    
    PdfCanvas canvas = new PdfCanvas(pdfDoc.GetPage(widget.GetPage()));
    AppearanceBorder border = new AppearanceBorder(2, 2, 2);
    border.SetColor(ColorConstants.BLUE);
    canvas.Rectangle(rect)
          .SetLineWidth(border.GetWidth())
          .SetColor(border.GetColor())
          .Stroke();
    
    appearance.SetAppearance(AppearanceRadii.DefaultBorder(border), rect);
    pdfDoc.Save();
    pdfDoc.Close();
    

    Este fragmento de código lo ayudará a actualizar la apariencia de su firma PDF después de su firma mientras trabaja con iText7.

Comments are closed.