首页 > 解决方案 > 如何在 BufferReader 读取的文本中添加换行符以尝试使用 iText7 将其转换为 pdf

问题描述

这是我创建的文本文件

     try {
    File info = new File("StudentInfo.txt");
    
    if(!info.exists()) {
        info.createNewFile();
    }
    
    PrintWriter D = new PrintWriter(info);
    
    D.println("Student Name "+" : "+"MUSTAPHA HASSAN;\n"+"Class \t\t"+"\t\t: "+"PRIM 
              6A;\n"+"No.in Class \t "+" : "+"43;\n"+"Position\t\t\t: "+"2nd;");                
    D.close();
    
    }catch (Exception e) {

    }

我得到了文本文件的这个输出

   Student Name  : MUSTAPHA HASSAN;
   Class                : PRIM 6A;
   No.in Class    : 43;
   Position         : 2nd;

    

将文本文件转换为 pdf

  try {
    String Z = "C:\\Users\\TEXT.pdf";
    OutputStream D = new FileOutputStream(Z);
    PdfWriter PW = new PdfWriter(D);
    PdfDocument Test = new PdfDocument(PW);
    Document document = new Document(Test, PageSize.A4);
  
      Paragraph T = new Paragraph();
      
       
     public static void PARA (Paragraph T , String line) {
         StringTokenizer tokenizer = new StringTokenizer(line, ";");
         while (tokenizer.hasMoreTokens()) {
             T.add(new Paragraph(tokenizer.nextToken()));
         }
     }

      BufferedReader bf = new BufferedReader(new FileReader("C:\\Users\\StudentInfo.txt"));
        String line = bf.readLine();
        PARA(T , line);
         while ((line = bf.readLine()) != null) {
             PARA(T , line);
         
         }
         bf.close();

     document.add(T);
     document.close();
  }catch (Exception e) {

  }

pdf输出是这样的

 Student Name : MUSTAPHA HASSANClass : PRIM 6ANo.in Class : 43Position : 2nd

有什么方法可以使 pdf 输出看起来与文本中的相同?

我想要这种形式的 pdf 输出

   Student Name  : MUSTAPHA HASSAN;
   Class                : PRIM 6A;
   No.in Class    : 43;
   Position         : 2nd;

请指导我。

标签: javaitext7

解决方案


   public static void PARA (Paragraph T , String line) {
     StringTokenizer tokenizer = new StringTokenizer(line, ";");
     while (tokenizer.hasMoreTokens()) {
        //Remove T.add(new Paragraph(tokenizer.nextToken()));

     //Replace it with
     T.add(tokenizer.nextToken());
    
     }

 }

然后正如史蒂夫所说的“尝试 PARA(T , line + '\r');”

最后你有这个作为输出

         Student Name : MUSTAPHA HASSAN
         Class        : PRIM 6A
         No.in Class  : 43
         Position     : 2nd

推荐阅读