Java 打印窗格时控制字体大小和背景色

Java 打印窗格时控制字体大小和背景色,java,swing,joptionpane,jeditorpane,Java,Swing,Joptionpane,Jeditorpane,我想打印出JEditorPane的内容,其中包含高亮显示的文本(颜色是使用setCharacterAttributes设置的)。但是,当我使用最基本的print()方法时,如: try { boolean complete = TextArea.print(); if (complete) { return; } else { JOptionPane.showMessageDialog(null, "File could not b

我想打印出JEditorPane的内容,其中包含高亮显示的文本(颜色是使用setCharacterAttributes设置的)。但是,当我使用最基本的print()方法时,如:

try {
    boolean complete = TextArea.print();
    if (complete) {
        return;
    }
    else {
        JOptionPane.showMessageDialog(null, "File could not be printed");
    }
}
catch (PrinterException ex) {
    JOptionPane.showMessageDialog(null, "File could not be printed");
}
打印的文件看起来不像我期望的那样。具体而言:

  • 打印区域的背景为浅蓝色,而不是边距
  • 突出显示的文本以彩色打印
  • 字体大小相当大(每行只有6或7个字)。这是在创建JEditorPane时指定的-打印时是否有其他尺寸的方法
  • 我想要的是白色背景上的黑色文本。如果有人能给我指出正确的方向,我将非常感激

    您可以尝试此操作来打印JEditorPane的内容

    不打印突出显示。这不是属性的一部分。要打印文本背景/前景,您应该指定文本元素的属性

    要缩放JEditorPane的内容,您可以尝试以下方法

    要查看背景,只需设置JEditorPane的背景。但是,有些编辑器工具包对根视图使用自己的渲染,您可能需要在根视图中指定颜色。

    您可以尝试打印JEditorPane的内容

    不打印突出显示。这不是属性的一部分。要打印文本背景/前景,您应该指定文本元素的属性

    要缩放JEditorPane的内容,您可以尝试以下方法

    要查看背景,只需设置JEditorPane的背景。但是,有些编辑器工具包对根视图使用自己的渲染,您可能需要在根视图中指定颜色。

    您可以尝试打印JEditorPane的内容

    不打印突出显示。这不是属性的一部分。要打印文本背景/前景,您应该指定文本元素的属性

    要缩放JEditorPane的内容,您可以尝试以下方法

    要查看背景,只需设置JEditorPane的背景。但是,有些编辑器工具包对根视图使用自己的渲染,您可能需要在根视图中指定颜色。

    您可以尝试打印JEditorPane的内容

    不打印突出显示。这不是属性的一部分。要打印文本背景/前景,您应该指定文本元素的属性

    要缩放JEditorPane的内容,您可以尝试以下方法


    要查看背景,只需设置JEditorPane的背景。但是,有些编辑器工具包对根视图使用自己的渲染,您可能需要在根视图中指定颜色。

    感谢您的快速响应!然而,阅读你的答案让我觉得我问这个问题时不是很清楚。我不想打印出背景。我要做的是将JEditorPane的内容作为字符串发送到打印机。在Java中有没有一种快速简便的方法可以做到这一点?最后,我创建了一个隐藏的JEditorPane,设置了背景颜色和字体大小,复制了我想要输出的文本并将其打印出来。有点假,但它满足了我的需要。谢谢你的快速回复!然而,阅读你的答案让我觉得我问这个问题时不是很清楚。我不想打印出背景。我要做的是将JEditorPane的内容作为字符串发送到打印机。在Java中有没有一种快速简便的方法可以做到这一点?最后,我创建了一个隐藏的JEditorPane,设置了背景颜色和字体大小,复制了我想要输出的文本并将其打印出来。有点假,但它满足了我的需要。谢谢你的快速回复!然而,阅读你的答案让我觉得我问这个问题时不是很清楚。我不想打印出背景。我要做的是将JEditorPane的内容作为字符串发送到打印机。在Java中有没有一种快速简便的方法可以做到这一点?最后,我创建了一个隐藏的JEditorPane,设置了背景颜色和字体大小,复制了我想要输出的文本并将其打印出来。有点假,但它满足了我的需要。谢谢你的快速回复!然而,阅读你的答案让我觉得我问这个问题时不是很清楚。我不想打印出背景。我要做的是将JEditorPane的内容作为字符串发送到打印机。在Java中有没有一种快速简便的方法可以做到这一点?最后,我创建了一个隐藏的JEditorPane,设置了背景颜色和字体大小,复制了我想要输出的文本并将其打印出来。有点假,但它满足了我的需要。