Futorial

Fu-styled tutorial
See also: Other Geeks@INDC

Meng-ekstrak teks dari file PDF

Misalkan kita punya file PDF (bernama Source.pdf) seperti ini

image

Nah, kemudian kita mau ambil isi teksnya. Ada library yang free (namun tidak sempurna, nanti akan saya beritahu alasannya) yang bisa mengambil teks dari pdf kemudian menyimpannya dalam file txt. Library tersebut bisa di-download di http://www.codeproject.com/KB/cs/PDFToText.aspx. Di halaman tersebut, download baik source files maupun demo project.

Setelah download, ekstrak dua file zip tersebut. Di dalam PDFToText_bin.zip, ada file itextsharp.dll dan SharpZipLib.dll. Nah, dua file ini yang akan kita jadikan reference ke project kita. Kemudian di dalam PDFToText_src.zip, ada file PDFParser.cs yang nanti akan kita add (existing item) ke project kita.

Oke, sekarang ke contoh project. Misalkan kita buat sebuah aplikasi WPF (pertama-tama dengan menggunakan Ekspression Blend, tentunya).

image

Buatlah sebuah Button dan sebuah TextBlock pada Window1 (di dalam LayoutRoot).

image

Percantiklah tampilan (mohon maklum kalau tampilan yang saya buat nggak cantik ya..)

image

 

Kemudian, klik kiri di tombol Ekstrak, setelah itu di window Properties, klik icon Events image

Di pilihan Events, double-click text box di sebelah Click.

image

Sekarang kita beralih ke Visual Studio (yang terbuka secara otomatis gara-gara kita double-click tadi). Nah, sebelum ngapa-ngapain di Visual Studio, lakukan langkah-langkah berikut:

  1. Add reference ke itextsharp.dll dan SharpZipLib.dll yang ada di dalam PDFToText_bin.zip.
  2. Add existing item ke file PDFParser.cs yang ada di dalam PDFToText_src.zip.
  3. Add existing item ke file pdf yang akan kita ekstrak isinya, yaitu Source.pdf.

Berikut screen-shot nya…

Add reference

image

image

 

 

Add existing item

image

image

Nahh, kalau step-step tadi udah selesai, berarti di Solution Explorer akan tampil seperti ini:

image

Gunakan cara yang sama untuk menambahkan file Source.pdf. Namun, agar file Source.pdf ter-copy secara otomatis ke folder bin\Debug, maka kita harus memilih “Copy always” pada pilihan Copy to Output Directory. Caranya, klik kiri Source.pdf yang ada di Solution Explorer, kemudian di window Properties, set properti Copy to Output Directory menjadi Copy Always.

image 

Setelah itu, buka Window1.xaml. TextBlock kita belum punya nama. Beri nama TextBlock kita dengan textBlockResult. Caranya, klik kiri TextBlock kemudian isi property Name di window Properties.

image

Oke.. sekarang kita menuju code. Buka Window1.xaml.cs (sebenernya udah kebuka dari tadi sih..). Pertama-tama, kita import dulu namespace System.IO dan PdfToText.

using System.IO;
using PdfToText;

Di dalam handler-nya button click, atau dengan kata lain di method Button_Click yang dibuatin dari sananya, tuliskan code berikut:

//Ekstrak isi teks di Source.pdf kemudian menyimpannya dalam Result.txt

PDFParser pdfParser = new PDFParser();
pdfParser.ExtractText("Source.pdf", "Result.txt");

//Supaya teks di dalam Result.txt tertulis di text block

TextReader reader = new StreamReader("Result.txt");
textBlockResult.Text = reader.ReadLine();

Nahh, coba sekarang kita test hasilnya.

image

Klik tombol Ekstrak, maka inilah hasilnya:

image

Nahh… hasilnya bagus kalau kebetulan teksnya sederhana. Kalau agak rumit.. misalnya isi pdf nya seperti ini:

image

Maka, tidak ada teks yang berhasil diambil barang sehuruf pun..

Ada yang punya solusinya?

Sumber: http://www.codeproject.com/KB/cs/PDFToText.aspx

Share this post: | | | |

Comments

Futorial said:

Pertama-tama, kunjungi halaman www.winnovative-software.com/download.aspx . Di situ, scroll down

# January 9, 2009 7:25 PM

LonTonG said:

blog (theme) mas Fuady keren eui.

Nice & clean. Two thumbs up!

# January 10, 2009 7:24 AM

Fuady Rosma Hidayat said:

@LonTong

Thank you! ^_^

# January 12, 2009 9:59 AM

winarz said:

gimana caranya menyimpan foto ke dalam database. yang mana file fotonya di ambil menggunakan "openfiledialog"? Terima kasih sebelumnya

# April 14, 2009 8:40 AM