Temukan dan Ganti Teks dalam PDF menggunakan C++

PDF adalah format populer yang banyak digunakan untuk berbagi dokumen antara organisasi dan individu. Mungkin ada skenario di mana Anda harus mencari dan mengganti beberapa teks dalam dokumen PDF sebelum dibagikan. Anda dapat melakukannya secara manual, tetapi akan memakan waktu lebih lama dan kurang efisien. Opsi yang lebih baik dan lebih cepat adalah melakukan ini secara terprogram. Pada artikel ini, Anda akan mempelajari cara mencari dan mengganti teks dalam file PDF menggunakan C++.

C++ API untuk Menemukan dan Mengganti Teks dalam file PDF

Aspose.PDF for C++ adalah library C++ untuk bekerja dengan file PDF. Ini menyediakan banyak fitur yang membantu Anda mengotomatiskan berbagai aspek alur kerja PDF Anda. Salah satu fitur tersebut adalah menemukan dan mengganti teks dalam file PDF. Anda dapat menginstal API melalui NuGet atau mengunduhnya langsung dari bagian unduhan.

PM> Install-Package Aspose.PDF.Cpp

Temukan dan Ganti Teks dalam PDF menggunakan C++

Aspose.PDF for C++ menyediakan kelas TextFragmentAbsorber untuk mencari teks dalam dokumen PDF. Anda menginisialisasi kelas ini dengan teks yang ingin Anda temukan dan menggunakannya untuk mengambil semua fragmen teks yang cocok. Setelah semua fragmen tersedia, Anda mengulanginya dan mengganti teksnya. Berikut langkah-langkah mencari dan mengganti teks pada file PDF menggunakan C++.

Berikut ini adalah contoh kode untuk mencari dan mengganti teks di seluruh file PDF menggunakan C++.

// Muat file PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.pdf");

// Buat objek TextAbsorber untuk menemukan semua contoh frase pencarian masukan
auto textFragmentAbsorber = MakeObject<TextFragmentAbsorber>(u"Document");

// Terima penyerap untuk semua halaman
pdfDocument->get_Pages()->Accept(textFragmentAbsorber);

// Dapatkan fragmen teks yang diekstraksi
auto textFragmentCollection = textFragmentAbsorber->get_TextFragments();

// Ulangi fragmen
for (auto textFragment : textFragmentCollection)
{
	// Perbarui teks dan properti lainnya
	textFragment->set_Text(u"UPDATED TEXT");
	textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
	textFragment->get_TextState()->set_FontSize(22);
}

// Simpan dokumen PDF yang dihasilkan.
pdfDocument->Save(u"OutputDirectory\\UpdatedDocument.pdf");

C ++ Temukan dan Ganti Teks di Halaman PDF Tertentu

Mungkin ada situasi di mana Anda hanya ingin mencari dan mengganti teks pada halaman tertentu daripada seluruh dokumen. Untuk ini, terima objek TextFragmentAbsorber untuk halaman tempat Anda ingin mengganti teks. Berikut adalah langkah-langkah untuk mencari dan mengganti teks pada halaman tertentu dalam dokumen PDF.

Berikut ini adalah contoh kode untuk mencari dan mengganti teks pada halaman PDF tertentu menggunakan C++.

// Muat file PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.pdf");

// Buat objek TextAbsorber untuk menemukan semua contoh frase pencarian masukan
auto textFragmentAbsorber = MakeObject<TextFragmentAbsorber>(u"Document");

// Terima penyerap untuk halaman kedua dokumen
pdfDocument->get_Pages()->idx_get(2)->Accept(textFragmentAbsorber);

// Dapatkan fragmen teks yang diekstraksi
auto textFragmentCollection = textFragmentAbsorber->get_TextFragments();

// Ulangi fragmen
for (auto textFragment : textFragmentCollection)
{
	// Perbarui teks dan properti lainnya
	textFragment->set_Text(u"UPDATED TEXT");
	textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
	textFragment->get_TextState()->set_FontSize(22);
}

// Simpan dokumen PDF yang dihasilkan.
pdfDocument->Save(u"OutputDirectory\\UpdatedDocument2.pdf");

Ganti Teks di Wilayah Halaman PDF menggunakan C++

Alih-alih mencari seluruh halaman, Anda dapat menentukan wilayah halaman tempat Anda ingin mengganti teks. Untuk ini, API menyediakan kelas Rectangle. Berikut adalah langkah-langkah untuk mencari dan mengganti teks di bagian tertentu halaman PDF.

