
شما میتوانید بهطور برنامهنویسی مدارک PDF را بدون نیاز به نصب برنامههای خارجی سانسور کنید. بهعنوان یک توسعهدهنده C#، شما میتوانید بهراحتی مدارک PDF خود را در برنامههای .NET خود سانسور کنید. این مقاله بر نحوه سانسور مدارک PDF با استفاده از C# تمرکز خواهد کرد.
موضوعات زیر در این مقاله بحث شده/پوشش داده شدهاند:
- C# API برای ویرایش PDF
- متن را در PDF با استفاده از C# پاک کنید
- حذف متاداده در PDF با استفاده از C#
- تصاویر را در PDF با استفاده از C# حذف کنید
- چندین سانسور را در PDF با استفاده از C# اعمال کنید
C# API برای ویرایش PDF
برای ویرایش در PDF، من از GroupDocs.Redaction for .NET API استفاده خواهم کرد. این API به شما این امکان را میدهد که فایلهای PDF، Word، Excel، PowerPoint و تصاویر را ویرایش کنید. همچنین امکان حذف اطلاعات طبقهبندی شده از بیش از 30 نوع فرمت پشتیبانی شده را فراهم میکند. شما میتوانید انواع مختلف ویرایش را مانند ویرایش متن، ویرایش متادیتا، ویرایش حاشیهنویسی و ویرایش مدارک جدولی اعمال کنید.
شما میتوانید یا download DLL API را دانلود کنید یا آن را با استفاده از NuGet نصب کنید.
Install-Package GroupDocs.Redaction
متن را در PDF با استفاده از C# ویرایش کنید
شما میتوانید به راحتی با دنبال کردن مراحل ساده ذکر شده در زیر، متن را در اسناد PDF ویرایش کنید:
- یک نمونه از کلاس Redactor را با مسیر فایل ورودی ایجاد کنید
- Create the ExactPhraseRedaction class instance with SearchPhrase and the ReplacementOptions
- متد Redactor.Apply() را فراخوانی کنید
- نتایج را در شی کلاس RedactorChangeLog دریافت کنید
- متد Redactor.Save() را فراخوانی کنید
کد نمونه زیر نشان میدهد که چگونه متنی را در یک سند PDF با استفاده از C# پاک کنید.
// create redactor
Redactor redactor = new Redactor("C:\\Files\\sample.pdf");
// create exact phrase redaction
ExactPhraseRedaction redaction = new ExactPhraseRedaction("John Doe", true, new ReplacementOptions("[personal]"));
// apply redaction
RedactorChangeLog result = redactor.Apply(redaction);
if (result.Status != RedactionStatus.Failed)
{
redactor.Save();
};

متن را در PDF با استفاده از C# ویرایش کنید
کلاس Redactor اصلی است که روشهای مختلفی را برای انجام فرآیند ویرایش سند ارائه میدهد. همچنین به شما این امکان را میدهد که اسناد را باز کنید، ویرایش کنید و ذخیره کنید. روش Apply() این کلاس ویرایش تعریف شده را به سند اعمال میکند. علاوه بر این، روش Save() این کلاس سند را در یک فایل ذخیره میکند.
ExactPhraseRedaction روشهایی را برای انجام ویرایش متن به منظور جایگزینی یک عبارت دقیق در سند فراهم میکند. همچنین اجازه میدهد دادههای حساس به حروف بزرگ و کوچک را با تنظیم IsCaseSensitive به true جستجو کنید.
گزینههای ReplacementOptions نمایانگر گزینههای جایگزینی متن مطابقتیافته است.
کلاس RedactorChangeLog نتایج یک لیست از ویرایشها را که به متد Apply() کلاس Redactor ارسال شده، نمایش میدهد.
حذف متا داده ها در PDF با استفاده از C#
شما میتوانید با پیروی از مراحل ساده ذکر شده در زیر، حذف متادیتا را در مدارک PDF اعمال کنید:
- یک نمونه از کلاس Redactor را با مسیر فایل ورودی ایجاد کنید
- Create the EraseMetadataRedaction class instance with MetadataFilter to include
- متد Redactor.Apply() را فراخوانی کنید
- متد Redactor.Save() را فراخوانی کنید
نمونه کد زیر نشان میدهد که چگونه میتوان متادیتا را در یک سند PDF با استفاده از C# مستور کرد.
// create redactor
Redactor redactor = new Redactor("C:\\Files\\sample.pdf");
// erase author, manager and company
EraseMetadataRedaction redaction = new EraseMetadataRedaction(MetadataFilters.Author | MetadataFilters.Manager | MetadataFilters.Company);
// apply redaction
redactor.Apply(redaction);
redactor.Save();

متادیتا را در PDF با استفاده از C# حذف کنید
کلاس EraseMetadataRedaction روشهایی برای پاک کردن تمام متادادهها ارائه میدهد. همچنین امکان پاک کردن متادادههایی که با فیلترهای متاداده خاص مطابقت دارند از سند را نیز فراهم میکند.
لیست MetadataFilters شامل رایجترین انواع متاداده اسنادی است مانند نویسنده، نظرات، شرکت.
تصویرها را در PDF با استفاده از C# سانسور کنید
شما میتوانید حذف تصویر را در اسناد PDF با دنبال کردن مراحل ساده زیر اعمال کنید:
- یک نمونه از کلاس Redactor را با مسیر فایل ورودی ایجاد کنید
- تعریف نقاط طراحی و اندازه
- Create the ImageAreaRedaction class instance with drawing points and RegionReplacementOptions
- متد Redactor.Apply() را فراخوانی کنید
- متد Redactor.Save() را فراخوانی کنید
کد نمونه زیر نشان میدهد که چگونه میتوان تصاویر را در یک مستند PDF با استفاده از C# سانسور کرد.
// create redactor
Redactor redactor = new Redactor("C:\\Files\\sample_with_images.pdf");
// تعریف اندازه و نقاط
System.Drawing.Point samplePoint = new System.Drawing.Point(0, 0);
System.Drawing.Size sampleSize = new System.Drawing.Size(300, 240);
// تعریف محو کردن ناحیه تصویر
ImageAreaRedaction redaction = new ImageAreaRedaction(samplePoint,
new RegionReplacementOptions(System.Drawing.Color.Blue, sampleSize));
// apply redaction
RedactorChangeLog result = redactor.Apply(redaction);
if (result.Status != RedactionStatus.Failed)
{
redactor.Save();
};

