วิธีอ่านไฟล์ PDF ใน Java

ผู้หญิงทำงานในสำนักงาน

เครดิตรูปภาพ: รูปภาพ Pixland / Pixland / Getty

การอ่านไฟล์ PDF ใน Java ไม่ใช่เรื่องยากโดยใช้ไลบรารีที่พร้อมใช้งาน การอ่านไฟล์ PDF ช่วยให้คุณสามารถเขียนโปรแกรม Java ที่สามารถประมวลผลข้อความในไฟล์เหล่านั้นได้ ทางเลือกหนึ่งสำหรับการอ่านไฟล์ PDF คือไลบรารี PDFBox แบบโอเพ่นซอร์สฟรีที่พร้อมใช้งานจาก Apache แพลตฟอร์มการพัฒนา Eclipse Java ทำให้งานนี้ง่ายขึ้นและจัดการไลบรารีที่คุณจะดาวน์โหลด คุณต้องคุ้นเคยกับการเขียนโปรแกรม Java เพื่อใช้ประโยชน์จากไลบรารี Java เหล่านี้

รวบรวมห้องสมุดที่จำเป็น

ขั้นตอนที่ 1

ดาวน์โหลด Java JDK จากเว็บไซต์ของ Sun นี่คือไฟล์ปฏิบัติการซึ่งคุณสามารถติดตั้งบนระบบของคุณได้โดยการเรียกใช้ มีเวอร์ชันสำหรับ Windows, Mac และ Linux คลิกที่ปุ่มสีแดง "ดาวน์โหลด" บันทึกไฟล์ชื่อ "jdk-6uxx-windows-xxx.exe" เมื่อได้รับแจ้ง บันทึกไฟล์นี้แล้วดับเบิลคลิกเพื่อเปิดตัวติดตั้ง Java

วิดีโอประจำวันนี้

ขั้นตอนที่ 2

ดาวน์โหลดระบบการพัฒนา Eclipse และคลายซิปลงในไดเร็กทอรีระดับบนสุด เลือก "Eclipse IDE สำหรับนักพัฒนา Java" การดำเนินการนี้จะเริ่มการดาวน์โหลด "eclipse-java-galileo-SR2-win32.zip" ดับเบิลคลิกที่ไฟล์เพื่อคลายซิปหลังจากการดาวน์โหลดเสร็จสิ้น เลือกตำแหน่งไดเรกทอรีราก "C:" เพื่อคลายซิป Eclipse

ขั้นตอนที่ 3

เริ่ม Eclipse โดยดับเบิลคลิกที่ "eclipse.exe" ในไดเร็กทอรีที่คุณเพิ่งสร้างขึ้นโดยการคลายซิปไฟล์ eclipse zip ในระบบ Eclipse ให้สร้างโปรเจ็กต์ชื่อ "PrintPdf" เลือก "ไฟล์" จากนั้นเลือก "ใหม่" จากนั้นเลือก "โครงการ Java" พิมพ์ชื่อโครงการ "PrintPdf" ในกล่องโต้ตอบที่ปรากฏขึ้น ตรวจสอบให้แน่ใจว่าได้เลือกปุ่มตัวเลือกที่ระบุว่า "สร้างโฟลเดอร์แยกสำหรับไฟล์ต้นฉบับและไฟล์คลาส" คลิก "เสร็จสิ้น"

ขั้นตอนที่ 4

สร้างโฟลเดอร์ "lib" ในโครงการ "PrintPdf" ของคุณ คลิกขวาที่โปรเจ็กต์ "PrintPdf" แล้วเลือก "ใหม่" จากนั้นเลือก "โฟลเดอร์" ป้อนชื่อ "lib" และคลิกที่ "เสร็จสิ้น"

ขั้นตอนที่ 5

ดาวน์โหลด Apache "PDFBox.jar" จากเว็บไซต์ Apache และคัดลอกลงในไดเร็กทอรี lib ที่คุณเพิ่งสร้างขึ้น ในหน้าเว็บเดียวกัน ให้ดาวน์โหลดไฟล์ "fontbox-nn.jar" และไฟล์ "jempbox-nn.jar" ในแต่ละกรณี เมื่อคุณคลิกที่ไฟล์ jar นั้น ระบบจะนำคุณไปยังหน้าที่คุณสามารถเลือกเซิร์ฟเวอร์ใดเซิร์ฟเวอร์หนึ่งที่สามารถจัดเตรียมไฟล์นี้ได้ เลือกแต่ละไฟล์แล้วดาวน์โหลดไฟล์ jar แต่ละไฟล์ คัดลอกไฟล์ jar แต่ละไฟล์ลงในไดเร็กทอรี lib ที่คุณเพิ่งสร้างขึ้น

