对于.pdf文档,C#将透明度转换为白色

时间:2017-09-01 16:43:44

标签: c# pdf itext transparency pdfnet

我的.pdf文档在其页面中具有透明度。 我需要删除透明度并将其变为白色,我该如何使用C#? 我可以使用pdftron,itextsharp或任何其他免费库。

1 个答案:

答案 0 :(得分:0)

使用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);
}