0

LiveCycle Designer を使用して作成した PDF テンプレートがあります。その中に、作成した 3 つの画像フィールド、ImageField1、ImageField2、ImageField3 があります。画像はURLに配置されています。「 http://images.com/img/IMAGENAME.jpg 」と呼びましょう。ユーザーはPDFを生成する前に画像を選択します。この場合、画像名を文字列配列に保存します.

これらの画像をプログラムで画像フィールドに追加することはできますか? これまでに試した方法では、破損した pdf がまったく開かないだけでした。

public string Foo(int id)
    {
        try
        {

            var file = string.Empty;
            var property = ((IRepositoryBase)PropertyRepository).GetById<Property>(id);
            var purchase = ((IRepositoryBase)PropertyRepository).GetByPropertyId<PropertyPurchase>(id);
            var inspection = ((IRepositoryBase)PropertyRepository).GetByPropertyId<PropertyInspection>(id);
            file = HttpContext.Current.Server.MapPath("\\Assets\\documents\\originals\\Brochure.pdf");
            var tmp = HttpContext.Current.Server.MapPath("\\Assets\\documents\\temps\\");



            tmp += string.Format("{0}-Brochure.pdf", property.Id);

            var pdfReader = new PdfReader(file);
            var pdfStamper = new PdfStamper(pdfReader, new FileStream(tmp, FileMode.Create));
            var pdfFormFields = pdfStamper.AcroFields;
            var pht = property.BrochurePhoto;
            string[] photos = pht.Split(' ');
            PdfContentByte cB = new PdfContentByte(pdfStamper.Writer);



            if (photos[0] != null)
            {
                iTextSharp.text.Image photoToPdf1 = iTextSharp.text.Image.GetInstance(new Uri("http://images.com/img/" + photos[0].ToString() + ".jpg"));
                cB.AddImage(photoToPdf1);
            }
            if (photos[1] != null)
            {
                iTextSharp.text.Image photoToPdf2 = iTextSharp.text.Image.GetInstance(new Uri("http://images.com/img/" + photos[1].ToString() + ".jpg"));
                cB.AddImage(photoToPdf2);
            }
            if (photos[2] != null)
            {
                iTextSharp.text.Image photoToPdf3 = iTextSharp.text.Image.GetInstance(new Uri("http://images.com/img/" + photos[2].ToString() + ".jpg"));
                cB.AddImage(photoToPdf3);
            }

            pdfStamper.FormFlattening = false;
            pdfStamper.Close();
            return string.Format("{0}-Brochure.pdf", property.Id);

        }
        catch (Exception ex)
        {
            Log.Error(ex);
            return string.Empty;


        }

    }
4

0 に答える 0