PDF מסמכים כגון חשבוניות, קבלות או דוחות עשויים להכיל מידע מקודד בצורה של ברקוד. אנו יכולים לזהות, לזהות ולקרוא ברקודים המוטמעים במסמכי PDF באופן תוכנתי. במאמר זה נלמד כיצד לקרוא ברקוד ממסמך PDF באמצעות Java. יתרה מכך, נלמד כיצד לחלץ תמונות ברקוד ממסמכי PDF ב-Java.
מאמר זה יעסוק בנושאים הבאים:
- Java API לקריאת ברקוד מ-PDF
- קרא ברקוד מ-PDF
- המר PDF לתמונה וקרא ברקוד
- חלץ וקרא ברקוד מ-PDF
- קרא ברקוד מ-PDF באמצעות PngDevice
- מצא וקרא תמונת ברקוד מ-PDF
Java API לקריאת ברקוד מ-PDF
לקריאת ברקוד ממסמך PDF, נבצע הליך דו-שלבי. ראשית, נשתמש ב-Aspose.PDF for Java API כדי לטעון מסמך PDF ולעבד את הדפים שלו לתמונות רסטר. לאחר מכן, נקרא את הברקוד מהתמונות המעובדות באמצעות ה-API Aspose.BarCode for Java.
אנא הורד את JAR של ממשקי ה-API או הוסף את תצורת ה-pom.xml הבאה ביישום Java מבוסס Maven.
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>http://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-barcode</artifactId>
<version>22.8</version>
</dependency>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-pdf</artifactId>
<version>22.8</version>
</dependency>
קרא ברקוד מ-PDF באמצעות Java
Aspose.PDF API מספק את המחלקה Document המייצגת מסמך PDF. השיטה convertToPNGMemoryStream() של ה-API מעבדת דף PDF לזרם תמונות במערך byte[]. Aspose.BarCode API מספק את המחלקה BarCodeReader המאפשרת לנו לבצע פעולות readBarCodes כדי לזהות ברקוד. המחלקה BarCodeResult מאחסנת מידע ברקוד שזוהה כגון סוג ברקוד, טקסט קוד, אזור ופרמטרים אחרים.
אנו יכולים לקרוא תמונות ברקוד המוטבעות בכל אחד מהעמודים של מסמך ה-PDF על ידי ביצוע השלבים המפורטים להלן:
- ראשית, טען מסמך PDF באמצעות המחלקה Document.
- לאחר מכן, בצע לולאה בין כל הדפים ועיבוד לתוך הזרם.
- לאחר מכן, צור מופע של המחלקה BarCodeReader עם אובייקט זרם.
- לאחר מכן, קרא למתודה readBarCodes() כדי לקבל את האובייקט BarCodeResult.
- לבסוף, הצג את פרטי הברקוד.
דוגמת הקוד הבאה מראה כיצד לקרוא ברקוד ממסמך PDF באמצעות Java.
// דוגמה זו מדגימה כיצד לקרוא ברקוד ממסמך PDF באמצעות Java.
// הנתיב למסמך
String file = "C:\\Files\\BarCode\\sample-PDF-with-Barcodes.pdf";
// טען מסמך PDF
com.aspose.pdf.Document pdfDoc = new com.aspose.pdf.Document(file);
// המשך בכל דפי ה-PDF החל מעמוד 1
for (int i = 1; i <= pdfDoc.getPages().size(); ++i)
{
// עיבוד דף PDF לזרם
byte[] ms = pdfDoc.getPages().get_Item(i).convertToPNGMemoryStream();
InputStream stream = new ByteArrayInputStream(ms);
// זיהוי ברקודים מזרם העמודים
BarCodeReader reader = new BarCodeReader(stream);
// הראה תוצאות
for (BarCodeResult result : reader.readBarCodes()) {
System.out.println("CodeText: " + result.getCodeText());
System.out.println("Symbology type: " + result.getCodeType());
System.out.println(("-------------------------------"));
}
}
CodeText: Aspose.Barcode Pdf417 Example
Symbology type: Pdf417
-------------------------------
CodeText: Aspose.Barcode QR Example
Symbology type: QR
-------------------------------
CodeText: Aspose.Barcode DataMatrix Example
Symbology type: DataMatrix
אנא הורד את מסמך PDF הקלט עם ברקוד המשמש בפוסט זה בבלוג.
המר PDF לתמונה וקרא ברקוד באמצעות Java
אנו יכולים גם לקרוא ברקוד ממסמך PDF על ידי המרת דפי PDF לתמונות. המחלקה PdfConverter של ה-API מאפשרת המרת כל עמוד של קובץ PDF לתמונה. לאחר מכן, נקרא את פרטי הברקוד מהתמונה שהוסבה.
אנו יכולים לקרוא ברקודים מדפי PDF שהומרו על ידי ביצוע השלבים המפורטים להלן:
- ראשית, טען מסמך PDF באמצעות המחלקה Document.
- לאחר מכן, צור מופע של המחלקה PdfConverter.
- לחלופין, הגדר אפשרויות רינדור באמצעות setBarcodeOptimization().
- לאחר מכן, הגדר את רזולוציית התמונה.
- לאחר מכן, ציין טווח של דפים לעיבוד לתמונות באמצעות setStartPage() ו-setEndPage().
- לאחר מכן, קרא למתודה doConvert() כדי לעבד דפים נבחרים לתמונות.
- לאחר מכן, שמור את התמונות בלולאה.
- לאחר מכן, צור מופע של המחלקה BarCodeReader עם נתיב קובץ התמונה שנשמר.
- לאחר מכן, קרא למתודה readBarCodes() כדי לקבל את האובייקט BarCodeResult.
- לבסוף, הצג את פרטי הברקוד.
דוגמת הקוד הבאה מראה כיצד להמיר דפי PDF לתמונות ולקרוא ברקודים באמצעות Java.
// דוגמא הקוד הבאה מראה כיצד להמיר דפי PDF לתמונות עם PDF Converter ולקרוא ברקודים.
// הנתיב למסמך
String folderPath = "C:\\Files\\BarCode\\";
// נתיב קובץ קלט
String file = folderPath + "sample-PDF-with-Barcodes.pdf";
// טען מסמך PDF
com.aspose.pdf.Document pdfDoc = new com.aspose.pdf.Document(file);
// אתחול PdfConvertor
com.aspose.pdf.facades.PdfConverter pdfConverter = new com.aspose.pdf.facades.PdfConverter(pdfDoc);
// הגדר אופטימיזציה של ברקוד
pdfConverter.getRenderingOptions().setBarcodeOptimization(true);
// הגדר את רזולוציית העמוד
// 300 dpi היא רזולוציה סטנדרטית
pdfConverter.setResolution(new com.aspose.pdf.devices.Resolution(300));
// הגדר את כל הדפים לעיבוד לתמונות
pdfConverter.setStartPage(1); //starts from page 1
pdfConverter.setEndPage(pdfConverter.getDocument().getPages().size());
// עיבוד דפים נבחרים לתמונות
pdfConverter.doConvert();
int imageCount = 1;
while (pdfConverter.hasNextImage())
{
// עבד את הדף הנוכחי לתמונה
String strBarCodeImage = folderPath + imageCount + ".jpg";
pdfConverter.getNextImage(strBarCodeImage);
// זיהוי ברקודים מהתמונה המעובדת של הדף
BarCodeReader reader = new BarCodeReader(strBarCodeImage);
// הראה תוצאות
for (BarCodeResult result : reader.readBarCodes()) {
System.out.println("CodeText: " + result.getCodeText());
System.out.println("Symbology type: " + result.getCodeType());
System.out.println(("-------------------------------"));
}
}
חלץ וקרא ברקוד מ-PDF באמצעות Java
באופן דומה, אנו יכולים לזהות גם תמונות ברקוד המוטבעות בדפי PDF באמצעות המחלקה PdfExtractor. הוא מאפשר לחלץ תמונות מ-PDF, ולאחר מכן נקרא את מידע הברקוד מהתמונה שחולצה.
אנו יכולים לקרוא ברקודים מהתמונות שחולצו על ידי ביצוע השלבים המפורטים להלן:
- ראשית, צור מופע של המחלקה PdfExtractor.
- לאחר מכן, אגד את מסמך PDF הקלט באמצעות שיטת bindPdf() .
- לאחר מכן, הגדר את טווח העמודים לחילוץ תמונה.
- לאחר מכן, קרא לשיטת extractImage() כדי לחלץ את התמונות.
- לאחר מכן, שמור את התמונה בלולאה.
- לאחר מכן, צור מופע של המחלקה BarCodeReader עם נתיב התמונה.
- לאחר מכן, קרא למתודה readBarCodes() כדי לקבל את האובייקט BarCodeResult.
- לבסוף, הצג את פרטי הברקוד.
דוגמא הקוד הבאה מראה כיצד לחלץ ולקרוא תמונת ברקוד ממסמך PDF באמצעות Java.
// דוגמא הקוד הבאה מראה כיצד להמיר דפי PDF לתמונות עם PdfExtractor ולקרוא ברקודים.
// הנתיב למסמך
String folderPath = "C:\\Files\\BarCode\\";
// קובץ קלט
String file = folderPath + "sample-PDF-with-Barcodes.pdf";
// כרוך מסמך PDF
com.aspose.pdf.facades.PdfExtractor pdfExtractor = new com.aspose.pdf.facades.PdfExtractor();
pdfExtractor.bindPdf(file);
// הגדר טווח עמודים לחילוץ תמונה
pdfExtractor.setStartPage(1);
pdfExtractor.setEndPage(3);
// חלץ את התמונות
pdfExtractor.extractImage();
int imageCount = 1;
// שמור תמונות כדי להזרים בלולאה
while (pdfExtractor.hasNextImage())
{
// שמור תמונה
String strBarCodeImage = folderPath + imageCount + ".jpg";
pdfExtractor.getNextImage(strBarCodeImage);
// מזהה את הברקודים מהתמונה
BarCodeReader reader = new BarCodeReader(strBarCodeImage);
for (BarCodeResult result : reader.readBarCodes()) {
System.out.println("CodeText: " + result.getCodeText());
System.out.println("Symbology type: " + result.getCodeType());
System.out.println(("-------------------------------"));
}
}
קרא ברקוד מ-PDF באמצעות PngDevice ב-Java
אנו יכולים גם לקרוא ברקודים על ידי המרת דפי מסמך ה-PDF לתמונות PNG באמצעות המחלקה PngDevice של ה-API. הוא מספק את השיטה process(Page page, OutputStream output) הממירה את הדף ל-PNG ושומרת אותו בזרם הפלט. השיטה processToBufferedImage(Page page) של מחלקה זו ממירה את הדף ל-BufferedImage.
אנו יכולים לקרוא ברקודים מדפי PDF שהומרו כתמונות PNG על ידי ביצוע השלבים המפורטים להלן:
- ראשית, טען מסמך PDF באמצעות המחלקה Document.
- לאחר מכן, צור מופע של המחלקה PngDevice.
- לאחר מכן, בצע לולאה בין כל הדפים וקרא לשיטת processToBufferedImage() כדי לרנדר את התמונה.
- לאחר מכן, צור מופע של המחלקה BarCodeReader עם האובייקט BufferedImage.
- לאחר מכן, קרא למתודה readBarCodes() כדי לקבל את האובייקט BarCodeResult.
- לבסוף, הצג את פרטי הברקוד.
דוגמא הקוד הבאה מראה כיצד להמיר דפי PDF ולקרוא ברקודים באמצעות Java.
// דוגמא הקוד הבאה מראה כיצד להמיר דפי PDF לתמונות עם PngDevice ולקרוא ברקודים.
// הנתיב למסמך
String file = "C:\\Files\\BarCode\\sample-PDF-with-Barcodes.pdf";
// טען מסמך PDF
com.aspose.pdf.Document pdfDoc = new com.aspose.pdf.Document(file);
// צור מכשיר PNG עם רזולוציה סטנדרטית של 300 dpi
com.aspose.pdf.devices.PngDevice pngDevice = new com.aspose.pdf.devices.PngDevice(new com.aspose.pdf.devices.Resolution(300));
// המשך בכל דפי ה-PDF החל מעמוד 1
for (int i = 1; i <= pdfDoc.getPages().size(); ++i)
{
// עיבוד דף PDF לתמונה המאוחסנת
BufferedImage img = pngDevice.processToBufferedImage(pdfDoc.getPages().get_Item(i));
// זיהוי ברקוד מהתמונה המעובדת של הדף
BarCodeReader reader = new BarCodeReader(img);
// הראה תוצאות
for (BarCodeResult result : reader.readBarCodes()) {
System.out.println("CodeText: " + result.getCodeText());
System.out.println("Symbology type: " + result.getCodeType());
System.out.println(("-------------------------------"));
}
}
מצא וקרא תמונות ברקוד מ-PDF באמצעות Java
אנו יכולים למצוא ולחלץ תמונות ברקוד ממסמכי PDF באמצעות המחלקה ImagePlacementAbsorber. הוא מבצע חיפוש של שימוש בתמונות ומספק גישה לתוצאות חיפוש באמצעות אוסף ImagePlacements. שיטה זו מאפשרת לזהות ברקודים ברזולוציה מקורית. החיסרון היחיד הוא שהוא עלול לא לזהות פורמטים וקטוריים בצורה נכונה.
אנו יכולים למצוא ולקרוא ברקודים ממסמכי PDF על ידי ביצוע השלבים המפורטים להלן:
- ראשית, טען מסמך PDF באמצעות המחלקה Document.
- לאחר מכן, צור מופע של המחלקה ImagePlacementAbsorber.
- לאחר מכן, קרא למתודה visit() עבור כל עמוד בלולאה.
- לאחר מכן, בצע לולאה בין כל התמונות שנמצאות באוסף ImagePlacements.
- לאחר מכן, שמור את התמונה בזרם הזיכרון.
- לאחר מכן, צור מופע של המחלקה BarCodeReader עם אובייקט הזרם.
- לאחר מכן, קרא למתודה readBarCodes() כדי לקבל את האובייקט BarCodeResult.
- לבסוף, הצג את פרטי הברקוד.
דוגמא הקוד הבאה מראה כיצד למצוא ולקרוא תמונות ברקוד מ-PDF באמצעות Java.
// דוגמה זו מדגימה כיצד לקרוא ברקוד ממסמך PDF באמצעות ImagePlacementAbsorber.
// הנתיב למסמך
String file = "C:\\Files\\BarCode\\sample-PDF-with-Barcodes.pdf";
// טען מסמך PDF
com.aspose.pdf.Document pdfDoc = new com.aspose.pdf.Document(file);
// אתחול ImagePlacementAbsorber
com.aspose.pdf.ImagePlacementAbsorber imagePlacementAbsorber = new com.aspose.pdf.ImagePlacementAbsorber();
// עבד את כל דפי ה-PDF במסמך החל מעמוד 1
for (int i = 1; i <= pdfDoc.getPages().size(); ++i)
{
// בקר בדף צור מחלץ תמונה
imagePlacementAbsorber.visit(pdfDoc.getPages().get_Item(i));
// חלץ את כל התמונות מדף ה-PDF
for (com.aspose.pdf.ImagePlacement imagePlacement : imagePlacementAbsorber.getImagePlacements()) {
// עיבוד דף PDF לזרם
byte[] ms = pdfDoc.getPages().get_Item(i).convertToPNGMemoryStream();
InputStream stream = new ByteArrayInputStream(ms);
// זיהוי ברקוד מזרם העמודים
BarCodeReader reader = new BarCodeReader(stream);
// הראה תוצאות
for (BarCodeResult result : reader.readBarCodes()) {
System.out.println("CodeText: " + result.getCodeText());
System.out.println("Symbology type: " + result.getCodeType());
System.out.println(("-------------------------------"));
}
}
}
קבל רישיון חינם
אתה יכול לקבל רישיון זמני בחינם לנסות את הספריות ללא מגבלות הערכה.
סיכום
במאמר זה למדנו
- כיצד לזהות ולקרוא ברקודים ממסמכי PDF;
- שיטות שונות לחילוץ תמונות ממסמך PDF;
- כדי לפענח את הברקוד המוטבע ב-Java.
מלבד קריאת ברקוד מ-PDF ב-Java, אתה יכול ללמוד עוד על ממשקי ה-API באמצעות תיעוד עבור Aspose.BarCode ו-תיעוד עבור Aspose.PDF. בכל מקרה של אי בהירות, אנא אל תהסס לפנות אלינו בפורום התמיכה החינמית שלנו.