2011-09-28 151 views
2

我想將PDF文件轉換爲CSV文件。 我正在使用iText庫。 程序運行良好,但輸出格式不符合要求。 所有的數據都在csv文件的第一行。輸出應該與pdf文件完全相同(意思是換行符)。 請幫忙。 在此先感謝。如何將pdf文件轉換爲CSV文件?

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(); 
+0

您正在使用哪種語言?請添加適當的標籤。並且請顯示用於閱讀PDF的代碼片段,然後生成CSV以便我們提供幫助! –

+0

如果你可以分享一些代碼,它顯示了你如何將它轉換爲CSV,可以幫助我們引導你。 – Naved

+0

輸出是什麼樣的?你想要什麼?它看起來像什麼?給我們看一看。 –

回答

0

您需要在每個表格行後面的緩衝區中引入換行符'\ n'。

buffer.append("\n"); 
+0

但是如何知道行的末尾? – user968880

+0

如果你知道有多少colums,那麼你知道每一行的結尾,你可能不得不數。 – oers