2016-06-01 10 views
-1

Frage überarbeitet und geklärt (Danke an Bruno für mich in die richtige Richtung) -Hinzufügen eines Bildes einer vordefinierten Position mit einem Platzhalter in ein vorhandenes PDF-Formular.

Dieser Beitrag wurde ursprünglich unter großen Schlafentzug gemacht und nach dem Lesen sehe ich, wie es könnte verwirrend sein. Ich möchte sicherstellen, dass andere diese Lösung in der Zukunft haben und nicht viel Zeit damit verbringen müssen, es herauszufinden.

Hier ist meine Frage und es gibt eine Antwort unten, die es löst. Ich habe ein PDF-Formular und ich muss ein Bild an einem bestimmten Ort hinzufügen, wo ich einen Platzhalter platziert habe. Wie kann ich das machen?

+0

Michael, du machst etwas, das unglaublich falsch ist und das gegen den gesunden Menschenverstand geht (es kann sogar gegen PAdES-6 verstoßen). Sie missbrauchen * ein digitales Signaturfeld, um ein Rasterbild einer Signatur hinzuzufügen, ohne eine digitale Signatur anzuwenden. Wenn jemand Ihre Frage in seinem aktuellen Zustand beantwortet, könnte diese Person ein Komplize bei Ihrem Versuch sein, Ihren Kunden zu täuschen. Beantworten Sie also bitte Ihre Frage: Warum möchten Sie ein digitales Unterschriftsfeld durch ein Bild ersetzen, das keine digitale Unterschrift ist? –

+0

Ich habe sicherlich nicht versucht, etwas falsch zu machen. Ich bin etwas neu und bin so dankbar, dass Sie mich in die richtige Richtung lenken würden. Ich glaube, ich habe diese Lösung sehr missverstanden. http://stackoverflow.com/questions/20660839/add-signature-image-on-pdf-without-digitally-signing-it-using-itextsharp. Was ich zu erreichen versuche, ist eine Unterschrift, die von meinem erfasst wird Anwendung entweder durch Topaz-Signatur-Pad oder (mobile) JSignature-Felder. Sobald ich digital signiert habe, versuche ich, es in Papierform zu speichern. Wenn ich Ihr E-Signatur-Buch lese, wird es die Legalität davon abdecken? –

+0

@MichaelHoward Die PDF-AcroForm-Signaturfelder wurden ursprünglich für digitale Signaturen basierend auf X.509-Zertifikaten, PKIs usw. entwickelt, nicht für Bilder. Aus der Sicht des rechtlichen Rahmens, der mittlerweile für diese PKI-basierten digitalen Signaturen existiert, könnte es daher Probleme mit Ihrem Ansatz geben. Meiner Meinung nach gibt es jedoch kein Problem, solange sich alle bewusst sind, dass die PDFs mit den Signaturbildern, mit denen Sie die Signaturfelder ersetzen, keinen legitimeren Wert haben als ein Bild eines Dokuments, in das jemand mithilfe von Photoshop ein Signaturbild eingefügt hat. – mkl

Antwort

0

Nur für zukünftige Personen, die nach der Antwort suchen, wie Sie ein Bild an einem vordefinierten Speicherort in ein bereits vorhandenes .pdf-Formular einfügen können, hier ist die Antwort.

  //This codes works for those who have a pre-created pdf form with a button in the location and size you want your image. 
        //I reccomend acrobat pro, thought it has a monthly cost. There are additional free PDF editors 
        //instantiate a new PdfStamper that will create a new file from my existing form. The Reader reads in your template and the stamper makes a copy 
    //FileToPath and FileFromPath are strings i created above that hold the path     
    using (PdfStamper stamper = new PdfStamper(new PdfReader(fileFromPath), File.Create(FileToPath"))) 
        { 
         //get my buttons positions current location and height btn1 is the name of my button that exists in the pdf already 
         AcroFields.FieldPosition fieldPosition = stamper.AcroFields.GetFieldPositions("btn1")[0]; 
         //create a new button utilze the field position to set it's location. FYI this is a rectangle. I reccomend you read about those 
         //it will save you tons of time to understand them. 
         PushbuttonField imageField = new 
//btn1Replaced is what I named the new button that will overwrite the old place holder button 
PushbuttonField(stamper.Writer, fieldPosition.position, "btn1Replaced"); 
         //Here I set they layout from my old button to my new one 
         imageField.Layout = PushbuttonField.LAYOUT_ICON_ONLY; 
         //grab the image you want in your pdf imgPath is a string I wrone above to grab the image 
         iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance("imgPath"); 
         //set your buttons image property to be your image you just grabbed 
         imageField.Image = img; 
         //always scale to the size of the button 
         imageField.ScaleIcon = PushbuttonField.SCALE_ICON_ALWAYS; 
         imageField.ProportionalIcon = false; 
         //make sure your button is read only and then it will not act like a button, it will act like an image. 
         imageField.Options = BaseField.READ_ONLY; 
         //Get rid of the old button 
         stamper.AcroFields.RemoveField("btn1"); 
         //add my button and make sure it is on the correct page 
         stamper.AddAnnotation(imageField.Field, fieldPosition.page); 

         stamper.Close(); 
Verwandte Themen