ค้นหาและแทนที่ข้อความใน PDF โดยใช้ C++

PDF เป็นรูปแบบยอดนิยมที่ใช้กันอย่างแพร่หลายในการแชร์เอกสารระหว่างองค์กรและบุคคล อาจมีสถานการณ์ที่คุณต้องค้นหาและแทนที่ข้อความบางส่วนในเอกสาร PDF ก่อนแบ่งปัน คุณสามารถทำได้ด้วยตนเอง แต่จะใช้เวลามากขึ้นและมีประสิทธิภาพน้อยลง ตัวเลือกที่ดีกว่าและเร็วกว่าคือทำสิ่งนี้โดยทางโปรแกรม ในบทความนี้ คุณจะได้เรียนรู้วิธีค้นหาและแทนที่ข้อความในไฟล์ PDF โดยใช้ C++

C ++ API เพื่อค้นหาและแทนที่ข้อความในไฟล์ PDF

Aspose.PDF for C++ เป็นไลบรารี C++ สำหรับทำงานกับไฟล์ PDF มันมีคุณสมบัติมากมายที่ช่วยให้คุณทำงานด้านต่าง ๆ ของเวิร์กโฟลว์ PDF ของคุณโดยอัตโนมัติ คุณลักษณะอย่างหนึ่งคือการค้นหาและแทนที่ข้อความในไฟล์ PDF คุณสามารถติดตั้ง API ผ่าน NuGet หรือดาวน์โหลดโดยตรงจากส่วน ดาวน์โหลด

PM> Install-Package Aspose.PDF.Cpp

ค้นหาและแทนที่ข้อความใน PDF โดยใช้ C++

Aspose.PDF for C++ มีคลาส TextFragmentAbsorber สำหรับค้นหาข้อความในเอกสาร PDF คุณเริ่มต้นคลาสนี้ด้วยข้อความที่คุณต้องการค้นหาและใช้เพื่อดึงส่วนข้อความที่ตรงกันทั้งหมด เมื่อมีแฟรกเมนต์ทั้งหมดแล้ว ให้วนซ้ำและแทนที่ข้อความ ต่อไปนี้เป็นขั้นตอนในการค้นหาและแทนที่ข้อความในไฟล์ PDF โดยใช้ C++

ต่อไปนี้คือโค้ดตัวอย่างสำหรับค้นหาและแทนที่ข้อความในไฟล์ PDF ทั้งหมดโดยใช้ C++

// โหลดไฟล์ PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.pdf");

// สร้างวัตถุ TextAbsorber เพื่อค้นหาอินสแตนซ์ทั้งหมดของวลีค้นหาที่ป้อน
auto textFragmentAbsorber = MakeObject<TextFragmentAbsorber>(u"Document");

// รับโช้คทุกหน้า
pdfDocument->get_Pages()->Accept(textFragmentAbsorber);

// รับเศษข้อความที่แยกออกมา
auto textFragmentCollection = textFragmentAbsorber->get_TextFragments();

// วนรอบชิ้นส่วน
for (auto textFragment : textFragmentCollection)
{
	// ปรับปรุงข้อความและคุณสมบัติอื่นๆ
	textFragment->set_Text(u"UPDATED TEXT");
	textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
	textFragment->get_TextState()->set_FontSize(22);
}

// บันทึกเอกสาร PDF ที่ได้
pdfDocument->Save(u"OutputDirectory\\UpdatedDocument.pdf");

C++ ค้นหาและแทนที่ข้อความในหน้า PDF เฉพาะ

อาจมีสถานการณ์ที่คุณต้องการค้นหาและแทนที่ข้อความในหน้าใดหน้าหนึ่งเท่านั้น แทนที่จะต้องการค้นหาทั้งเอกสาร สำหรับสิ่งนี้ ให้ยอมรับวัตถุ TextFragmentAbsorber สำหรับหน้าที่คุณต้องการแทนที่ข้อความ ต่อไปนี้เป็นขั้นตอนในการค้นหาและแทนที่ข้อความในหน้าเฉพาะในเอกสาร PDF

ต่อไปนี้คือโค้ดตัวอย่างสำหรับค้นหาและแทนที่ข้อความในหน้า PDF ที่ต้องการโดยใช้ C++

// โหลดไฟล์ PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.pdf");

// สร้างวัตถุ TextAbsorber เพื่อค้นหาอินสแตนซ์ทั้งหมดของวลีค้นหาที่ป้อน
auto textFragmentAbsorber = MakeObject<TextFragmentAbsorber>(u"Document");

// ยอมรับตัวดูดซับสำหรับหน้าที่สองของเอกสาร
pdfDocument->get_Pages()->idx_get(2)->Accept(textFragmentAbsorber);

// รับเศษข้อความที่แยกออกมา
auto textFragmentCollection = textFragmentAbsorber->get_TextFragments();

// วนรอบชิ้นส่วน
for (auto textFragment : textFragmentCollection)
{
	// ปรับปรุงข้อความและคุณสมบัติอื่นๆ
	textFragment->set_Text(u"UPDATED TEXT");
	textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
	textFragment->get_TextState()->set_FontSize(22);
}

// บันทึกเอกสาร PDF ที่เป็นผลลัพธ์
pdfDocument->Save(u"OutputDirectory\\UpdatedDocument2.pdf");

แทนที่ข้อความในขอบเขตของหน้า PDF โดยใช้ C++

