C#将透明度变成白色.pdf文档
问题描述:
我有一个.pdf文档,在其页面中具有透明度。 我需要删除该透明度并将其变为白色,我该如何使用C#来做到这一点? 我可以使用pdftron,itextsharp或任何其他免费库。C#将透明度变成白色.pdf文档
答
使用PDFTrons PDFNet SDK,您可以插入一个白色矩形作为背景以删除@mkl建议的默认页面透明度。以下是使用ElementBuilder类的示例。您可以查看ElementBuilder sample code了解更多信息。
using (PDFDoc doc = new PDFDoc(@"D:\in.pdf"))
using (ElementBuilder eb = new ElementBuilder())
using (ElementWriter writer = new ElementWriter())
{
int pagenum = 1;
writer.Begin(doc.GetPage(pagenum), ElementWriter.WriteMode.e_underlay);
Element e = eb.CreateRect(0, 0, doc.GetPage(pagenum).GetPageWidth(), doc.GetPage(pagenum).GetPageHeight());
e.SetPathFill(true);
e.SetPathStroke(true);
e.SetPathClip(false);
e.GetGState().SetFillColorSpace(ColorSpace.CreateDeviceRGB());
e.GetGState().SetStrokeColorSpace(ColorSpace.CreateDeviceRGB());
e.GetGState().SetStrokeColor(new ColorPt(255, 255, 255)); // white background fill color
e.GetGState().SetFillColor(new ColorPt(255, 255, 255)); // stroke color white as well
writer.WritePlacedElement(e);
writer.End();
doc.Save(@"D:\output.pdf", 0);
}
这个想法是在整个页面下面画一个白色的矩形。因此,只要有透明度,现在就有那个白色的矩形。一个人可能不得不考虑淘汰赛设置......要小心:这当然不会奇怪地导致打印机在那里喷白墨水...... – mkl