سی شارپ متن را در PDF پیدا کرده و جایگزین کنید

گزینه یافتن و جایگزینی امکان جایگزینی یک قطعه متن خاص در یک سند را به صورت یکجا فراهم می کند. به این ترتیب، شما مجبور نیستید هر مورد از متن را در کل سند به صورت دستی پیدا و به روز کنید. این مقاله حتی یک قدم فراتر می رود و نحوه خودکارسازی یافتن و جایگزینی ویژگی متن در اسناد PDF را پوشش می دهد. به ویژه، شما یاد خواهید گرفت که چگونه متن را در یک PDF در C#.NET پیدا کرده و جایگزین کنید. همچنین نحوه جایگزینی متن در یک صفحه خاص یا یک منطقه صفحه را با استفاده از C# نشان خواهیم داد.

C# .NET API برای یافتن و جایگزینی متن در PDF - دانلود رایگان

Aspose.PDF for .NET یک کتابخانه کلاس سی شارپ است که ویژگی های اولیه و همچنین پیشرفته دستکاری PDF را برای برنامه های NET ارائه می دهد. API همچنین به شما امکان می‌دهد متن فایل‌های PDF را به روش‌های مختلف بی‌وقفه پیدا کرده و جایگزین کنید. می توانید DLL API را دانلود یا با استفاده از NuGet نصب کنید.

PM> Install-Package Aspose.PDF

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

مراحل زیر برای یافتن و جایگزینی متن در یک سند PDF است.

  • از کلاس Document برای بارگذاری سند PDF با استفاده از مسیر آن استفاده کنید.
  • یک نمونه از کلاس TextFragmentAbsorber ایجاد کنید و عبارت جستجو را در اختیار سازنده آن قرار دهید.
  • جذب متن را برای تمام صفحات PDF با استفاده از Document.Pages.Accept(TextFragmentAbsorber) بپذیرید.
  • قطعات متن استخراج شده را در شیء TextFragmentCollection دریافت کنید.
  • TextFragmentCollection پیدا شده را حلقه بزنید و متن را در هر قطعه جایگزین کنید.
  • سند PDF به روز شده را با استفاده از روش Document.Save(String) ذخیره کنید.

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

// سند را باز کنید
Document pdfDocument = new Document("Document.pdf");

// برای یافتن تمام نمونه های عبارت جستجوی ورودی، شی TextAbsorber ایجاد کنید
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("text");

// جذب کننده را برای تمام صفحات بپذیرید
pdfDocument.Pages.Accept(textFragmentAbsorber);

// قطعات متن استخراج شده را دریافت کنید
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;

// از طریق قطعات حلقه بزنید
foreach (TextFragment textFragment in textFragmentCollection)
{
    // متن و سایر ویژگی ها را به روز کنید
    textFragment.Text = "TEXT";
    textFragment.TextState.Font = FontRepository.FindFont("Verdana");
    textFragment.TextState.FontSize = 22;
    textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Blue);
    textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
}
            
// سند PDF حاصل را ذخیره کنید.
pdfDocument.Save("updated-document.pdf");

C# جایگزین متن در یک صفحه PDF خاص

مراحل زیر برای یافتن و جایگزینی متن در یک صفحه خاص در یک سند PDF است.

  • از کلاس Document برای بارگذاری سند PDF با استفاده از مسیر آن استفاده کنید.
  • یک نمونه از کلاس TextFragmentAbsorber ایجاد کنید و عبارت جستجو را در اختیار سازنده آن قرار دهید.
  • با استفاده از [Document.Pages1.Accept(TextFragmentAbsorber)12، جاذب متن را برای صفحه مورد نظر بپذیرید.
  • از میان مجموعه یافت شده TextFragmentAbsorber.TextFragments حلقه بزنید و متن را در هر قطعه جایگزین کنید.
  • سند PDF به روز شده را با استفاده از روش Document.Save(String) ذخیره کنید.

نمونه کد زیر نحوه یافتن و جایگزینی متن در یک صفحه خاص از PDF را با استفاده از C# نشان می دهد.

// سند را باز کنید
Document pdfDocument = new Document("Document.pdf");

// برای یافتن تمام نمونه های عبارت جستجوی ورودی، شی TextAbsorber ایجاد کنید
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("text");

// جاذب را برای دلخواه بپذیرید
pdfDocument.Pages[1].Accept(textFragmentAbsorber);

// قطعات متن استخراج شده را دریافت کنید
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;

// از طریق قطعات حلقه بزنید
foreach (TextFragment textFragment in textFragmentCollection)
{
    // متن و سایر ویژگی ها را به روز کنید
    textFragment.Text = "TEXT";
    textFragment.TextState.Font = FontRepository.FindFont("Verdana");
    textFragment.TextState.FontSize = 22;
    textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Blue);
    textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
}

// سند PDF حاصل را ذخیره کنید.
pdfDocument.Save("updated-document.pdf");

جایگزین کردن متن در پی دی اف منطقه صفحه در سی شارپ