แทนที่จะค้นหาทั้งหน้า คุณสามารถระบุพื้นที่ของหน้าที่คุณต้องการแทนที่ข้อความ สำหรับสิ่งนี้ API ให้คลาส Rectangle ต่อไปนี้เป็นขั้นตอนในการค้นหาและแทนที่ข้อความในส่วนเฉพาะของหน้า PDF

ต่อไปนี้คือโค้ดตัวอย่างสำหรับค้นหาและแทนที่ข้อความในพื้นที่หน้า PDF เฉพาะ

// โหลดไฟล์ PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.pdf");

// สร้างวัตถุ TextAbsorber เพื่อค้นหาอินสแตนซ์ทั้งหมดของวลีค้นหาที่ป้อน
auto textFragmentAbsorber = MakeObject<TextFragmentAbsorber>(u"Document");

// ค้นหาข้อความภายในขอบเขตหน้า
textFragmentAbsorber->get_TextSearchOptions()->set_LimitToPageBounds(true);

// ระบุพื้นที่หน้าสำหรับ TextSearchOptions
textFragmentAbsorber->get_TextSearchOptions()->set_Rectangle(MakeObject<Rectangle>(100, 100, 800, 700));

// ยอมรับตัวดูดซับสำหรับหน้าแรกของเอกสาร
pdfDocument->get_Pages()->idx_get(1)->Accept(textFragmentAbsorber);

// รับเศษข้อความที่แยกออกมา
auto textFragmentCollection = textFragmentAbsorber->get_TextFragments();

// วนรอบชิ้นส่วน
for (auto textFragment : textFragmentCollection)
{
	// ปรับปรุงข้อความและคุณสมบัติอื่นๆ
	textFragment->set_Text(u"UPDATED TEXT");
	textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
	textFragment->get_TextState()->set_FontSize(22);
}

// บันทึกเอกสาร PDF ที่เป็นผลลัพธ์
pdfDocument->Save(u"OutputDirectory\\UpdatedDocument.pdf");

ค้นหาและแทนที่ข้อความในไฟล์ PDF โดยใช้ Regular Expressions

Aspose.PDF for C++ ยังให้ความสามารถในการค้นหาข้อความโดยใช้นิพจน์ทั่วไป ด้วยนิพจน์ทั่วไป คุณสามารถค้นหาข้อความ เช่น ที่อยู่อีเมลหรือหมายเลขโทรศัพท์ เป็นต้น สำหรับสิ่งนี้ คุณต้องระบุนิพจน์ทั่วไปแทนสตริงการค้นหา และใช้คลาส TextSearchOptions เพื่อระบุว่าคุณกำลังใช้นิพจน์ทั่วไป การแสดงออกสำหรับการค้นหา ต่อไปนี้เป็นขั้นตอนในการค้นหาและแทนที่ข้อความในไฟล์ PDF โดยใช้นิพจน์ทั่วไป

ต่อไปนี้คือโค้ดตัวอย่างสำหรับค้นหาและแทนที่ข้อความในไฟล์ PDF โดยใช้นิพจน์ทั่วไป

// โหลดไฟล์ PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 2.pdf");

// สร้างวัตถุ TextAbsorber เพื่อค้นหาอินสแตนซ์ทั้งหมดของวลีค้นหาที่ป้อน
auto textFragmentAbsorber = MakeObject<TextFragmentAbsorber>(u"\\d{4} - \\d{4}"); // Like 1999-2000

// ตั้งค่าตัวเลือกการค้นหาข้อความเพื่อเปิดใช้งานการใช้นิพจน์ทั่วไป
auto textSearchOptions = MakeObject<TextSearchOptions>(true);
textFragmentAbsorber->set_TextSearchOptions(textSearchOptions);

// รับตัวดูดซับสำหรับทุกหน้าของเอกสาร
pdfDocument->get_Pages()->Accept(textFragmentAbsorber);

// รับเศษข้อความที่แยกออกมา
auto textFragmentCollection = textFragmentAbsorber->get_TextFragments();

// วนรอบชิ้นส่วน
for (auto textFragment : textFragmentCollection)
{
	// ปรับปรุงข้อความและคุณสมบัติอื่นๆ
	textFragment->set_Text(u"UPDATED TEXT");
	textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
	textFragment->get_TextState()->set_FontSize(22);
}

// บันทึกเอกสาร PDF ที่เป็นผลลัพธ์
pdfDocument->Save(u"OutputDirectory\\UpdatedDocument.pdf");

รับใบอนุญาตฟรี

คุณสามารถลองใช้ API ได้โดยไม่มีข้อจำกัดในการประเมินโดยขอ ใบอนุญาตชั่วคราวฟรี

บทสรุป

ในบทความนี้ คุณได้เรียนรู้วิธีค้นหาและแทนที่ข้อความในไฟล์ PDF โดยใช้ C++ คุณได้เห็นวิธีการแทนที่ข้อความในเอกสาร PDF ทั้งหน้า หน้า PDF เฉพาะ หรือพื้นที่เฉพาะของหน้า นอกจากนี้ คุณได้เรียนรู้วิธีค้นหาและแทนที่ข้อความโดยใช้นิพจน์ทั่วไป Aspose.PDF for C++ เป็น API ที่ทรงพลังพร้อมคุณสมบัติเพิ่มเติมมากมายที่ทำให้การทำงานกับเอกสาร PDF เป็นเรื่องง่าย คุณสามารถสำรวจ API โดยละเอียดได้โดยใช้ เอกสารอย่างเป็นทางการ หากคุณมีคำถามใดๆ โปรดติดต่อเราได้ที่ ฟอรัม

ดูสิ่งนี้ด้วย