วิธีอ่านไฟล์ 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 ได้ แต่มีราคาไม่แพง

หมวดหมู่

ล่าสุด

วิธีค้นหาวันที่ผลิตบนคอมพิวเตอร์ HP

วิธีค้นหาวันที่ผลิตบนคอมพิวเตอร์ HP

การทราบวันที่ของผู้ผลิตในคอมพิวเตอร์ของคุณจะเป็...

ฉันจะเปิดแถบเครื่องมือรายการโปรดของฉันได้อย่างไร

ฉันจะเปิดแถบเครื่องมือรายการโปรดของฉันได้อย่างไร

ปล่อย Internet Explorer. หากต้องการแสดงแถบเครื่...

วิธีป้องกันการเปลี่ยนเส้นทางใน Safari

วิธีป้องกันการเปลี่ยนเส้นทางใน Safari

คุณคลิกลิงก์ขณะท่องเว็บใน Safari และในทันใด App...