سندهای PDF را با استفاده از C# ویرایش کنید

شما می‌توانید به‌طور برنامه‌نویسی مدارک PDF را بدون نیاز به نصب برنامه‌های خارجی سانسور کنید. به‌عنوان یک توسعه‌دهنده C#، شما می‌توانید به‌راحتی مدارک PDF خود را در برنامه‌های .NET خود سانسور کنید. این مقاله بر نحوه سانسور مدارک 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 ویرایش کنید:

کد نمونه زیر نشان می‌دهد که چگونه متنی را در یک سند 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# حذف کنید

متن را در PDF با استفاده از C# ویرایش کنید

کلاس Redactor اصلی است که روش‌های مختلفی را برای انجام فرآیند ویرایش سند ارائه می‌دهد. همچنین به شما این امکان را می‌دهد که اسناد را باز کنید، ویرایش کنید و ذخیره کنید. روش Apply() این کلاس ویرایش تعریف شده را به سند اعمال می‌کند. علاوه بر این، روش Save() این کلاس سند را در یک فایل ذخیره می‌کند.

ExactPhraseRedaction روش‌هایی را برای انجام ویرایش متن به منظور جایگزینی یک عبارت دقیق در سند فراهم می‌کند. همچنین اجازه می‌دهد داده‌های حساس به حروف بزرگ و کوچک را با تنظیم IsCaseSensitive به true جستجو کنید.

گزینه‌های ReplacementOptions نمایانگر گزینه‌های جایگزینی متن مطابقت‌یافته است.

کلاس RedactorChangeLog نتایج یک لیست از ویرایش‌ها را که به متد Apply() کلاس Redactor ارسال شده، نمایش می‌دهد.

حذف متا داده ها در PDF با استفاده از C#

شما می‌توانید با پیروی از مراحل ساده ذکر شده در زیر، حذف متادیتا را در مدارک PDF اعمال کنید:

نمونه کد زیر نشان می‌دهد که چگونه می‌توان متادیتا را در یک سند 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#

متادیتا را در PDF با استفاده از C# حذف کنید

کلاس EraseMetadataRedaction روش‌هایی برای پاک کردن تمام متاداده‌ها ارائه می‌دهد. همچنین امکان پاک کردن متاداده‌هایی که با فیلترهای متاداده خاص مطابقت دارند از سند را نیز فراهم می‌کند.

لیست MetadataFilters شامل رایج‌ترین انواع متاداده اسنادی است مانند نویسنده، نظرات، شرکت.

تصویرها را در PDF با استفاده از C# سانسور کنید

شما می‌توانید حذف تصویر را در اسناد PDF با دنبال کردن مراحل ساده زیر اعمال کنید:

کد نمونه زیر نشان می‌دهد که چگونه می‌توان تصاویر را در یک مستند 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# سانسور کنید

تصاویر را در PDF با استفاده از C# ویرایش کنید

کلاس ImageAreaRedaction این امکان را می‌دهد که یک مستطیل رنگی در ناحیه‌ای مشخص از سند تصویری قرار دهید.

کلاس RegionReplacementOption نمایانگر رنگ و پارامترهای ناحیه‌ای است که باید با تصویر جایگزین شود.

با استفاده از C# چندین سانسور را در PDF اعمال کنید

شما می‌توانید با دنبال کردن مراحل ساده ذکر شده در زیر، چندین سانسور در اسناد PDF اعمال کنید:

نمونه کد زیر نشان می‌دهد که چگونه می‌توان چندین حذف را در یک سند 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);
        }
    }
};
در C# برای اعمال چندین حذف در PDF
  1. نصب iTextSharp: از NuGet Package Manager استفاده کنید:

    Install-Package itext7
    
  2. کد برای حذف محتوا:

    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();
                }
            }
        }
    }
    
  3. اجرا: این کد را اجرا کنید تا PDF ورودی با حذف‌های دلخواه تولید شود.

با دنبال کردن مراحل بالا، می‌توانید چندین حذف را در یک فایل PDF با استفاده از C# اعمال کنید." caption=“در C# چندین سانسور را در PDF اعمال کنید”>}}

کلاس RegexRedaction اجازه می‌دهد تا یک متن را ویرایش کنید. شما می‌توانید هر متنی را در سند جستجو و جایگزین کنید با مطابقت یک متن با استفاده از عبارات منظم.

مجوز رایگان بگیرید

شما می‌توانید بدون محدودیت‌های ارزیابی از API استفاده کنید با درخواست a free temporary license.

نتیجه گیری

در این مقاله، شما یاد گرفته‌اید که چگونه اسناد PDF را با استفاده از C# حذف متن کنید. همچنین یاد گرفته‌اید که چگونه متن، متادیتا و تصاویر را در اسناد PDF حذف کنید. علاوه بر این، یاد گرفته‌اید که چگونه چندین حذف متن را در PDF با استفاده از C# اعمال کنید. می‌توانید اطلاعات بیشتری درباره GroupDocs.Redaction برای API .NET با استفاده از documentation بیابید. در صورت هرگونه ابهام، لطفاً با ما از طریق forum تماس بگیرید.

همچنین ببینید