Mam plik rtf, który ma jakiś tekst z kulami, jak pokazano na zrzucie ekranu poniżejJak czytać kule z pliku RTF
chcę wyodrębnić dane wraz z nabojami, ale podczas drukowania w konsoli dostaję niepotrzebne wartości. Jak wydrukować dokładnie to samo z konsoli. Sposób starałem się jak poniżej
wyjściupublic 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()));
}
konsoli:
I zakładanej wartości śmieci są spowodowane nie pocieszam wspieranie chareset więc starałem się wygenerować plik PDF, ale w pdf także Otrzymuję te same niepotrzebne wartości. jest to kod 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;
}
Zamiast pisać do czegoś tak złożonego, jak plik PDF, napisz to samo, co wyjście konsoli do zwykłego pliku tekstowego UTF-8, a następnie zrzutu szesnastkowego, aby zobaczyć rzeczywiste wartości, które są zapisywane. –
Usunąłem tag 'itext' (edytuj oczekującą zgodę moderatora), ponieważ twoje pytanie nie dotyczy iText. Chodzi o RTF. Stephen ma absolutną rację. Podziel swój problem, najpierw upewnij się, że działa on w konsoli, zanim zaczniesz myśleć o pliku PDF. –
Myślę, że próbował zmienić pdf, aby obejść problem, to nie jest jego ostateczny cel. – Asoub