มีตัวแปลง PDF เป็นข้อความที่ดีกว่า pdftotext หรือไม่


63

ฉันใช้ pdftotext (ส่วนหนึ่งของ poppler-utils) เพื่อแปลงเอกสาร PDF เป็นข้อความ ส่วนใหญ่ใช้งานได้ แต่สิ่งหนึ่งที่ฉันหวังว่าจะทำได้คือการแทรกบรรทัดว่างระหว่างย่อหน้าที่แยกต่างหากแทนที่จะทำการบดเข้าด้วยกัน

มีวิธีรับ pdftotext ทำเช่นนี้? และถ้าไม่มีมียูทิลิตี pdf เป็นข้อความตัวอื่นที่สามารถทำได้หรือไม่


8
ในชื่อคุณพูดว่า "pdftotext" (ซึ่งเป็นส่วนหนึ่งของ poppler-utils) และในร่างกายคุณพูดว่า "pdt2text" (ซึ่งฉันไม่รู้) คุณหมายถึงอะไร
enzotib

คำถามที่คล้ายกันPDF to audio software for academic papers? softwarerecs.stackexchange.com/questions/10640/…
JinSnow

คำตอบ:


25

คุณสามารถลองebook-convertจากCaliber

ถ้ามีอะไรฉันจะบอกว่ามันผิดไปในทิศทางอื่น: มีการแบ่งบรรทัดมากเกินไป

อีกสิ่งหนึ่งที่ฉันคิดว่าแน่นอนคือการแปลงเป็น HTML โดยใช้pdfreflowแล้วแปลง HTML เป็น TXT


หมายเหตุ: ebook-convertไม่สามารถแปลงเค้าโครงหลายคอลัมน์ได้ แต่จะรวมคอลัมน์เป็นหนึ่งคอลัมน์ สำหรับเค้าโครงหลายคอลัมน์pdftotextให้ผลลัพธ์ที่ดีกว่ามาก ข้อ จำกัด ต่อไปจะอธิบายไว้ที่manual.calibre-ebook.com/conversion.html#convert-pdf-documents
asmaier

117

หากคุณกำลังใช้pdftotextคุณสามารถใช้การ-layoutตั้งค่าสถานะเพื่อรักษาเค้าโครงของข้อความบนหน้าในไฟล์ PDF อินพุตของคุณ:

pdftotext -layout input.pdf output.txt

6
นอกจากนี้ยังมีตารางสำหรับเค้าโครงตารางโดยเฉพาะใช้งานได้ดี
P.Windridge

3
@ P.Windridge ตัวเลือกของตารางนี้อยู่ที่ไหน ฉันหามันไม่เจอในเวอร์ชั่น 0.48.0 จาก poppler-utils ใน Ubuntu 17.04
gozzilli

2
@gozzilli นั่นเป็นวิธีการเก่า ๆ pdftotext ล่าสุด v4.00 ที่มีอยู่ในxpdf เครื่องมือ tarball ที่นี่
เอเดรียน

2
@gozzilli รุ่นที่ขึ้นต้นด้วย 0 ระบุว่ามันเป็นสาขา Popplers ของรหัสต้นฉบับของ Xpdf พวกเขาเริ่มหมายเลขรุ่นของพวกเขาเมื่อพวกเขาแยกรหัส ตอนนี้ทั้งสองกลุ่มดูเหมือนจะรักษาเครื่องมือ PDF เหล่านี้แยกต่างหาก
แอนดรู

1
@VivekSable คือจุด (พิกเซล) ที่ระบุ-r(ความละเอียด, ค่าเริ่มต้น 72 dpi)
vstepaniuk

14

ในฐานะที่เป็นแฟนของโอเพ่นซอร์ส (และระบบอัตโนมัติ) ฉันเกลียดที่จะพูดแบบนี้ แต่ผลลัพธ์ที่ดีที่สุดที่ฉันได้รับ (ใน PDF ที่ค่อนข้างใหญ่และซับซ้อน) คือการเปิดใน Adobe Reader จากนั้นเลือกไฟล์ | บันทึกเป็นข้อความ

