首页 > 解决方案 > 使用 itextsharp 在现有 pdf 文件的底部插入红色文本

问题描述

我有一个现有的 PDF 文件,我想在 PDF 文件的底部插入一个红色的文本,但现有的 pdf 文件颜色必须保持不变。

标签: c#pdfitextstyles

解决方案


谢谢@mkl 下面的代码,我使用了专门针对 Stamp 的代码。

 public static void ManipulatePdf(string src, string dest)
        {
            src = @"C:\CCPR Temp\TempFiles\PayStub_000106488_12282019_20200117112403.pdf";
            dest = @"C:\CCPR Temp\TempFiles\PayStub_WithStamper.pdf";
            PdfReader reader = new PdfReader(src);
            PdfStamper stamper = new PdfStamper(reader, new FileStream(dest, FileMode.Create)); // create?
            int numberOfPages = reader.NumberOfPages;
            Rectangle pagesize;
            for (int i = 1; i <= numberOfPages; i++)
            {
                PdfContentByte under = stamper.GetUnderContent(i);
                pagesize = reader.GetPageSize(i);
                float x =40;// (pagesize.Left + pagesize.Right) / 2;
                float y = pagesize.Top/4;// (pagesize.Bottom + pagesize.Top) / 2;
                PdfGState gs = new PdfGState();
                gs.FillOpacity = 1.0f;
                under.SaveState();
                under.SetGState(gs);
                under.SetRGBColorFill(255,0,0); 
                ColumnText.ShowTextAligned(under, Element.ALIGN_BOTTOM,
                    new Phrase("Watermark", new Font(Font.FontFamily.HELVETICA, 20)),
                    x, y, 1);
                under.RestoreState();
            }
            stamper.Close();
            reader.Close();
        }

推荐阅读