Berikut ini adalah contoh kode untuk mencari dan mengganti teks di wilayah halaman PDF tertentu.

// Muat file PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.pdf");

// Buat objek TextAbsorber untuk menemukan semua contoh frase pencarian masukan
auto textFragmentAbsorber = MakeObject<TextFragmentAbsorber>(u"Document");

// teks pencarian dalam batas halaman
textFragmentAbsorber->get_TextSearchOptions()->set_LimitToPageBounds(true);

// tentukan wilayah halaman untuk TextSearchOptions
textFragmentAbsorber->get_TextSearchOptions()->set_Rectangle(MakeObject<Rectangle>(100, 100, 800, 700));

// Terima penyerap untuk halaman pertama dokumen
pdfDocument->get_Pages()->idx_get(1)->Accept(textFragmentAbsorber);

// Dapatkan fragmen teks yang diekstraksi
auto textFragmentCollection = textFragmentAbsorber->get_TextFragments();

// Ulangi fragmen
for (auto textFragment : textFragmentCollection)
{
	// Perbarui teks dan properti lainnya
	textFragment->set_Text(u"UPDATED TEXT");
	textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
	textFragment->get_TextState()->set_FontSize(22);
}

// Simpan dokumen PDF yang dihasilkan.
pdfDocument->Save(u"OutputDirectory\\UpdatedDocument.pdf");

Temukan dan Ganti Teks dalam file PDF menggunakan Ekspresi Reguler

Aspose.PDF for C++ juga menyediakan kemampuan untuk mencari teks menggunakan ekspresi reguler. Dengan ekspresi reguler, Anda dapat menemukan teks seperti alamat email atau nomor telepon, dll. Untuk ini, Anda harus menentukan ekspresi reguler alih-alih string pencarian dan menggunakan kelas TextSearchOptions untuk menunjukkan bahwa Anda menggunakan ekspresi reguler ekspresi untuk mencari. Berikut adalah langkah-langkah untuk mencari dan mengganti teks dalam file PDF menggunakan ekspresi reguler.

Berikut ini adalah contoh kode untuk mencari dan mengganti teks dalam file PDF menggunakan ekspresi reguler.

// Muat file PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 2.pdf");

// Buat objek TextAbsorber untuk menemukan semua contoh frase pencarian masukan
auto textFragmentAbsorber = MakeObject<TextFragmentAbsorber>(u"\\d{4} - \\d{4}"); // Like 1999-2000

// Setel opsi pencarian teks untuk mengaktifkan penggunaan ekspresi reguler
auto textSearchOptions = MakeObject<TextSearchOptions>(true);
textFragmentAbsorber->set_TextSearchOptions(textSearchOptions);

// Terima penyerap untuk semua halaman dokumen
pdfDocument->get_Pages()->Accept(textFragmentAbsorber);

// Dapatkan fragmen teks yang diekstraksi
auto textFragmentCollection = textFragmentAbsorber->get_TextFragments();

// Ulangi fragmen
for (auto textFragment : textFragmentCollection)
{
	// Perbarui teks dan properti lainnya
	textFragment->set_Text(u"UPDATED TEXT");
	textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
	textFragment->get_TextState()->set_FontSize(22);
}

// Simpan dokumen PDF yang dihasilkan.
pdfDocument->Save(u"OutputDirectory\\UpdatedDocument.pdf");

Dapatkan Lisensi Gratis

Anda dapat mencoba API tanpa batasan evaluasi dengan meminta lisensi sementara gratis.

Kesimpulan

Pada artikel ini, Anda telah mempelajari cara menemukan dan mengganti teks dalam file PDF menggunakan C++. Anda telah melihat cara mengganti teks di seluruh dokumen PDF, halaman PDF tertentu, atau wilayah halaman tertentu. Selanjutnya, Anda telah mempelajari cara mencari dan mengganti teks menggunakan ekspresi reguler. Aspose.PDF for C++ adalah API yang kuat dengan banyak fitur tambahan yang menjadikan bekerja dengan dokumen PDF sangat mudah. Anda dapat menjelajahi API secara mendetail dengan menggunakan dokumentasi resmi. Jika Anda memiliki pertanyaan, jangan ragu untuk menghubungi kami di forum.

Lihat juga