c# - 使用 itextsharp 在现有 pdf 文件的底部插入红色文本
问题描述
我有一个现有的 PDF 文件,我想在 PDF 文件的底部插入一个红色的文本,但现有的 pdf 文件颜色必须保持不变。
解决方案
谢谢@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();
}
推荐阅读
- c++ - 打印二维数组 C++ 的最大元素
- http - 正则表达式搜索并替换日志中的 HTTP RC
- css - CSS 相当于 Adobe XD 的“背景模糊”功能?
- java - 在有限制的存储库中查询
- node.js - 502 Bad Gateway 节点服务器 nginx
- python - 使用 python 列表对二进制变量进行 2 的运行长度控制
- android - 如何从外部布局将 FAB 绑定到底部导航栏?
- deep-learning - 二元分类的不平衡训练样本(90% vs 10%) - Tensorflow
- java - 邮递员调用 API 的问题
- javascript - 自定义 Highchart 工具提示