【问题标题】:Copy styled text from a JTextPane to Microsoft Word将样式文本从 JTextPane 复制到 Microsoft Word
【发布时间】:2021-12-01 08:02:54
【问题描述】:

我想将样式文本从 JTextPane 复制到 Microsoft Word。我已经使用了这段代码,它可以工作,但是它的口音有问题:

    Clipboard clp = Toolkit.getDefaultToolkit().getSystemClipboard();
    ByteArrayOutputStream ot = new ByteArrayOutputStream();
    RTFEditorKit kit = new RTFEditorKit();
    try {
        kit.write(ot, jTextPane1.getDocument(), 0, jTextPane1.getDocument().getLength());
        ot.flush();
        DataHandler dh = new DataHandler(ot.toByteArray(), kit.getContentType());
        clp.setContents(dh, null);
    } catch (IOException | BadLocationException e1) {

    }

当我将诸如 cafe 之类的内容粘贴到 Microsoft Word 时,它看起来像这样: CafÈ 。另一个是:áéíóú ÁÉÍÓÚ -> ·ÈÌÛ˙ ¡…Õ”⁄

JTextPane 中的文本是 html。

【问题讨论】:

    标签: java html swing ms-word clipboard


    【解决方案1】:

    Microsoft Word 理解 unicode。您的代码使用的是 ascii 文本。

    查看这里的区别 - https://www.smashingmagazine.com/2012/06/all- about-unicode-utf8-character-sets/

    另一个问题可能是空终止。在您的情况下,问题似乎是ot.toByteArray - 字节数组适用于 8 位 ascii。 Unicode 使用 16 位存储的缩写。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多