כיצד לקרוא קובץ PDF ב-Java

אישה עובדת במשרד

קרדיט תמונה: Pixland/Pixland/Getty Images

לא קשה לקרוא קבצי 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" בספרייה שיצרת זה עתה על ידי פתיחת קובץ ה-zip של eclipse. במערכת Eclipse, צור פרויקט בשם "PrintPdf." בחר "קובץ" ואז "חדש" ואז "פרויקט ג'אווה". הקלד את שם הפרויקט "PrintPdf" בתיבת הדו-שיח שמופיעה. ודא כי נבחר כפתור הבחירה שאומר "צור תיקיות נפרדות עבור קבצי מקור וכיתה." לחץ על "סיום".

שלב 4

צור תיקיית "lib" בפרויקט "PrintPdf" שלך. לחץ לחיצה ימנית על פרויקט "הדפס Pdf" ובחר "חדש" ולאחר מכן "תיקיה". הזן את השם "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" ובחר בכרטיסייה "ספריות". לחץ על "הוסף צנצנות" ועבור לספריית 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..." כך שהמערכת תיצור א שיטה "עיקרית".

שלב 3

ערוך את שיטת ה-"main" במחלקה "PDFTextParser" כך שתכיל את הקוד הבא:

public static void main (String args[]){ PDFTextParser pdf = new PDFTextParser("data/javaPDF.pdf") GO //print out results System.out.println (pdf.getParsedText()) GO }

שים לב שהקובץ שברצונך להדפיס מאוית בקונסטרוקטור של PDFTextParser ("data/JavaPDF.pdf"). זה יכול באותה קלות להיות ארגומנט שורת פקודה:

PDFTextParser pdf = PDFTextParser חדש (argv[0])

ללכת

או נבחר מתוך ממשק GUI.

הוא יוצר מופע של המחלקה PDFTextParser, ולאחר מכן קורא לשיטת "getParsedText" שלו.

שלב 4

הכנס את הקוד הבא ממש מתחת לשורה המחלקה העליונה "מחלקה ציבורית PDFTextParser" שנוצרה עבורך.

מנתח PDFParser פרטי = null GO

// חלץ טקסט ממסמך PDF. public PDFTextParser (String fileName) { File file = New File (FileName)

GO if (!file.isFile()) { System.err.println("File " + fileName + " לא קיים.") GO } //הגדר מופע של מנתח PDF נסה { parser = new PDFParser (New FileInputStream (קובץ)) GO } catch (IOException e) { System.err.println("לא ניתן לפתוח PDF מנתח. " + e.getMessage()) GO } } // public String getParsedText() { PDDocument pdDoc = null GO COSDocument cosDoc = null;
מחרוזת parsedText = null; ללכת

נסה { PDFTextStripper pdfStripper = new PDFTextStripper()

GO parser.parse() GO cosDoc = parser.getDocument() GO pdDoc = PDDocument חדש (cosDoc) GO

//קבל רשימה של כל הדפים List< PDPage> list = pdDoc.getDocumentCatalog().getAllPages()

ללכת

//שים לב שאתה יכול להדפיס כל עמוד שתרצה //על ידי בחירת ערכים שונים של עמוד ההתחלה והסיום pdfStripper.setStartPage (1); //1-based int length = list.size(); //מספר כולל של עמודים pdfStripper.setEndPage (אורך); //דף אחרון //קבל את הטקסט עבור הדפים שנבחרו parsedText = pdfStripper.getText (pdDoc)

GO } catch (IOException e) { System.err .println("התרחשה חריגה בניתוח מסמך ה-PDF." + e.getMessage()) GO } לבסוף { try { if (cosDoc != null) cosDoc.close() GO if (pdDoc != null) pdDoc.close() GO } catch (IOException e) { e.printStackTrace() GO } }
return parsedText GO }

שלב 5

הפעל את התוכנית. לחץ לחיצה ימנית על המחלקה PDFTextParser ולחץ על "הפעל בשם" ולאחר מכן על "תוכנית Java". התוכנית צריכה להפעיל ולהדפיס את תוכן הטקסט של קובץ ה-PDF שהזנת בקוד שלך.

דחק את הודעת השגיאה בהפעלה של Log4j

שלב 1

צור קובץ תצורה כדי לדכא את הודעת השגיאה של מערכת הרישום של Java log4j שנוצרה כאשר היא לא יכולה למצוא קובץ תצורה בעת ההפעלה. לחץ לחיצה ימנית על התיקיה "src" של פרויקט PrintPDF ובחר "חדש" ולאחר מכן "קובץ". תן שם לקובץ "log4j.properties" Eclipse יציג מסך ריק עבור הקובץ החדש הזה.

שלב 2

הדבק את השורות הבאות במסך הריק המייצג את הקובץ "log4j.properties".

שלב 3

שמור את הקובץ "log4j.properties". הנוכחות של קובץ זה בספריית "src" ברמה העליונה תדכא את הודעת ההפעלה של log4j וכל הודעת רישום טריוויאלית. מערכת log4j תדפיס רק שגיאות ממשיות.

עֵצָה

ישנן גם מספר חבילות מסחריות שבהן אתה יכול להשתמש כדי לחלץ טקסט מקובצי PDF, אך הן אינן זולות.