Как конвертировать PDF-файл в CSV-файл?

#java #itext

#java #itext

Вопрос:

Я хочу преобразовать файл PDF в файл CSV. Для этого я использую библиотеку iText. Программа работает нормально, но вывод не в желаемом формате. Все данные поступают в первую строку файла csv. Выходные данные должны быть точно такими же, как в файле pdf (означает с разрывами строк). Пожалуйста, помогите. Заранее спасибо.

 Document document = new Document();
  document.open();
  PdfReader reader = new PdfReader("C:\Indiaops-projects\PREMIUM_PAID_ACKNOWLEDGEMENT.pdf");
  PdfDictionary dictionary = reader.getPageN(1);
  AcroFields fileds = reader.getAcroFields();
  PRIndirectReference reference = (PRIndirectReference) 
            dictionary.get(PdfName.CONTENTS);
                    PRStream stream = (PRStream) PdfReader.getPdfObject(reference);
                    byte[] bytes = PdfReader.getStreamBytes(stream);
                    PRTokeniser tokenizer = new PRTokeniser(bytes);
                    FileOutputStream fos=new FileOutputStream("C:\Indiaops-projects\pdf.csv");
                    StringBuffer buffer = new StringBuffer();
                    StringBuffer data = new StringBuffer();
                    int i=0;
                    while (tokenizer.nextToken()) {
                    if (tokenizer.getTokenType() == PRTokeniser.TK_STRING) {
                        String value = tokenizer.getStringValue();

                        if("x-none".equals(value)){
                            String datastr =data.toString();
                            if(!"".equals(datastr)){
                                buffer.append(""" datastr "",");
                                data = new  StringBuffer();
                            }
                        }else{
                               data.append(value);
                        }
                     }
                  }
            String test=buffer.toString();
            StringReader stReader = new StringReader(test);
            int t;
            while((t=stReader.read())>0)
            fos.write(t);
            document.add(new Paragraph(".."));
            document.close();
  

Комментарии:

1. Какой язык вы используете? Пожалуйста, добавьте соответствующий тег. И, пожалуйста, покажите фрагмент кода, используемый для чтения PDF, а затем сгенерируйте CSV, чтобы мы могли помочь!

2. Если бы вы могли поделиться некоторым кодом, который показывает, как в настоящее время вы конвертируете его в CSV, это могло бы помочь нам сориентировать вас.

3. Как выглядит результат? Как вы хотите , чтобы это выглядело? Покажите нам.

4. В файле pdf есть таблица. Но файл csv показывает данные только в одной строке. Он не отображает его в табличной форме.

Ответ №1:

Вам нужно ввести разрыв строки ‘ n’ в буфере после каждой строки таблицы.

 buffer.append("n");
  

Комментарии:

1. Но как узнать, что есть конец строки?

2. Если вы знаете, сколько существует столбцов, тогда вы знаете конец каждой строки, возможно, вам придется считать.