我使用Jsoup
來將剪貼板值解析爲html代碼,但它不適用於subscript
和superscript
。舉一個例子:Jsoup爲下標和上標解析html
標
你好世界(HTML:<b>Hello <sup>World</sup></b>
)
標
你好世界(HTML:<b>Hello <sub>World</sub></b>
)
代碼
result = rtfToHtml(new StringReader(streamToString((InputStream) contents.getTransferData(dfRTF))));
的Resul對於上面的例子是:
<html>
<head>
<style>
< !--
p.default {
size:3;
family:sansserif;
foreground:#000000;
bold:normal;
italic:;
}
-- >
</style>
</head>
<body>
< p class=default >
< span style="color: #000000; font-size: 14pt; font-family: ArialMT">
< b>Hello < /b>
< /span>
< span style="color: #000000; font-size: 11pt; font-family: ArialMT">
< b>World< /b>
< /span>
< /p>
< /body>
< /html>
任何知道如何才能使用Jsoup處理Superscript
和Subscript
。任何意見或引用高度讚賞。
編輯
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable contents = clipboard.getContents(null);
DataFlavor dfRTF = new DataFlavor("text/rtf", "Rich Formatted Text");
DataFlavor dfTxt = DataFlavor.stringFlavor;
boolean hasTransferableRTFText = (contents != null)
&& contents.isDataFlavorSupported(dfRTF);
boolean hasTransferableTxtText = (contents != null)
&& contents.isDataFlavorSupported(dfTxt);
if (hasTransferableRTFText) {
try {
result = rtfToHtml(new StringReader(streamToString((InputStream) contents.getTransferData(dfRTF))));
Document doc = Jsoup.parse(result);
}
}
編輯
public static String rtfToHtml(Reader rtf) throws IOException { // From http://www.codeproject.com/Tips/136483/Java-How-to-convert-RTF-into-HTML
JEditorPane p = new JEditorPane();
p.setContentType("text/rtf");
EditorKit kitRtf = p.getEditorKitForContentType("text/rtf");
try {
kitRtf.read(rtf, p.getDocument(), 0);
kitRtf = null;
EditorKit kitHtml = p.getEditorKitForContentType("text/html");
Writer writer = new StringWriter();
kitHtml.write(writer, p.getDocument(), 0, p.getDocument().getLength());
return writer.toString();
} catch (BadLocationException e) {
e.printStackTrace();
}
return null;
}
當前的問題沒有包含足夠的細節。 什麼是'rtfToHtml'? Jsoup將所有轉換爲期望的,但你的問題是在rtfToHtml函數。它是[this](http://www.codeproject.com/Tips/136483/Java-How-to-convert-RTF-into-HTML)? – msangel
@msangel編輯我的問題 –