FileUtils.deleteFile(new File(pngPageName));
}
private static String workPdfFile(OcrViaTesseractUtils ocr, String pdfName, String ocrName, Properties metadata)
throws DocumentReadingException {
PdfReader reader;
int xrefSize;
try {
reader = new PdfReader(pdfName);
xrefSize = reader.getXrefSize();
}
catch (IOException exception) {
throw new DocumentReadingException(exception);
}
StringBuilder pdfContent = new StringBuilder();
StringBuilder barcodes = new StringBuilder();
StringBuilder textBarcodes = new StringBuilder();
for (int i = 0; i < xrefSize; i++) {
God.appWindow.getStatusBar().setInitProgress(i, xrefSize);
try {
PdfObject pdfobj = reader.getPdfObject(i);
if (pdfobj != null) {
if (pdfobj.isStream()) {
PdfStream stream = (PdfStream) pdfobj;
PdfObject pdfsubtype = stream.get(PdfName.SUBTYPE);
if (pdfsubtype != null) {
if (pdfsubtype.toString().equals(PdfName.IMAGE.toString())) {
getImageFromPageAndAddOcrResultToContent(ocr, pdfContent, barcodes, textBarcodes, ocrName, stream);
}
}
}
}
}
catch (Exception e) {
// We may have exceptions within this operations.
}
}
try {
reader.close();
}
catch (Exception e) {
// Ignore.
}
metadata.setProperty(Metadata.BARCODES, barcodes.toString());