Tekst uit PDF-documenten halen en gestructureerde gegevens genereren

stemmen
0

Ik ben in staat om de tekst van alle pagina's in pdf succesvol uit te pakken. Maar niet in staat om in gestructureerde data te genereren. Leid mij als iemand komt acorss zo'n expertise.

Code:

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();
    }
  }
uitgang:

enter

PDF ziet er zo uit. Pagina 1: enter

De verwachte koptekst is alleen bedoeld als referentie en hoeft niet te worden afgedrukt. enter

Probeerde te volgen.

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) + |);

Gestructureerde uitgang. Maar het gaat om Quantity tegen de Barcode alias Productcode komt niet enter

De vraag is gesteld op 29/05/2020 om 19:35
bron van user
In andere talen...                            


1 antwoorden

stemmen
0

U moet de tekst zoeken op de kopregel (Barcode, Itemnummer, ...) en dan elke volgende regel ontleden door deze op te splitsen in kolommen. De kolommen worden gescheiden door spaties, zodat u de functie String.split() kunt gebruiken.

antwoordde op 01/06/2020 om 15:58
bron van user

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