使用iTextSharp

时间:2017-12-01 19:36:38

标签: c# itext pdf-generation

我有一个传入的jpg文件,我可以将颜色设置为透明。当我将图像添加到另一个图像时,这非常有效。

我正在尝试使用iTextSharp将相同的图像添加到PDF中,但我无法使透明度起作用。

我尝试了两种方法,但两种方式都没有。第一种方法是在Bitmap中打开图像,设置透明度,然后在PDF中使用该Bitmap对象。第二种方式(如图所示)是将Bitmap保存到磁盘并将文件打开到iTextSharp图像中。

                    using (Bitmap b = new Bitmap(Image.FromFile(System.Web.HttpContext.Current.Server.MapPath("~/IncomingData/" + ImageFileName))))
                    {
                        b.MakeTransparent(Color.White);
                        b.Save(System.Web.HttpContext.Current.Server.MapPath("~/IncomingData/" + GuidFileName), System.Drawing.Imaging.ImageFormat.Png);
                        ImageFileName = GuidFileName;

                        iTextSharp.text.Image savedImage = iTextSharp.text.Image.GetInstance(Image.FromFile(System.Web.HttpContext.Current.Server.MapPath("~/IncomingData/" + GuidFileName)), iTextSharp.text.Color.WHITE);

                        savedImage.SetAbsolutePosition(Convert.ToSingle(x + 1.0), Convert.ToSingle(imageY + 12) - Convert.ToSingle(h));
                        savedImage.ScaleToFit(Convert.ToSingle(w), Convert.ToSingle(h));
                        contentByte.AddImage(savedImage, true);
                    }

我已经看到有透明度选项...

savedImage.Transparency = ???

但我不知道该如何投入价值观。我在搜索中找不到任何内容。

1 个答案:

答案 0 :(得分:2)

最终找到了答案。

我看到了这......原来我一直在寻找。透明度来找到透明度设置。我没有看到它。 c# .NET CORE adding image with transparency to existing PDF using ITextSharp

我的代码现在......

                    using (Bitmap b = new Bitmap(Image.FromFile(System.Web.HttpContext.Current.Server.MapPath("~/IncomingData/" + ImageFileName))))
                    {
                        b.MakeTransparent(Color.White);

                        iTextSharp.text.Image savedImage = iTextSharp.text.Image.GetInstance(b, System.Drawing.Imaging.ImageFormat.Png);

                        savedImage.SetAbsolutePosition(Convert.ToSingle(x + 1.0), Convert.ToSingle(imageY + 12) - Convert.ToSingle(h));
                        savedImage.ScaleToFit(Convert.ToSingle(w), Convert.ToSingle(h));

                        contentByte.AddImage(savedImage);
                    }

请注意,contentByte.AddImage已删除布尔值。