如何将PDF文件转换为CSV文件?

3

我想将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的代码片段,以便我们提供帮助! - Jean Logeart
如果您能分享一些代码,展示目前您是如何将其转换为CSV格式的,这可能有助于我们指导您。 - Naved
输出是什么样子?你希望它看起来像什么?给我们展示一下。 - Jean-François Corbett
PDF文件中有一个表格,但CSV文件只显示一行数据,没有以表格形式显示。 - user968880
1个回答

0
你需要在每个表格行后的缓冲区中插入一个换行符 '\n'。
buffer.append("\n");

但是如何知道一行的结尾呢? - user968880
如果你知道有多少列,那么你就知道每行的结尾,你可能需要计数。 - oers

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接