حذف لایههای جدید اضافه شده به فایلهای PDF توسط iTextSharp
نویسنده: وحید نصیری
تاریخ: ۱۳۹۲/۰۴/۳۱ ۸:۰
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
private static void removeWatermarkLayer(string watermarkedFile, string text, string unwatermarkedFile)
{
PdfReader.unethicalreading = true;
PdfReader reader = new PdfReader(watermarkedFile);
reader.RemoveUnusedObjects();
int pageCount = reader.NumberOfPages;
for (int i = 1; i <= pageCount; i++)
{
var page = reader.GetPageN(i);
var contentarray = page.GetAsArray(PdfName.CONTENTS);
if (contentarray == null)
continue;
for (int j = 0; j < contentarray.Size; j++)
{
var stream = (PRStream)contentarray.GetAsStream(j);
//دریافت محتوای خام صفحه
var content = System.Text.Encoding.ASCII.GetString(PdfReader.GetStreamBytes(stream));
if (content.Contains(text))
{
//حذف کامل محتوا از فایل
stream.Put(PdfName.LENGTH, new PdfNumber(0));
stream.SetData(new byte[0]);
}
}
}
using (var fileStream = new FileStream(unwatermarkedFile, FileMode.Create, FileAccess.Write, FileShare.None))
{
using (var stamper = new PdfStamper(reader, fileStream))
{
stamper.SetFullCompression();
stamper.Close();
}
}
}