7
我有其中有一些文字子彈如截圖所示下面如何讀取RTF文件子彈
一個RTF文件,我想和子彈一起提取數據,但是當我打印在控制檯中,我得到垃圾值。如何從控制檯完全打印相同的內容。 我嘗試的方法是如下
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()));
}
控制檯輸出:
我認爲垃圾值是由於操作檯不支持chareset所以我試圖生成一個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;
}
不是寫成像PDF文件那樣複雜的東西,而是將與控制檯輸出相同的東西寫入普通的UTF-8文本文件,然後十六進制轉儲該文件以查看正在寫入的實際值。 –
我刪除了'itext'標籤(編輯待審覈者批准),因爲你的問題不是關於iText的。這是關於RTF。斯蒂芬絕對是對的。分解你的問題,首先確保它在控制檯中工作,然後再開始考慮PDF。 –
我認爲他試圖改爲pdf來解決問題,這不是他的最終目標。 – Asoub