C# iText7 设置PDF背景

1、参考https://cloud.tencent.com/developer/ask/148120

/// <summary>
/// 转换文件
/// </summary>
/// <param name="src"></param>
/// <param name="dest"></param>
public void ToBackgroundPDF(string src, string dest)
{
	var pdfReader = new PdfReader(src);
	PdfDocument pdfDoc = new PdfDocument(pdfReader,
		new PdfWriter(dest,
			new WriterProperties().AddUAXmpMetadata().SetPdfVersion(pdfVersion)).SetSmartMode(true)
			);
	try
	{
		// BM_NORMAL;               //0.5  正常的,标准的
		// BM_LUMINOSITY;           //0.5 光度;光明;光辉
		// BM_COLOR;                //0 色彩
		// BM_SATURATION;           //0 饱和,饱和状态
		// BM_HUE;                  //0 色彩;色度;色调;叫声
		// BM_EXCLUSION;            //1 排斥,排除在外;被排除在外的人(或事物)
		// BM_SOFT_LIGHT;           //0.5 柔光;柔光模式;柔光灯
		// BM_HARD_LIGHT;           //0.5 强光
		// BM_DIFFERENCE;           //1 差异,不同之处;差额;分歧
		// BM_COLOR_DODGE;          //0.5 颜色减淡
		// BM_LIGHTEN;              //0.5 减轻;发亮, 使照亮;使轻松
		// BM_DARKEN;               //1 (使)变暗,变黑;(使)变得阴郁;(脸色)变阴沉
		// BM_OVERLAY;              //1 套图透明膜;覆盖图;覆盖物,涂层;覆盖;附加的特性
		// BM_SCREEN;               //0.5 隐藏,遮蔽;庇护,包庇
		// BM_MULTIPLY;             //1 多层的
		// BM_COLOR_BURN;           //0 颜色加深

		var gState = new PdfExtGState().SetFillOpacity(1f).SetBlendMode(PdfExtGState.BM_DARKEN);
		iText.Kernel.Colors.Color bgColour = new DeviceRgb(199, 237, 204);
		int nPages = pdfDoc.GetNumberOfPages();
		for (int i = 1; i <= nPages; i++)
		{
			PdfPage page = pdfDoc.GetPage(i);
			PdfCanvas canvas = new PdfCanvas(page);
			iText.Kernel.Geom.Rectangle rect = page.GetPageSize();
			//I used custom rgb for Color                    
			canvas.SaveState()
				.SetExtGState(gState)
				.SetFillColor(bgColour)
				.Rectangle(rect)
				.FillStroke()
				.RestoreState();
		}
	}
	catch (Exception ex)
	{
		Console.WriteLine(ex.ToString());
	}
	finally
	{
		if (pdfDoc != null && !pdfDoc.IsClosed())
			pdfDoc.Close();
	}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值