همچنین می توانید متن را در یک منطقه خاص از صفحه در یک سند PDF پیدا کرده و جایگزین کنید. مراحل زیر نحوه تعریف یک منطقه خاص و سپس جایگزینی متن در آن را نشان می دهد.

  • از کلاس Document برای بارگذاری سند PDF با استفاده از مسیر آن استفاده کنید.
  • یک نمونه از کلاس TextFragmentAbsorber ایجاد کنید و عبارت جستجو را در اختیار سازنده آن قرار دهید.
  • جذب متن را برای صفحه مورد نظر با استفاده از Document.Pages[0].Accept(TextFragmentAbsorber) بپذیرید.
  • منطقه صفحه را با استفاده از کلاس Rectangle تعریف کنید.
  • در مجموعه TextFragmentAbsorber.TextFragments حلقه بزنید و متن را در هر قطعه جایگزین کنید.
  • سند PDF به روز شده را با استفاده از روش Document.Save(String) ذخیره کنید.

نمونه کد زیر نحوه یافتن و جایگزینی متن را در یک منطقه صفحه خاص در PDF با استفاده از C# نشان می دهد.

// فایل PDF را بارگیری کنید
Document pdf = new Document("Document.pdf");

// نمونه سازی شیء TextFragment Absorber
TextFragmentAbsorber TextFragmentAbsorberAddress = new TextFragmentAbsorber();

// جستجوی متن در صفحه محدود شده
TextFragmentAbsorberAddress.TextSearchOptions.LimitToPageBounds = true;

// منطقه صفحه را برای گزینه های TextSearch مشخص کنید
TextFragmentAbsorberAddress.TextSearchOptions.Rectangle = new Rectangle(100, 100, 200, 200);

// جستجوی متن از صفحه اول فایل PDF
pdf.Pages[1].Accept(TextFragmentAbsorberAddress);

// از طریق TextFragment فردی تکرار کنید
foreach (TextFragment tf in TextFragmentAbsorberAddress.TextFragments)
{
    // متن را به کاراکترهای خالی به روز کنید
    tf.Text = "";
}

// فایل PDF به روز شده را پس از جایگزینی متن ذخیره کنید
pdf.Save("output.pdf");

سی شارپ جایگزین متن در PDF با عبارت منظم (Regex)

همچنین می‌توانید از عبارات منظم برای یافتن و جایگزینی رخدادهای متنی مطابق با یک الگوی خاص استفاده کنید. برای این کار، فقط باید یک عبارت منظم به جای عبارت جستجوی ساده ارائه کنید و از TextSearchOptions استفاده کنید. در زیر مراحل انجام این کار آمده است.

  • از کلاس Document برای بارگذاری سند PDF با استفاده از مسیر آن استفاده کنید.
  • یک نمونه از کلاس TextFragmentAbsorber ایجاد کنید و عبارت جستجو را در اختیار سازنده آن قرار دهید.
  • یک نمونه از کلاس TextSearchOptions ایجاد کنید و به سازنده آن ارسال کنید تا جستجوی مبتنی بر regex فعال شود.
  • شیء TextSearchOptions را به ویژگی TextFragmentAbsorber.TextSearchOptions اختصاص دهید.
  • با استفاده از [Document.Pages[0].Accept(TextFragmentAbsorber) 27 جاذب متن را برای صفحه مورد نظر بپذیرید.
  • منطقه صفحه را با استفاده از کلاس مستطیل تعریف کنید.
  • در مجموعه TextFragmentAbsorber.TextFragments حلقه بزنید و متن را در هر قطعه جایگزین کنید.
  • سند PDF به روز شده را با استفاده از روش Document.Save(String) ذخیره کنید.

نمونه کد زیر نحوه یافتن و جایگزینی متن در PDF را با استفاده از عبارت منظم با استفاده از C# نشان می دهد.

// سند را باز کنید
Document pdfDocument = new Document("Document.pdf");

// شی TextAbsorber را ایجاد کنید تا تمام عبارات مطابق با عبارت منظم را پیدا کنید
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("\\d{4}-\\d{4}"); // Like 1999-2000

// گزینه جستجوی متن را برای تعیین استفاده از عبارت منظم تنظیم کنید
TextSearchOptions textSearchOptions = new TextSearchOptions(true);
textFragmentAbsorber.TextSearchOptions = textSearchOptions;

// جذب کننده را برای یک صفحه بپذیرید
pdfDocument.Pages[1].Accept(textFragmentAbsorber);

// قطعات متن استخراج شده را دریافت کنید
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;

// از طریق قطعات حلقه بزنید
foreach (TextFragment textFragment in textFragmentCollection)
{
    // متن و سایر ویژگی ها را به روز کنید
    textFragment.Text = "New Phrase";
    // روی یک نمونه از یک شی تنظیم کنید.
    textFragment.TextState.Font = FontRepository.FindFont("Verdana");
    textFragment.TextState.FontSize = 22;
    textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Blue);
    textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
}

// PDF را ذخیره کنید
pdfDocument.Save("output.pdf");

نتیجه

اتوماسیون PDF این روزها به منظور دستکاری اسناد PDF از داخل وب یا برنامه های دسکتاپ به طور گسترده مورد استفاده قرار گرفته است. این مقاله یک ویژگی مفید اتوماسیون PDF برای یافتن و جایگزینی متن در PDF در سی شارپ را پوشش می دهد. راهنمای گام به گام و نمونه کد نشان داده است که چگونه می توان متن را در یک PDF کامل، یک صفحه خاص در PDF یا یک منطقه صفحه پیدا کرد و جایگزین کرد. می‌توانید ویژگی‌های پیشرفته‌تر را با استفاده از مستندات API کاوش کنید.

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