Sorot Karakter Dalam File PDF

Perkenalan

Saat bekerja dengan PDF, kebutuhan untuk menyorot teks atau karakter sering muncul—baik untuk tujuan akademis, penyuntingan, atau sekadar meningkatkan keterbacaan. Bayangkan Anda memiliki dokumen yang indah, tetapi Anda ingin menekankan bagian-bagian tertentu. Di situlah penyorotan berperan! Dalam tutorial ini, kita akan menyelami cara menyorot karakter dalam file PDF menggunakan pustaka Aspose.PDF for .NET yang canggih.

Prasyarat

Sebelum kita mulai membuat kode, mari kita pastikan kita memiliki semua yang kita butuhkan. Berikut ini yang akan Anda perlukan:

  1. Lingkungan Pengembangan: Tutorial ini mengasumsikan Anda bekerja di Visual Studio atau IDE .NET serupa.
  2. Aspose.PDF untuk Pustaka .NET: Jika Anda belum melakukannya, Anda dapatunduh disini dan menambahkannya ke proyek Anda.
  3. Pengetahuan Dasar C#: Pengenalan pemrograman C# akan membantu Anda memahami implementasinya dengan mudah.
  4. Dokumen PDF: Anda harus memiliki contoh berkas PDF yang siap digunakan. Anda dapat membuat satu atau memanfaatkan dokumen yang sudah ada.

Mengimpor Paket

Untuk memulai, kita perlu mengimpor namespace yang diperlukan. Untuk melakukannya, Anda perlu menyertakannya di bagian atas berkas C# Anda:

using System.IO;
using Aspose.Pdf;
using Aspose.Pdf.Facades;
using Aspose.Pdf.Devices;
using Aspose.Pdf.Text;
using System;
using System.Drawing;

Paket-paket ini penting untuk membuat, memanipulasi, dan memproses dokumen PDF menggunakan pustaka Aspose.

Sekarang, mari kita uraikan prosesnya menjadi langkah-langkah yang mudah dipahami untuk menyorot karakter dalam PDF Anda.

Langkah 1: Inisialisasi Dokumen PDF

Langkah pertama adalah menginisialisasi dokumen PDF Anda. Ini melibatkan pemuatan berkas PDF yang akan Anda gunakan. Berikut cara melakukannya:

string dataDir = "YOUR DOCUMENT DIRECTORY"; // Pastikan untuk mengatur jalur yang benar.
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document(dataDir + "input.pdf");

Dalam cuplikan ini, gantiYOUR DOCUMENT DIRECTORY dengan jalur sebenarnya pada mesin Anda tempat file PDF input Anda berada.Aspose.Pdf.Document kelas dibuat untuk memuat PDF Anda.

Langkah 2: Siapkan Proses Rendering

Selanjutnya, kita perlu menyiapkan proses rendering untuk dokumen kita. Ini penting untuk menyorot karakter-karakter pada halaman secara akurat.