ขั้นตอนที่ 6

ดาวน์โหลดแพ็คเกจ Apache log4j.jar ในลักษณะเดียวกันและคัดลอกไฟล์ log4j.jar ลงในไดเร็กทอรี ไลบรารี Apache PDFBox ใช้ไลบรารีการบันทึก Apache นี้ ดังนั้นต้องมีไฟล์นี้

ขั้นตอนที่ 7

ดาวน์โหลดแพ็คเกจ Apache Commons Discovery เป็นไฟล์ zip ดับเบิลคลิกที่ไฟล์ zip เลือก "commons-discovery-nn.jar" และแตกไฟล์ลงในไดเร็กทอรี lib

ขั้นตอนที่ 8

ใน Eclipse คลิกที่ไดเร็กทอรี "lib" แล้วกด "F5" ตรวจสอบให้แน่ใจว่าไฟล์ jar ทั้งหมดที่คุณเพิ่มแสดงขึ้น

ขั้นตอนที่ 9

คลิกขวาที่โปรเจ็กต์ PrintPDF แล้วเลือก "คุณสมบัติ" เลือก "Java Build Path" และเลือกแท็บ "ไลบรารี" คลิกที่ "เพิ่มไห" และไปที่ไดเร็กทอรี lib ที่คุณเพิ่งสร้างขึ้น และเพิ่ม "commons-logging-nn.jar" "fontbox-nn.jar" "jempbox-nn.jar" "log4j-nn.jar", " และ "pdfbox-nn.jar" คลิกที่ "ตกลง"

เขียนโค้ดเพื่ออ่าน PDF

ขั้นตอนที่ 1

คลิกขวาที่โฟลเดอร์ "src" ของโปรเจ็กต์ "PrintPDF" แล้วเลือก "ใหม่" และ "แพ็คเกจ" สร้างแพ็คเกจโดยใช้ชื่อที่มีความหมาย ตัวอย่างเช่น ตั้งชื่อแพ็คเกจว่า "com.pdf.util" คลิก "เสร็จสิ้น"

ขั้นตอนที่ 2

คลิกขวาที่ชื่อแพ็คเกจที่คุณเพิ่งสร้างแล้วเลือก "ใหม่" จากนั้นเลือก "คลาส" สร้างคลาสชื่อ "PDFTextParser" อย่าลืมคลิกช่องทำเครื่องหมาย "public static void main..." เพื่อให้ระบบสร้าง a วิธี "หลัก"

ขั้นตอนที่ 3

แก้ไขเมธอด "main" ในคลาส "PDFTextParser" เพื่อให้มีโค้ดต่อไปนี้:

โมฆะคงที่สาธารณะหลัก (สตริง args []) { PDFTextParser pdf = PDFTextParser ใหม่ ("data/javaPDF.pdf") GO // พิมพ์ผลลัพธ์ System.out.println (pdf.getParsedText ()) GO }

โปรดทราบว่าไฟล์ที่คุณต้องการพิมพ์นั้นสะกดออกมาในตัวสร้างเป็น PDFTextParser ("data/JavaPDF.pdf") อาจเป็นอาร์กิวเมนต์บรรทัดคำสั่งได้อย่างง่ายดาย:

PDFTextParser pdf = PDFTextParser ใหม่ (argv[0])

ไป

หรือเลือกจากอินเทอร์เฟซ GUI

มันสร้างอินสแตนซ์ของคลาส PDFTextParser แล้วเรียกใช้เมธอด "getParsedText"

ขั้นตอนที่ 4

แทรกรหัสต่อไปนี้ใต้บรรทัดระดับบนสุด "คลาสสาธารณะ PDFTextParser" ที่สร้างขึ้นสำหรับคุณ

ตัวแยกวิเคราะห์ PDFParser ส่วนตัว = null GO

// แยกข้อความจากเอกสาร PDF PDFTextParser สาธารณะ (ชื่อไฟล์สตริง) { ไฟล์ไฟล์ = ไฟล์ใหม่ (ชื่อไฟล์)

ไปถ้า (!file.isFile ()) { System.err.println ("ไฟล์ " + ชื่อไฟล์ + " ไม่มีอยู่จริง") GO } // ตั้งค่าอินสแตนซ์ของตัวแยกวิเคราะห์ PDF ลอง { parser = PDFParser ใหม่ (FileInputStream ใหม่ (ไฟล์)) GO } จับ (IOException e) { System.err.println ("ไม่สามารถเปิด PDF พาร์เซอร์ " + e.getMessage ()) GO } } // สตริงสาธารณะ getParsedText () { PDDocument pdDoc = null GO COSDocument cosDoc = null;
สตริง parsedText = null; ไป

ลอง { PDFTextStripper pdfStripper = PDFTextStripper ใหม่ ()

GO parser.parse () GO cosDoc = parser.getDocument () GO pdDoc = PDDocument ใหม่ (cosDoc) GO

// รับรายการของหน้าทั้งหมด รายการ < PDPage> รายการ = pdDoc.getDocumentCatalog().getAllPages()

ไป

//โปรดทราบว่าคุณสามารถพิมพ์หน้าใดก็ได้ที่คุณต้องการ //โดยเลือกค่าต่างๆ ของหน้าเริ่มต้นและหน้าสิ้นสุด pdfStripper.setStartPage (1); /// ความยาว int ตาม = list.size(); //จำนวนหน้าทั้งหมด pdfStripper.setEndPage (ความยาว); // หน้าสุดท้าย // รับข้อความสำหรับหน้าที่แยกวิเคราะห์ข้อความ = pdfStripper.getText (pdDoc)

GO } catch (IOException e) { System.err .println ("เกิดข้อยกเว้นในการแยกวิเคราะห์เอกสาร PDF" + e.getMessage ()) GO } ในที่สุด { ลอง { if (cosDoc != null) cosDoc.close() GO if (pdDoc != null) pdDoc.close() GO } catch (IOException e) { e.printStackTrace() GO } }
ส่งคืน parsedText GO }

