A cópia da área de transferência do outlook sempre tem um plano de fundo preto definido quando recuperada como imagem do objeto de área de transferência do Java

Aqui estão os passos da aplicação

copie alguns richtext de uma mensagem de e-mail html ou de um site (uma combinação de texto + imagem)Em seu código java, recupere o conteúdo copiado do objeto da área de transferência como BufferredImageSalve o objeto de imagem recuperado como arquivo de imagem no disco

Você notará que no arquivo salvo, a imagem vem bem, qualquer texto não-preto aparece bem, mas o texto em preto parece perdido no fundo preto. Não foi possível encontrar uma maneira de substituir o plano de fundo preto da imagem gerada. Algum código de exemplo abaixo.

     BufferedImage image = null;
try {
     image = (BufferedImage) transferable.getTransferData(DataFlavor.imageFlavor);

} catch (UnsupportedFlavorException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
      } catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
}

saveImageToDisk(image);

      private void saveImageToDisk(BufferedImage image) {
    File outputFile = new File("c:\\image.png");
    try {
        ImageIO.write(image, "png", outputFile);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

Encontrou a solução - é usar um sabor de sistema personalizado que entende o tipo MIME de 'image \ x-emf'. tira primeiro 8 bytes e escreve o conteúdo restante como imagem Bufferred

questionAnswers(1)

yourAnswerToTheQuestion