int resolution = 150; // Atur resolusi untuk pengambilan gambar.
using (MemoryStream ms = new MemoryStream())
{
    PdfConverter conv = new PdfConverter(pdfDocument);
    conv.Resolution = new Resolution(resolution, resolution);
    conv.GetNextImage(ms, System.Drawing.Imaging.ImageFormat.Png);
    Bitmap bmp = (Bitmap)Bitmap.FromStream(ms);

Kami menentukan resolusi untuk kejelasan, yang memungkinkan teks ditampilkan dengan benar.PdfConvertermengubah halaman PDF menjadi gambar sehingga kita dapat menggambar di atasnya.

Langkah 3: Buat Objek Grafik untuk Menggambar

Setelah menyiapkan proses menggambar, kita perlu membuat objek grafik tempat kita akan melakukan penyorotan:

using (System.Drawing.Graphics gr = System.Drawing.Graphics.FromImage(bmp))
{
    float scale = resolution / 72f; // Faktor skala.
    gr.Transform = new System.Drawing.Drawing2D.Matrix(scale, 0, 0, -scale, 0, bmp.Height);

Di sini, kita membuat objek grafis dari gambar bitmap. Transformasi membantu menyesuaikan rendering agar sesuai dengan resolusi yang dibutuhkan dengan tepat.

Langkah 4: Ulangi Setiap Halaman dan Sorot Teks

Sekarang, mari kita telusuri setiap halaman dalam PDF dan temukan fragmen teks yang ingin kita soroti:

for (int i = 0; i < pdfDocument.Pages.Count; i++)
{
    Page page = pdfDocument.Pages[i + 1]; // Halaman diindeks 1 di Aspose.
    TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber(@"[\S]+");
    textFragmentAbsorber.TextSearchOptions.IsRegularExpressionUsed = true;
    page.Accept(textFragmentAbsorber);

Kami mengakses setiap halaman dan mencari semua teks menggunakanTextFragmentAbsorber Pola ekspresi reguler@"[\S]+" menangkap semua karakter selain spasi.

Langkah 5: Ekstrak Fragmen Teks dan Sorot

Sekarang saatnya mengekstrak fragmen teks dan menyorotnya. Proses ini melibatkan penggambaran persegi panjang di sekitar karakter yang ingin kita soroti:

TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;

foreach (TextFragment textFragment in textFragmentCollection)
{
    // Menyorot logika di sini
    for (int segNum = 1; segNum <= textFragment.Segments.Count; segNum++)
    {
        TextSegment segment = textFragment.Segments[segNum];
        for (int charNum = 1; charNum <= segment.Characters.Count; charNum++)
        {
            CharInfo characterInfo = segment.Characters[charNum];
            gr.DrawRectangle(Pens.Black, 
                (float)characterInfo.Rectangle.LLX, 
                (float)characterInfo.Rectangle.LLY, 
                (float)characterInfo.Rectangle.Width, 
                (float)characterInfo.Rectangle.Height);
        }
    }
}

Kita mengulang setiap fragmen teks, segmen-segmennya, dan karakter-karakter individual, menggambar persegi panjang di sekelilingnya menggunakan objek grafik yang telah dibuat sebelumnya.

Langkah 6: Simpan Gambar yang Dimodifikasi

Setelah menyorot, Anda perlu menyimpan gambar yang dihasilkan sebagai file PNG baru:

dataDir = dataDir + "HighlightCharacterInPDF_out.png";
bmp.Save(dataDir, System.Drawing.Imaging.ImageFormat.Png);

Baris ini menyimpan gambar bitmap yang dimodifikasi sebagai berkas PNG di direktori yang ditentukan.

Langkah 7: Akhiri dengan Penanganan Pengecualian

Terakhir, sebaiknya Anda membungkus kode Anda dalam blok try-catch, untuk memastikan bahwa kami menangani kesalahan tak terduga dengan baik:

catch (Exception ex)
{
    Console.WriteLine(ex.Message + "\nThis example will only work if you apply a valid Aspose License. You can purchase full license or get a 30-day temporary license from [here](https://pembelian.aspose.com/temporary-license/).");
}

Blok ini menangkap setiap pengecualian yang mungkin terjadi selama proses dan memberikan umpan balik informatif kepada pengguna.

Kesimpulan

Nah, itu dia! Anda telah berhasil menyorot karakter dalam file PDF menggunakan Aspose.PDF untuk .NET. Pustaka canggih ini membuka pintu bagi kemungkinan tak terbatas dalam manipulasi PDF—baik saat Anda bekerja dengan anotasi, pengisian formulir, atau bahkan konversi dokumen. Saat Anda melanjutkan perjalanan dengan Aspose, ingatlah bahwa latihan adalah kuncinya. Teruslah bereksperimen dengan berbagai fitur, dan Anda akan segera menjadi ahli PDF!

Pertanyaan yang Sering Diajukan

Apa itu Aspose.PDF untuk .NET?

Aspose.PDF untuk .NET adalah pustaka yang memungkinkan pembuatan, manipulasi, dan konversi dokumen PDF secara terprogram dalam aplikasi .NET.

Bisakah saya menyorot beberapa fragmen teks sekaligus?

Ya, kode yang disediakan dapat disesuaikan untuk menyorot beberapa fragmen dengan melakukan pengulangan pada semua teks dalam PDF.

Apakah ada versi gratis Aspose.PDF?

Ya, Aspose menawarkan uji coba gratis, jadi Anda dapat menguji pustaka sebelum membeli.

Apakah saya memerlukan lisensi untuk menggunakan Aspose.PDF?

Ya, lisensi yang valid diperlukan untuk penggunaan komersial, tetapi Anda dapat memperoleh lisensi sementara selama 30 hari untuk pengujian.

Di mana saya dapat menemukan dokumentasi lebih lanjut?

Anda dapat merujuk keDokumentasi Aspose.PDF untuk informasi lebih rinci tentang implementasi dan fitur.