java - una - tipografia para cuentos infantiles
Obtenga texto legible solo desde el portapapeles (3)
Ya sé cómo obtener texto sin formato del portapapeles en Java, pero a veces el texto está codificado en algún extraño DataFlavor
, como cuando se copia desde Microsoft Word o desde un sitio web o incluso código fuente de Eclipse.
¿Cómo extraer texto plano puro de estos DataFlavor
s?
Primero no he trabajado con el portapapeles pero esto parece interesante
De http://docstore.mik.ua/orelly/java/awt/ch16_01.htm
"Para leer datos del portapapeles, un programa llama al método Transferable.getTransferData (). Si los datos están representados por un DataFlavor que no corresponde a una clase Java (por ejemplo, plainTextFlavor), getTransferData () devuelve un InputStream Usted para leer los datos de ".
Entonces, si le asignas una clase que no corresponde, obtienes InputStream y luego puedes leer el texto "puro" de InputStream.
Puedes usar el siguiente método para obtener texto del portapapeles en Java:
public String getClipBoard(){
try {
return (String)Toolkit.getDefaultToolkit().getSystemClipboard().getData(DataFlavor.stringFlavor);
} catch (HeadlessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedFlavorException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "";
}
import java.awt.HeadlessException;
import java.awt.Toolkit;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.io.IOException;
String data = (String) Toolkit.getDefaultToolkit()
.getSystemClipboard().getData(DataFlavor.stringFlavor);
con el método getData () y el stringFlavor debe obtener texto sin formato desde el portapapeles.
Si hay texto extraño en el portapapeles, creo que esto debería ser un problema del programa que coloca los datos en el portapapeles.