代码之家  ›  专栏  ›  技术社区  ›  Circas Creed

iTextSharp填充Pdf表单图像字段

  •  1
  • Circas Creed  · 技术社区  · 7 年前

    我用Acrobat DC 2015创建了一个pdf表单。上面有一个图像字段。我成功地填充了文本字段。但我不知道如何填充图像场。你能帮我吗?

        private static void FillPdfForm()
        {
            // Original File
            const string pdfTemplate = @"pdf\form.pdf";
            // New file which will be created after fillin PDF
            var newFile = @"pdf\FilledCV.PDF";
            var pdfReader = new PdfReader(pdfTemplate);
            var pdfStamper = new PdfStamper(pdfReader, new FileStream(
                newFile, FileMode.Create));
            var pdfFormFields = pdfStamper.AcroFields;
    
            // So one of our fields in PDF is FullName I am filling it with my full name
            pdfFormFields.SetFieldProperty("01", "textsize", 8f, null);
            pdfFormFields.SetField("01", "Example");
    
            // flatten the form to remove editting options, set it to false
            // to leave the form open to subsequent manual edits
    
            foreach (var de in pdfReader.AcroFields.Fields)
            {
                pdfFormFields.SetFieldProperty(de.Key.ToString(),
                                           "setfflags",
                                            PdfFormField.FF_READ_ONLY,
                                            null);
            }
    
            pdfStamper.FormFlattening = false;
            pdfStamper.FormFlattening = false;
            pdfStamper.Close();
        }
    
    1 回复  |  直到 7 年前
        1
  •  5
  •   Bruno Lowagie    7 年前

    我把它修好了。

        private static void FillPdfForm()
        {
            const string pdfTemplate = @"pdf\form.pdf";
            var newFile = @"pdf\FilledCV.PDF";
            var pdfReader = new PdfReader(pdfTemplate);
            var pdfStamper = new PdfStamper(pdfReader, new FileStream(newFile, FileMode.Create));
            var pdfFormFields = pdfStamper.AcroFields;
    
            string TestImage = @"pdf\test.jpg";
            PushbuttonField ad = pdfFormFields.GetNewPushbuttonFromField("08");
            ad.Layout = PushbuttonField.LAYOUT_ICON_ONLY;
            ad.ProportionalIcon = true;
            ad.Image = Image.GetInstance(TestImage);
            pdfFormFields.ReplacePushbuttonField("08", ad.Field);
    
    
            pdfFormFields.SetFieldProperty("01", "textsize", 8f, null);
            pdfFormFields.SetField("01", "Example");
            foreach (var de in pdfReader.AcroFields.Fields)
            {
                pdfFormFields.SetFieldProperty(de.Key,"setfflags",PdfFormField.FF_READ_ONLY,null);
            }
            pdfStamper.FormFlattening = false;
            pdfStamper.Close();
        }