(ฉันกำลังประมวลผลล่วงหน้าสำหรับการทดสอบการวิเคราะห์ข้อความไม่ใช่ผู้อ่าน แต่ฉันคิดว่าตัวเลือกแรกและตัวที่สองของฉันจะเหมือนกัน)

ฉันได้เปรียบเทียบผลลัพธ์แบบเคียงข้างกัน ตัวเลือกที่สองของฉันคือแปลง ebook

Adobe : ทิ้งไว้ใน FF สำหรับการแบ่งหน้าซ้ายในหมายเลขหน้าไม่ได้แปลงส่วนหัว / ย่อหน้าเป็นบรรทัดเดียว แต่มีเครื่องหมายยัติภังค์คงที่ ขยะที่ซ่อนอยู่ใน PDF ไม่ได้รับผลลัพธ์ มีตัวพิมพ์ใหญ่อย่างถูกต้องที่ส่วนเริ่มต้นเช่น "The" ไม่ใช่ "T he" หรือแม้แต่ "T he"

แปลง ebook : ทิ้งไว้ในหมายเลขหน้าและขยะบางส่วนที่ซ่อนอยู่ในส่วนหัว / ส่วนท้าย (แต่ไม่มี FFs) แปลงย่อหน้าส่วนใหญ่ให้เป็นบรรทัดเดียว สิ่งที่พลาดคือเว้นระยะห่างสองเท่า! สัญลักษณ์แสดงหัวข้อย่อยไม่ตรงกับข้อความเสมอ ได้รับ "The" ที่ถูกต้องในตอนเริ่มต้นของบท

pdftotext (ไม่มี --layout) : ไม่เลวกระสุนเข้าแถว แต่มีเสียงส่วนหัว / ท้ายกระดาษ มี FFs อยู่ในนั้น ลบยัติภังค์ บทที่ตัวอักษรตัวใหญ่สุดแย่ที่สุด: "T \ n \ nhe"

pdftotext (with --layout) : คล้ายกัน แต่เพิ่มการเยื้อง "T เขา" สำหรับการเริ่มต้นของบท

pdftohtml >> pdfreflow >> htmltotext : ลบหมายเลขหน้า แต่ยังคงขยะในส่วนหัว / ส่วนท้าย "T เขา" สำหรับการเริ่มต้นของบท ลบยัติภังค์ (มันใช้หลายบรรทัดต่อย่อหน้า แต่มันไม่ได้เป็นตัวแบ่งบรรทัดเดียวกันกับในเวอร์ชั่นอื่น!)


Acrobat reader 9 บน linux สร้างคำที่แบนในกรณีของฉัน ebook-convertทำงานได้ดี
ov7a

เราต้องการแอพ AI สำหรับสิ่งนั้นดูเหมือนว่าเหมาะสำหรับงานประเภทนั้น: ใครรู้หรือไม่
JinSnow

1
Adobe Reader ฟรี แต่ ... สำหรับอ่านไฟล์ PDF เท่านั้น สำหรับสิ่งอื่นที่คุณต้องจ่าย (สมัครสมาชิกรายเดือน) (Pdf to text ถูก จำกัด ไว้เพียงไม่กี่หน้า) ข้อความ Pdfto (หรือ xpdf on win) เหมาะสำหรับความต้องการของฉัน
JinSnow

สำหรับข้อมูลแบบตารางตอนนี้ควรใช้สวิตช์ -table "pdftotext - table_name.pdf output_name.txt"
Thom Ives

5

หากคุณมีบัญชี Google คุณสามารถใช้ Google เอกสารเพื่ออัปโหลด PDF และแปลงเป็นข้อความที่แก้ไขได้


1

ฉันยังลอง pypdf และเปรียบเทียบกับ pdftotext ในเอกสารสองฉบับ มีการแบ่งบรรทัดเพิ่มเติมและแยกชื่อบางส่วน (การอ้างอิงคือการอ้างอิง)

pdf2txt แสดงผลลัพธ์ขยะอย่างสมบูรณ์แล้ว

ฉันมักจะใช้ pdfBox (java) ถ้า pdftotext ขันสกรูออก คุณอาจลองดู

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.