Мне нужно удалить изображение маски из PDF-документа. Одно и то же изображение используется как «водяной знак» на всех страницах.
Это возможно с iTextSharp, и если да, я был бы признателен за любые примеры кода.
Причина, по которой мне нужно удалить водяной знак, заключается в том, что мне нужно распознать PDF, но текст под «водяным знаком» искажается.
У меня есть поиск в Интернете, но мне удалось найти все, что работает.
Спасибо,
Димитрис
с помощью этого кода я могу заменить изображение, но если я не заменю изображение ... тогда изображение действительно исчезнет, но я получаю ошибку при открытии PDF в Adobe Reades
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();
`