从PDF itextsharp中删除蒙版图像“Watermark”

时间:2011-12-06 15:01:10

标签: c# pdf itextsharp

我需要从pdf文档中删除蒙版图像。所有页面上都使用相同的图像作为“水印”。 使用iTextSharp是否可行,如果是,我会感谢任何代码示例。

我需要删除水印的原因是因为我需要OCR pdf,但“水印”下的文字正在被破坏。

我在网上搜索,但我找到了可行的任何内容。

谢谢你, 迪米瑞斯

使用此代码我可以替换图像但是如果我不替换图像...那么图像会消失,但是当我在adobe Reades中打开pdf时出现错误

        string pdfTempFilename = "1_tmp.pdf";            
        FileStream os = new FileStream(pdfTempFilename, FileMode.Create);
        PdfReader pdf = new PdfReader(@"D:\import\pdf.pdf");
        PdfStamper stp = new PdfStamper(pdf, os);
        PdfWriter writer = stp.Writer;
        iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance("mask.gif");
        PdfDictionary pg = pdf.GetPageN(1);
        PdfDictionary res = (PdfDictionary)PdfReader.GetPdfObject(pg.Get(PdfName.RESOURCES));

        PdfDictionary xobj = (PdfDictionary)PdfReader.GetPdfObject(res.Get(PdfName.XOBJECT));                                                                       

        if (xobj != null) {

            foreach (PdfName name in xobj.Keys){            
                PdfObject obj = xobj.Get(name);
                if (obj.IsIndirect()) {
                    PdfDictionary tg = (PdfDictionary)PdfReader.GetPdfObject(obj);
                    PdfName type = tg.GetAsName(PdfName.SUBTYPE);


                    PdfObject ind = tg.Get(PdfName.MASK);

                    if (PdfName.IMAGE.Equals(type) && ind !=null)
                    {
                        PdfReader.KillIndirect(obj);                           

                        writer.AddDirectImageSimple(img, (PRIndirectReference)obj);                            
                        break;
                    }
                }
            }
       }
       stp.Close();

`

0 个答案:

没有答案