Εξαγάγετε κείμενο από έγγραφα PDF και δημιουργήστε δομημένα δεδομένα

ψήφοι
0

Είμαι σε θέση να εξαγάγω το κείμενο από όλες τις σελίδες σε pdf με επιτυχία. Αλλά δεν μπορώ να δημιουργήσω δομημένα δεδομένα. Καθοδήγησέ με αν κάποιος έρθει στη γνώση αυτής της εμπειρίας.

Κώδικας:

package pdfboxreadfromfile;
import java.awt.geom.Rectangle2D;
import java.io.File;
import java.io.IOException;
import java.util.List;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDDocumentCatalog;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.interactive.form.PDAcroForm;
import org.apache.pdfbox.pdmodel.interactive.form.PDField;
import org.apache.pdfbox.text.PDFTextStripper;
import org.apache.pdfbox.text.PDFTextStripperByArea;

public class PDFBoxReadFromFile {
  public static void main(String[] args) {
    try {
      File file = new File(C:/ma.pdf);
      PDDocument doc = PDDocument.load(file);
      PDFTextStripper pdfTextStripper = new PDFTextStripper();
      pdfTextStripper.setSortByPosition(true);
      pdfTextStripper.setStartPage(1);
      pdfTextStripper.setEndPage(6);
      String text = pdfTextStripper.getText(doc);
      System.out.println(text);
      doc.close();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
παραγωγή:

εισάγετε

Το PDF μοιάζει με αυτό. Σελίδα 1: εισάγετε

Το αναμενόμενο κείμενο κεφαλίδας προορίζεται μόνο για αναφορά και δεν χρειάζεται εκτύπωση. εισάγετε

Προσπάθησε να ακολουθήσει.

Pattern p = Pattern.compile(PO...........*?);
Pattern p1 = Pattern.compile(Vendor...........);
Pattern p2 = Pattern.compile(100.....*?);
Pattern p4 = Pattern.compile(Date...............................................*?);
Pattern p5 = Pattern.compile(62...........3*?);
Pattern p6 = Pattern.compile(62710149950...*?);
Pattern p7 = Pattern.compile(627101499504..*?);

Matcher m = p.matcher(text);
Matcher m1 = p1.matcher(text);
Matcher m2 = p2.matcher(text);
Matcher m4 = p4.matcher(text);
Matcher m5 = p5.matcher(text);
Matcher m6 = p6.matcher(text);
Matcher m7 = p7.matcher(text);
m.find();
m1.find();
m2.find();
m4.find();
m5.find();
m6.find();
m7.find();

System.out.println(m.group(0) + | + m1.group(0) + | + m2.group(0) + | + m2.group(0) + | + MAC + | + m4.group(0) + | + m5.group(0) + |);
System.out.println(m.group(0) + | + m1.group(0) + | + m2.group(0) + | + m2.group(0) + | + MAC + | + m4.group(0) + | + m6.group(0) + |);
System.out.println(m.group(0) + | + m1.group(0) + | + m2.group(0) + | + m2.group(0) + | + MAC + | + m4.group(0) + | + m7.group(0) + |);

Δομημένη παραγωγή. Αλλά το ζήτημα είναι η ποσότητα έναντι του ψευδώνυμου γραμμωτού κώδικα Ο κωδικός προϊόντος δεν έρχεται. εισάγετε

Δημοσιεύθηκε 29/05/2020 στις 19:35
πηγή χρήστη
Σε άλλες γλώσσες...                            


1 απαντήσεις

ψήφοι
0

Θα πρέπει να αναζητήσετε το κείμενο για τη γραμμή κεφαλίδας (γραμμικός κώδικας, αριθμός στοιχείου, ...) και, στη συνέχεια, να αναλύσετε κάθε επόμενη γραμμή χωρίζοντάς την σε στήλες. Οι στήλες διαχωρίζονται με κενά, οπότε μπορείτε να χρησιμοποιήσετε τη συνάρτηση String.split ().

Απαντήθηκε 01/06/2020 στις 15:58
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more