我需要从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();
`