Как преобразовать PDF-файл в CSV-файл? - PullRequest
3 голосов
/ 28 сентября 2011

Я хочу преобразовать файл 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 Ответ

0 голосов
/ 28 сентября 2011

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

buffer.append("\n");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...