ตัวเลือกการค้นหาและแทนที่ทำให้สามารถแทนที่ข้อความบางส่วนในเอกสารได้ในครั้งเดียว ด้วยวิธีนี้ คุณไม่จำเป็นต้องค้นหาและอัปเดตแต่ละรายการของข้อความในเอกสารทั้งหมดด้วยตนเอง บทความนี้ยังก้าวไปอีกขั้นและครอบคลุมถึงวิธีการทำให้คุณลักษณะค้นหาและแทนที่ข้อความในเอกสาร PDF เป็นไปโดยอัตโนมัติ โดยเฉพาะอย่างยิ่ง คุณจะได้เรียนรู้วิธีค้นหาและแทนที่ข้อความใน PDF ใน C# .NET เราจะสาธิตวิธีแทนที่ข้อความในหน้าใดหน้าหนึ่งหรือพื้นที่หน้าโดยใช้ C#..
- C# API เพื่อค้นหาและแทนที่ข้อความใน PDF
- ค้นหาและแทนที่ข้อความใน PDF โดยใช้ C#
- แทนที่ข้อความในหน้าเฉพาะใน PDF
- แทนที่ข้อความในภูมิภาคของหน้า PDF
- ค้นหาและแทนที่ข้อความใน PDF โดยใช้ Regex
C# .NET API เพื่อค้นหาและแทนที่ข้อความใน PDF - ดาวน์โหลดฟรี
Aspose.PDF for .NET เป็นไลบรารีคลาส C# ที่ให้คุณสมบัติการจัดการ 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 ใน C#
คุณยังสามารถค้นหาและแทนที่ข้อความในพื้นที่เฉพาะของหน้าในเอกสาร 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 Options
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");
C# แทนที่ข้อความใน PDF ด้วย Regular Expression (Regex)
คุณยังสามารถใช้นิพจน์ทั่วไปเพื่อค้นหาและแทนที่ข้อความที่ตรงกับรูปแบบเฉพาะ สำหรับสิ่งนี้ คุณจะต้องระบุนิพจน์ทั่วไปแทนวลีค้นหาธรรมดา และใช้ TextSearchOptions ต่อไปนี้เป็นขั้นตอนในการทำเช่นนั้น
- ใช้คลาส Document เพื่อโหลดเอกสาร PDF โดยใช้เส้นทาง
- สร้างอินสแตนซ์ของคลาส TextFragmentAbsorber และระบุวลีค้นหาให้กับตัวสร้าง
- สร้างอินสแตนซ์ของคลาส TextSearchOptions และส่งผ่านค่าจริงไปยังตัวสร้างเพื่อเปิดใช้งานการค้นหาตาม regex
- กำหนดวัตถุ TextSearchOptions ให้กับคุณสมบัติ TextFragmentAbsorber.TextSearchOptions
- ยอมรับตัวดูดซับข้อความสำหรับหน้าที่ต้องการโดยใช้ Document.Pages[0].Accept(TextFragmentAbsorber)
- กำหนดขอบเขตของหน้าโดยใช้คลาส Rectangle
- วนรอบคอลเลกชัน 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 ใน C# คำแนะนำทีละขั้นตอนและตัวอย่างโค้ดได้แสดงวิธีค้นหาและแทนที่ข้อความใน PDF ทั้งหมด หน้าใดหน้าหนึ่งใน PDF หรือพื้นที่หน้า คุณสามารถสำรวจคุณลักษณะขั้นสูงเพิ่มเติมได้โดยใช้ เอกสารประกอบ ของ API