java - 如何在 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;
请指导我。
解决方案
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
推荐阅读
- android - 目标 sdk 版本更改为 29,但不适用于 android 10 和 9
- javascript - 基于 d3js 中的键添加值和合并 json 对象
- android - Snackbar:删除底部导航视图下方的额外空间
- windows - 使用批处理脚本将文本复制到剪贴板
- amazon-web-services - Amazon AWS S3 Glacier:是否有文件层次结构
- python - 连接箱线图的“上限”
- r - Rf_lang2 和 Rf_lang3 的定义在哪里?
- c++ - c++ 错误:“数组必须用大括号括起来的初始化程序初始化”
- python-3.x - 辅助编写函数以在 python 中列出 api 查询
- angular - 用 Angular 构建一个聊天应用程序,试图让它每当输入 @ 字符时,用户组列表就会出现在 @ 符号上方