تصاویر را در PDF با استفاده از C# ویرایش کنید
کلاس ImageAreaRedaction این امکان را میدهد که یک مستطیل رنگی در ناحیهای مشخص از سند تصویری قرار دهید.
کلاس RegionReplacementOption نمایانگر رنگ و پارامترهای ناحیهای است که باید با تصویر جایگزین شود.
با استفاده از C# چندین سانسور را در PDF اعمال کنید
شما میتوانید با دنبال کردن مراحل ساده ذکر شده در زیر، چندین سانسور در اسناد PDF اعمال کنید:
- یک نمونه از کلاس Redactor را با مسیر فایل ورودی ایجاد کنید
- Create the ExactPhraseRedaction, RegexRedaction, and EraseMetadataRedaction
- لیست سانسور را با سانسورهای ایجاد شده اضافه کنید
- Call the Redactor.Apply() method
- متد Redactor.Save() را فراخوانی کنید, show errors if failed
نمونه کد زیر نشان میدهد که چگونه میتوان چندین حذف را در یک سند PDF با استفاده از C# اعمال کرد.
// create redactor
Redactor redactor = new Redactor("C:\\Files\\sample.pdf");
// چندین سانسور را تعریف کنید
var redactionList = new Redaction[]
{
new ExactPhraseRedaction("John Doe", new ReplacementOptions("[Client]")),
new RegexRedaction("Redaction", new ReplacementOptions("[Product]")),
new RegexRedaction("\\d{2}\\s*\\d{2}[^\\d]*\\d{6}", new ReplacementOptions(System.Drawing.Color.Blue)),
new EraseMetadataRedaction(MetadataFilters.All)
};
// apply redactions
RedactorChangeLog result = redactor.Apply(redactionList);
// ذخیره کنید اگر اعمال شده است وگرنه خطاها را نمایش دهید
if (result.Status == RedactionStatus.Applied)
{
redactor.Save();
}
else if (result.Status == RedactionStatus.Failed)
{
for (int i = 0; i < result.RedactionLog.Count; i++)
{
RedactorLogEntry logEntry = result.RedactionLog[i];
if (logEntry.Result.Status != RedactionStatus.Applied)
{
Console.WriteLine("{0} status is {1}, details: {2}",
logEntry.Redaction.GetType().Name,
logEntry.Result.Status,
logEntry.Result.ErrorMessage);
}
}
};

نصب iTextSharp: از NuGet Package Manager استفاده کنید:
Install-Package itext7کد برای حذف محتوا:
using System.IO; using iText.Kernel.Pdf; using iText.Kernel.Pdf.Canvas.Parser; class Program { static void Main(string[] args) { string src = "input.pdf"; string dest = "output.pdf"; using (PdfReader reader = new PdfReader(src)) using (PdfWriter writer = new PdfWriter(dest)) using (PdfDocument pdfDoc = new PdfDocument(reader, writer)) { for (int i = 1; i <= pdfDoc.GetNumberOfPages(); i++) { var page = pdfDoc.GetPage(i); // مثال: حذف متن مشخص PdfCanvas canvas = new PdfCanvas(page); canvas.SaveState(); // نقاشی اسکن canvas.SetBlendMode(PdfCanvasConstants.BlendMode.NORMAL); canvas.SetColor(new DeviceRgb(255, 255, 255), true); // رنگ سفید canvas.Rectangle(100, 100, 200, 50); // موقعیت مستطیل canvas.Fill(); canvas.RestoreState(); } } } }اجرا: این کد را اجرا کنید تا PDF ورودی با حذفهای دلخواه تولید شود.
با دنبال کردن مراحل بالا، میتوانید چندین حذف را در یک فایل PDF با استفاده از C# اعمال کنید." caption=“در C# چندین سانسور را در PDF اعمال کنید”>}}
کلاس RegexRedaction اجازه میدهد تا یک متن را ویرایش کنید. شما میتوانید هر متنی را در سند جستجو و جایگزین کنید با مطابقت یک متن با استفاده از عبارات منظم.
مجوز رایگان بگیرید
شما میتوانید بدون محدودیتهای ارزیابی از API استفاده کنید با درخواست a free temporary license.
نتیجه گیری
در این مقاله، شما یاد گرفتهاید که چگونه اسناد PDF را با استفاده از C# حذف متن کنید. همچنین یاد گرفتهاید که چگونه متن، متادیتا و تصاویر را در اسناد PDF حذف کنید. علاوه بر این، یاد گرفتهاید که چگونه چندین حذف متن را در PDF با استفاده از C# اعمال کنید. میتوانید اطلاعات بیشتری درباره GroupDocs.Redaction برای API .NET با استفاده از documentation بیابید. در صورت هرگونه ابهام، لطفاً با ما از طریق forum تماس بگیرید.