当前位置:   article > 正文

c#对PDF进行电子签章小工具

c#对PDF进行电子签章小工具

生产作业需要加作业后的文件进行加签处理,线下盖章太繁琐,因此开发个小工具帮助快速签章。

使用的库ITEXTSHARP

核心逻辑

        根据设定大小设置图片,获取PDF页的宽高,计算图片靠右下角的位置,提供一定程度Y向上偏移添加上图片与日期内容,最后插入到PDF,效果如图。

核心代码

     private void AddSign(string inputPdf, string outputPdf, string signatureImage)
        {


            using (FileStream fs = new FileStream(outputPdf, FileMode.Create))
            {
                PdfReader reader = new PdfReader(inputPdf);
                PdfStamper stamper = new PdfStamper(reader, fs);

                for (int i = 1; i <= reader.NumberOfPages; i++)
                {
                    PdfContentByte canvas = stamper.GetOverContent(i);

                    // 添加图片
                    iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(signatureImage);
                    img.ScaleAbsoluteWidth(Convert.ToSingle(Txtwidth.Value));
                    img.ScaleAbsoluteHeight(Convert.ToSingle(Txtheight.Value));
                    //img.Height = Txtheight.Value;
                    img.SetAbsolutePosition(reader.GetPageSizeWithRotation(i).Width - img.ScaledWidth - 10, Convert.ToSingle(TxtY.Value) + 10);
                    canvas.AddImage(img);

                    // 计算图片中心位置
                    float imgCenterX = img.ScaledWidth / 2;
                    float imgCenterY = img.ScaledHeight / 2;

                    // 添加文本
                    BaseFont bf = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);

                    // 获取当前日期
                    string currentDate = DateTime.Now.ToString("yyyy-MM-dd");
                    // 在图片正中央下方显示当前日期
                    var font = new Font(bf, 20);
                    font.SetColor(255, 0, 0);
                    ColumnText.ShowTextAligned(canvas, Element.ALIGN_CENTER,
                        new Phrase(currentDate, font),
                        img.AbsoluteX + imgCenterX,
                        img.AbsoluteY + imgCenterY - 10, // 调整Y坐标使文本在图片下方
                        0);
                }

                stamper.Close();
                reader.Close();
            }
        }

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号