gpt4 book ai didi

java - 如何从 RTF 文件中读取项目符号

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:24:47 26 4
gpt4 key购买 nike

我有一个 rtf 文件,其中包含一些带项目符号的文本,如下面的屏幕截图所示

enter image description here

我想连同项目符号一起提取数据,但是当我在控制台中打印时,我得到了垃圾值。如何从控制台打印完全相同的内容。我尝试的方式如下

public static void main(String[] args) throws IOException, BadLocationException {
RTFEditorKit rtf = new RTFEditorKit();
Document doc = rtf.createDefaultDocument();

FileInputStream fis = new FileInputStream("C:\\Users\\Guest\\Desktop\\abc.rtf");
InputStreamReader i =new InputStreamReader(fis,"UTF-8");
rtf.read(i,doc,0);
System.out.println(doc.getText(0,doc.getLength()));
}

控制台输出:

enter image description here

我假设垃圾值是由于控制台不支持字符集,所以我尝试生成一个 pdf 文件,但在 pdf 中我也得到相同的垃圾值。这是pdf代码

Paragraph de=new Paragraph();
Phrase pde=new Phrase();
pde.add(new Chunk(getText("C:\\Users\\Guest\\Desktop\\abc.rtf"),smallNormal_11));
de.add(pde);

de.getFont().setStyle(BaseFont.IDENTITY_H);
document.add(de);
public static String getText() throws IOException, BadLocationException {
RTFEditorKit rtf = new RTFEditorKit();
Document doc = rtf.createDefaultDocument();

FileInputStream fis = new FileInputStream("C:\\Users\\Guest\\Desktop\\abc.rtf");
InputStreamReader i =new InputStreamReader(fis,"UTF-8");
rtf.read(i,doc,0);
String output=doc.getText(0,doc.getLength());
return output;
}

最佳答案

不管你怎么说,我的猜测是这是一个控制台编码问题。

无论如何你可以很容易地检查它:

只需替换这一行:

    System.out.println(doc.getText(0,doc.getLength()));

用这两行:

    PrintStream ps = new PrintStream(System.out, true, "UTF-8");
ps.println(doc.getText(0,doc.getLength()));

这将强制控制台编码为 UTF-8。

如果仍然错误,我会怀疑您的文件不完全符合 rtf。


我做了一些测试,您的代码在 Linux 下运行良好(控制台代码,我没有尝试 pdf),但控制台本身是 UTF-8。

关于java - 如何从 RTF 文件中读取项目符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40617277/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com