Adakah yang bisa merekomendasikan perpustakaan / API untuk mengekstraksi teks dan gambar dari PDF? Kita harus dapat melihat teks yang terdapat di wilayah dokumen yang diketahui sebelumnya, sehingga API akan perlu memberi kami informasi posisi setiap elemen pada halaman.
Kami ingin agar data menjadi keluaran xml
atau json
format. Kami sedang melihat PdfTextStream yang tampaknya cukup bagus, tetapi ingin mendengar pengalaman dan saran orang lain.
Apakah ada alternatif (komersial atau gratis) untuk mengekstraksi teks dari pdf secara programatik?
pdf
text
ghostscript
extraction
text-extraction
Budda007
sumber
sumber
/^\s*\[?\((.*?)\)\]?\s*T[Jj]/mg
. Itu hanya mencari operator Tj / TJ, yang menunjukkan semua teks normal dalam PDF.Jawaban:
Saya diberi file pdf 400 halaman dengan tabel data yang harus saya impor - untungnya tidak ada gambar. Ghostscript bekerja untuk saya:
gswin64c -sDEVICE=txtwrite -o output.txt input.pdf
File keluaran dibagi menjadi beberapa halaman dengan tajuk, dll., Tetapi kemudian mudah untuk menulis aplikasi untuk menghapus baris kosong, dll, dan menyedot semua 30.000 catatan.
-dSIMPLE
dan-dCOMPLEX
tidak ada perbedaan dalam hal ini.sumber
gs
bukangswin64c
. Bekerja dengan sempurna. Tidak ada omong kosong berbayar yang dipatenkan. Itu hanya bekerja.-sDEVICE=txtwrite
harus dilakukan Saya tidak mengerti banyak setelah membaca Cara Menggunakan Ghostscript | Memilih perangkat keluarangswin64c -sDEVICE=txtwrite -o- input.pdf
. Sumber (sedikit berubah oleh saya): gist.github.com/drmohundro/560d72ed06baaf16f191ee8be34526acSejak hari ini saya mengetahuinya: hal terbaik untuk ekstraksi teks dari PDF adalah TET, toolkit ekstraksi teks . TET adalah bagian dari rangkaian produk PDFlib.com.
PDFlib.com adalah perusahaan Thomas Merz. Jika Anda tidak mengenali namanya: Thomas Merz adalah penulis "PostScript dan PDF Bible".
Inkarnasi pertama TET adalah perpustakaan . Yang satu itu mungkin dapat melakukan semua yang diinginkan Budda006, termasuk informasi posisi tentang setiap elemen pada halaman. Oh, dan itu juga bisa mengekstrak gambar. Ini menggabungkan gambar yang terfragmentasi menjadi potongan-potongan.
pdflib.com juga menawarkan inkarnasi lain dari teknologi ini, plugin TET untuk Acrobat . Dan inkarnasi ketiga adalah PDFlib TET iFilter . Ini adalah alat mandiri untuk desktop pengguna. Keduanya gratis (seperti bir) untuk digunakan untuk keperluan pribadi, non-komersial.
Dan itu sangat kuat. Jauh lebih baik daripada ekstraksi teks Adobe sendiri. Ini mengekstraksi teks untuk saya di mana alat lain (termasuk Adobe) memang memuntahkan sampah saja.
Saya baru saja menguji alat standalone desktop, dan apa yang mereka katakan di halaman web mereka benar. Ini memiliki commandline yang sangat bagus. Beberapa file tes PDF "bermasalah" saya yang ditangani alat ini dengan kepuasan penuh.
Hal ini akan menjadi rekomendasi saya untuk setiap persyaratan ekstraksi teks PDF yang canggih dan menantang.
TET sangat mengagumkan. Mendeteksi tabel. Di dalam tabel, ini mengidentifikasi sel yang mencakup beberapa kolom. Ini mengidentifikasi baris tabel dan konten dari setiap sel tabel secara terpisah. Ini berurusan dengan sangat baik dengan tanda hubung: menghilangkan tanda hubung dan mengembalikan kata lengkap. Ini mendukung bahasa non-ASCII (termasuk CJK, Arab dan Ibrani). Saat menemukan ligatur, mengembalikan karakter asli ...
Cobalah.
sumber
Alat baris perintah yang efisien, sumber terbuka, bebas biaya apa pun, tersedia di linux & windows: cukup bernama pdftotext. Alat ini adalah bagian dari perpustakaan xpdf.
http://en.wikipedia.org/wiki/Pdftotext
sumber
-layout
sakelar untuk menyimpan tabel, bekerja dengan cukup baik.Untuk python, ada PDFMiner dan pyPDF2 . Untuk informasi lebih lanjut tentang ini, lihat modul Python untuk mengkonversi PDF ke teks .
sumber
Ini saran saya. Jika Anda ingin mengekstraksi teks dari PDF, Anda dapat mengimpor file pdf ke Google Documents, lalu mengekspornya ke format yang lebih ramah seperti .html, .odf, .rtf, .txt, dll. Semua ini menggunakan Drive API . Gratis * dan tangguh. Melihat:
https://developers.google.com/drive/v2/reference/files/insert https://developers.google.com/drive/v2/reference/files/get
Karena ini adalah API lainnya, ini kompatibel dengan SEMUA bahasa pemrograman. Tautan yang saya poskan di atas memiliki contoh yang berfungsi untuk banyak bahasa termasuk: Java, .NET, Python, PHP, Ruby, dan lainnya.
Saya harap ini membantu.
sumber
PdfTextStream (yang Anda katakan telah Anda lihat) sekarang gratis untuk aplikasi berulir tunggal. Menurut pendapat saya kualitasnya jauh lebih baik daripada perpustakaan lain (terutama untuk hal-hal seperti font yang tertanam funky, dll).
Atau, Anda harus melihat di Apache PDFBox , open source.
sumber
Pustaka Docotic.Pdf dapat digunakan untuk mengekstrak teks dari file PDF sebagai teks biasa atau sebagai kumpulan potongan teks dengan koordinat untuk setiap chunk.
Docotic.Pdf dapat digunakan untuk mengekstraksi gambar dari PDF juga.
Penafian: Saya bekerja untuk Bit Miracle.
sumber
Salah satu komentar di sini menggunakan gs di Windows. Saya juga sukses dengan Linux / OSX, dengan sintaks berikut:
Saya menggunakan
dSIMPLE
bukandCOMPLEX
karena yang terakhir menghasilkan 1 karakter per baris.sumber
Karena pertanyaannya secara khusus tentang alat alternatif untuk mendapatkan data dari PDF sebagai XML, maka Anda mungkin tertarik untuk melihat alat komersial "ByteScout PDF Extractor SDK" yang mampu melakukan hal ini: ekstrak teks dari PDF sebagai XML bersama dengan data pemosisian (x, y) dan informasi font:
Teks dalam sumber PDF:
Output XML:
PS: selain itu juga memecah teks menjadi struktur berbasis tabel.
Pengungkapan: Saya bekerja untuk ByteScout
sumber
Hal terbaik yang saat ini dapat saya pikirkan (dalam daftar alat "sederhana") adalah Ghostscript (versi saat ini adalah v.8.71) dan program utilitas PostScript
ps2ascii.ps
. Ghostscript mengirimkannya dalamlib
subdirektori. Coba ini (di Windows):Perintah ini memproses halaman 3-7 dari
input.pdf
. Baca komentar dalamps2ascii.ps
file itu sendiri untuk melihat apa arti angka "aneh" dan info tambahan tambahan ( menunjukkan string, posisi, lebar, warna, gambar, persegi panjang, font, dan page break ... ). Untuk mendapatkan output teks "sederhana", ganti-dCOMPLEX
bagian dengan-dSIMPLE
.sumber
ps2ascii book.pdf notes.txt
. Jika dokumen Anda didominasi ASCII, Anda beruntung.Saya tahu bahwa topik ini sudah cukup lama, tetapi kebutuhan ini masih hidup. Saya membaca banyak dokumen, forum, dan skrip dan membuat dokumen lanjutan baru yang mendukung pdf terkompresi dan tidak terkompresi:
https://gist.github.com/smalot/6183152
Dalam beberapa kasus, baris perintah dilarang karena alasan keamanan. Jadi kelas PHP asli dapat memenuhi banyak kebutuhan.
Semoga ini bisa membantu semua orang
sumber
Untuk ekstraksi gambar, pdfimages adalah alat baris perintah gratis untuk Linux atau Windows (win32):
pdfimages: Ekstrak dan Simpan Gambar Dari File Portable Document Format (PDF)
sumber
Apache pdfbox memiliki fitur ini - bagian teks dijelaskan dalam:
http://pdfbox.apache.org/apidocs/org/apache/pdfbox/util/PDFTextStripper.html
untuk contoh implementasi, lihat https://github.com/WolfgangFahl/pdfindexer
testcase TestPdfIndexer.testExtracting menunjukkan cara kerjanya
sumber
QuickPDF tampaknya menjadi perpustakaan yang masuk akal yang harus melakukan apa yang Anda inginkan dengan harga yang wajar.
http://www.quickpdflibrary.com/ - Mereka memiliki uji coba 30 hari.
sumber
Pada sistem Macintosh saya, saya menemukan bahwa "Adobe Reader" melakukan pekerjaan yang cukup baik. Saya membuat alias di Desktop saya yang menunjuk ke "Adobe Reader.app", dan semua yang saya lakukan adalah menjatuhkan file pdf pada alias, yang menjadikannya dokumen aktif di Adobe Reader, dan kemudian dari menu File, Saya memilih "Simpan sebagai Teks ...", berikan nama dan tempat untuk menyimpannya, klik "Simpan", dan saya selesai.
sumber