2017-09-01 91 views
1

我有一個.pdf文檔,在其頁面中具有透明度。 我需要刪除該透明度並將其變爲白色,我該如何使用C#來做到這一點? 我可以使用pdftron,itextsharp或任何其他免費庫。C#將透明度變成白色.pdf文檔

+0

這個想法是在整個頁面下面畫一個白色的矩形。因此,只要有透明度,現在就有那個白色的矩形。一個人可能不得不考慮淘汰賽設置......要小心:這當然不會奇怪地導致打印機在那裏噴白墨水...... – mkl

回答

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