【问题标题】:How to convert a pdf file into CSV file?如何将 pdf 文件转换为 CSV 文件?
【发布时间】:2011-11-26 18:36:22
【问题描述】:

我想将 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();

【问题讨论】:

  • 您使用哪种语言?请添加正确的标签。请展示用于读取 PDF 并生成 CSV 的代码,以便我们提供帮助!
  • 如果您可以分享一些代码来显示您当前如何将其转换为 CSV,可以帮助我们指导您。
  • 输出是什么样的?你想要它是什么样子的?向我们展示。
  • pdf文件中有一个表格。但是 csv 文件仅在一行中显示数据。它不以表格形式显示。

标签: java itext


【解决方案1】:

您需要在每个表格行之后的缓冲区中引入换行符'\n'。

buffer.append("\n");

【讨论】:

  • 但是如何知道有行尾呢?
  • 如果你知道有多少列,那么你就知道每一行的结尾,你可能需要数数。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-03
  • 2010-12-23
  • 2012-02-07
  • 1970-01-01
  • 1970-01-01
  • 2021-12-28
  • 2016-06-05
相关资源
最近更新 更多