ขั้นตอนที่ 5

เรียกใช้โปรแกรม คลิกขวาที่คลาส PDFTextParser แล้วคลิก "เรียกใช้ As" จากนั้นคลิก "โปรแกรม Java" โปรแกรมควรรันและพิมพ์เนื้อหาที่เป็นข้อความของไฟล์ PDF ที่คุณป้อนในโค้ดของคุณ

ระงับข้อความแสดงข้อผิดพลาดในการเริ่มต้น Log4j

ขั้นตอนที่ 1

สร้างไฟล์คอนฟิกูเรชันเพื่อระงับข้อความแสดงข้อผิดพลาดของระบบบันทึก Java log4j ที่สร้างขึ้นเมื่อไม่พบไฟล์คอนฟิกูเรชันเมื่อเริ่มทำงาน คลิกขวาที่โฟลเดอร์ "src" ของโปรเจ็กต์ PrintPDF แล้วเลือก "ใหม่" จากนั้นเลือก "ไฟล์" ตั้งชื่อไฟล์ "log4j.properties" Eclipse จะแสดงหน้าจอว่างสำหรับไฟล์ใหม่นี้

ขั้นตอนที่ 2

วางบรรทัดต่อไปนี้ลงในหน้าจอว่างที่แสดงไฟล์ "log4j.properties"

ขั้นตอนที่ 3

บันทึกไฟล์ "log4j.properties" การมีอยู่ของไฟล์นี้ในไดเร็กทอรี "src" ระดับบนสุดจะระงับข้อความเริ่มต้นของ log4j และข้อความบันทึกที่ไม่สำคัญใดๆ ระบบ log4j จะพิมพ์เฉพาะข้อผิดพลาดที่เกิดขึ้นจริงเท่านั้น

เคล็ดลับ

นอกจากนี้ยังมีแพ็คเกจเชิงพาณิชย์จำนวนหนึ่งที่คุณสามารถใช้เพื่อแยกข้อความจากไฟล์ PDF ได้ แต่มีราคาไม่แพง

หมวดหมู่

ล่าสุด

วิธีการฟอร์แมตแล็ปท็อป Lenovo

วิธีการฟอร์แมตแล็ปท็อป Lenovo

โดยทั่วไปแล้ว แล็ปท็อป Lenovo จะมีฮาร์ดไดรฟ์เพ...

วิธีลบไฟล์ Ghost ที่ถูกลบ

วิธีลบไฟล์ Ghost ที่ถูกลบ

ไฟล์ Ghost อาจเป็นเรื่องยากที่จะลบ ไฟล์ผีเป็นไ...

วิธีใช้การ์ด Micro SD บนคอมพิวเตอร์

วิธีใช้การ์ด Micro SD บนคอมพิวเตอร์

การ์ด Micro SD พอดีกับอะแดปเตอร์การ์ด SD การ์ด...