繁体   English   中英

如何在 BufferReader 读取的文本中添加换行符以尝试使用 iText7 将其转换为 pdf

[英]how to add line break in a text read by BufferReader in attempt to convert it to pdf with iText7

这是我创建的文本文件

     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;

请指导我。

   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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM