Ekstrak Teks Menggunakan Perangkat Teks
Perkenalan
Mengekstrak teks dari PDF bisa jadi sulit, terutama saat menangani dokumen yang memiliki berbagai format, font tertanam, atau tata letak yang rumit. Namun dengan Aspose.PDF untuk .NET, proses ini menjadi mudah! Baik Anda ingin mengonversi halaman PDF menjadi teks biasa untuk analisis lebih lanjut atau sekadar perlu mengekstrak bagian tertentu, Aspose.PDF siap membantu Anda. Dalam tutorial ini, kami akan menguraikan langkah demi langkah cara mengekstrak teks dari PDF menggunakan kelas TextDevice di Aspose.PDF. Kami juga akan memberikan penjelasan yang jelas, sehingga Anda dapat menerapkan metode yang sama ke proyek Anda sendiri dengan mudah.
Prasyarat
Sebelum kita mulai membuat kode, pastikan Anda telah menyiapkan semua yang diperlukan untuk mengikuti langkah-langkah ini. Berikut ini yang Anda perlukan:
- Aspose.PDF untuk .NET: Unduh versi terbaru dariHalaman unduhan Aspose.PDF untuk .NET.
- Lingkungan Pengembangan: Visual Studio atau lingkungan pengembangan C# lainnya.
- .NET Framework: Pastikan proyek Anda menargetkan .NET Framework 4.x atau yang lebih tinggi.
- Input File PDF: File PDF yang akan Anda gunakan untuk mengekstrak teks. Tempatkan ini di direktori di komputer Anda (kami akan menyebutnya sebagai
YOUR DOCUMENT DIRECTORY
).
Paket Impor
Di bagian atas kode Anda, Anda perlu mengimpor namespace yang diperlukan untuk bekerja dengan Aspose.PDF:
using System.IO;
using Aspose.Pdf;
using Aspose.Pdf.Text;
using Aspose.Pdf.Devices;
using System;
using System.Text;
Langkah 1: Muat Dokumen PDF Anda
Sebelum mengekstrak teks, kita perlu memuat dokumen PDF ke dalam memori. Pada langkah ini, Anda akan membuka PDF Anda menggunakan Aspose.PDF.Document
kelas. Ini akan memungkinkan Anda mengakses semua halaman dan konten dalam berkas tersebut.
// Tentukan jalur ke dokumen PDF Anda
string dataDir = "YOUR DOCUMENT DIRECTORY";
// Muat dokumen PDF
Document pdfDocument = new Document(dataDir + "input.pdf");
Di sini, kami menggunakanDocument pdfDocument = new Document(dataDir + "input.pdf");
untuk memuat PDF.dataDir
variabel menyimpan jalur direktori berkas PDF Anda. Ini akan memberi kita akses ke seluruh dokumen, yang memungkinkan kita untuk mengulang halaman dan mengekstrak konten.
Langkah 2: Siapkan Pembuat String untuk Penyimpanan Teks
Sekarang dokumen sudah dimuat, kita perlu cara untuk menyimpan teks yang diekstrak. Untuk ini, kita akan menggunakanStringBuilder
yang memungkinkan penggabungan string secara efisien.
// StringBuilder untuk menampung teks yang diekstraksi
StringBuilder builder = new StringBuilder();
Kami menginisialisasikanStringBuilder
contoh, yang akan mengumpulkan teks yang diekstrak dari setiap halaman. Ini adalah cara yang lebih efisien untuk menangani string besar dibandingkan dengan penggabungan string biasa dalam satu loop.
Langkah 3: Ulangi Melalui Halaman PDF
Selanjutnya, kami mengulang setiap halaman dokumen PDF untuk mengekstrak teks. Kami akan memproses setiap halaman secara individual menggunakanTextDevice
kelas, yang bertanggung jawab untuk mengubah konten PDF ke format teks.
// Ulangi semua halaman dalam PDF
foreach (Page pdfPage in pdfDocument.Pages)
{
// Memproses setiap halaman untuk ekstraksi teks
}
Loop ini melewati setiap halaman PDF (pdfDocument.Pages
). Untuk setiap halaman, kami akan mengekstrak teks dan menambahkannya keStringBuilder
.
Langkah 4: Ekstrak Teks dari Setiap Halaman
Sekarang, kita akan mengatur proses ekstraksi teks untuk setiap halaman. Di sini, kita akan membuatTextDevice
objek dan menggunakannya untuk memproses halaman PDF.TextDevice
mengekstrak teks mentah atau yang diformat berdasarkan opsi ekstraksi yang kami tetapkan.
using (MemoryStream textStream = new MemoryStream())
{
// Buat perangkat teks untuk ekstraksi teks
TextDevice textDevice = new TextDevice();
// Atur opsi ekstraksi teks ke mode 'Murni'
TextExtractionOptions textExtOptions = new TextExtractionOptions(TextExtractionOptions.TextFormattingMode.Pure);
textDevice.ExtractionOptions = textExtOptions;
//Ekstrak teks dari halaman saat ini dan simpan ke aliran memori
textDevice.Process(pdfPage, textStream);
// Ubah aliran memori menjadi teks
string extractedText = Encoding.Unicode.GetString(textStream.ToArray());
// Tambahkan teks yang diekstrak ke StringBuilder
builder.Append(extractedText);
}
TextDevice textDevice = new TextDevice();
: : ItuTextDevice
kelas digunakan untuk mengekstrak teks dari PDF.TextExtractionOptions textExtOptions = new TextExtractionOptions(TextExtractionOptions.TextFormattingMode.Pure);
: Opsi ini mengekstrak teks mentah tanpa mempertahankan format apa pun seperti font atau posisi. Anda juga dapat menggunakanTextFormattingMode.Raw
jika Anda memerlukan kontrol lebih lanjut atas pemformatan.textDevice.Process(pdfPage, textStream);
: Ini memproses setiap halaman PDF dan menyimpan teks yang diekstraksi dalamMemoryStream
.- Terakhir, kita mengkonversi teks dari
MemoryStream
ke string dan menambahkannya keStringBuilder
.
Langkah 5: Simpan Teks yang Diekstrak ke File
Setelah memproses semua halaman, teks disimpan diStringBuilder
Langkah terakhir adalah menyimpan teks yang diekstrak ini ke dalam sebuah berkas.
// Tentukan jalur keluaran untuk file teks
dataDir = dataDir + "input_Text_Extracted_out.txt";
// Simpan teks yang diekstrak ke dalam file
File.WriteAllText(dataDir, builder.ToString());
Console.WriteLine("\nText extracted successfully from PDF document.\nFile saved at " + dataDir);
File.WriteAllText(dataDir, builder.ToString());
: Ini menulis seluruh kontenStringBuilder
ke dalam berkas teks.- Jalur untuk file keluaran diatur dengan menambahkan nama file (
"input_Text_Extracted_out.txt"
) kedataDir
jalur.
Kesimpulan
Mengekstrak teks dari PDF menggunakan Aspose.PDF untuk .NET merupakan proses yang sederhana dan efisien. Dengan mengikuti langkah-langkah yang diuraikan dalam panduan ini, Anda dapat dengan mudah membuka dokumen PDF, menelusuri halaman, dan mengekstrak teks ke dalam berkas teks. Hal ini sangat berguna untuk memproses data PDF dalam jumlah besar, melakukan analisis teks, atau mengonversi dokumen untuk manipulasi lebih lanjut.
Dengan Aspose.PDF, Anda tidak terbatas pada ekstraksi teks—Anda dapat menangani anotasi, memanipulasi gambar, atau bahkan mengonversi PDF ke format lain seperti HTML atau Word. Fleksibilitas dan kekuatan pustaka ini menjadikannya alat yang sangat berharga untuk manajemen PDF dalam aplikasi .NET.
Pertanyaan yang Sering Diajukan
Bisakah Aspose.PDF mengekstrak teks dari PDF berbasis gambar?
Tidak, Aspose.PDF dirancang untuk mengekstrak teks dari PDF berbasis konten. Untuk PDF berbasis gambar, diperlukan teknologi OCR.
Apakah Aspose.PDF mempertahankan format saat mengekstrak teks?
Secara default, teks diekstraksi tanpa pemformatan, tetapi Anda dapat menyesuaikan opsi ekstraksi jika Anda ingin mempertahankan beberapa pemformatan.
Bisakah saya mengekstrak teks dari rentang halaman tertentu?
Ya, Anda dapat mengubah kode agar mengulang rentang halaman tertentu, bukan semua halaman.
Apa saja mode ekstraksi teks di Aspose.PDF?
Aspose.PDF menyediakan dua mode: Raw dan Pure. Mode Raw mencoba mempertahankan tata letak asli, sedangkan mode Pure hanya mengekstrak teks tanpa pemformatan.
Apakah Aspose.PDF untuk .NET kompatibel dengan .NET Core?
Ya, Aspose.PDF untuk .NET sepenuhnya kompatibel dengan .NET Core dan .NET Framework.