Транспонирование матрицы из средства удаления PDF - PullRequest
1 голос
/ 25 мая 2020

Я читаю текст из файла PDF с помощью PDFBOX. Я умею правильно читать, используя "Rectangle2D". Но проблема, когда результаты отображаются один за другим. Вместо этого я хочу показать в режиме транспонирования.

Текущее представление

PO-00145678

Производитель: AQ-00067

Дата. ..................................: 10.05.2021 Ожидаемая дата доставки ...: 10.06 / 2021

Ожидаемые результаты Одной строкой PO-00145678 Поставщик: AQ-00067 Дата ................. ..................: 10.05.2021 Ожидаемая дата доставки ...: 10.06.2021

Код с использованием

public class PDFBoxReadFromFile {


  public static void main(String[] args) throws Exception {

    try (PDDocument document = PDDocument.load(new File("C:\\Users\\ed\\Documents\\test2.pdf"))) {

      if (!document.isEncrypted()) {
        PDFTextStripperByArea stripper = new PDFTextStripperByArea();
        stripper.setSortByPosition(true);
        Rectangle2D rect4 = new Rectangle2D.Double(210, 160, 230, 25);
        Rectangle rect1 = new Rectangle(55, 290, 225, 17);

        Rectangle2D rect2 = new Rectangle2D.Double(281, 255, 255, 20);
        Rectangle2D rect3 = new Rectangle2D.Double(2, 365, 660, 1900);
        stripper.addRegion("class2", rect1);
        stripper.addRegion("class3", rect2);
        stripper.addRegion("class4", rect3);
        stripper.addRegion("class5", rect4);
        PDPage firstPage = document.getPages().get(0);
        stripper.extractRegions(firstPage);
        System.out.println(stripper.getTextForRegion("class5"));
        System.out.println(stripper.getTextForRegion("class2"));
        System.out.println(stripper.getTextForRegion("class3"));
        System.out.println(stripper.getTextForRegion("class4"));

        File file = new File("C:/Users/ed/eclipse-workspace/pdfboxreadfromfile/file.txt");
        FileWriter fw = new FileWriter(file);
        PrintWriter pw = new PrintWriter(fw);
        pw.println(stripper.getTextForRegion("class5"));
        pw.println(stripper.getTextForRegion("class2"));
        pw.println(stripper.getTextForRegion("class3"));
        pw.println(stripper.getTextForRegion("class4"));
        pw.close();

      }
    } catch (IOException e) {
      System.err.println("Exception while trying to read pdf document - " + e);
    }
  }

Второй тип, но не повезло

System.out.print (stripper.getTextForRegion ("class5") + (stripper. getTextForRegion ("класс2"))); результаты

enter image description here

Должно быть как PO-003334823 Производитель: WL-00051

...