Java中Swing字体和可打印字体之间的大小不匹配

Java中Swing字体和可打印字体之间的大小不匹配,java,printing,jtextpane,Java,Printing,Jtextpane,我有一个面板显示一个JTextPane,后面有一个StyledDocument。当我用Arial 16打印一串文本时,它打印的文本大小与Arial 16 Word打印的文本大小相同。但是,JTextPane中的Arial 16似乎小于Arial 16字显示。在将Swing字体转换为Windows系统字体时,是否存在某种缺陷,或者导致难以(或不可能)准确打印的缺陷 在打印之前,我可以通过缩小字体的大小来达到近似值,但这并不能得到我想要的结果,因为在所有情况下都不可能重现一行中相同数量的单词等 以前

我有一个面板显示一个JTextPane,后面有一个StyledDocument。当我用Arial 16打印一串文本时,它打印的文本大小与Arial 16 Word打印的文本大小相同。但是,JTextPane中的Arial 16似乎小于Arial 16字显示。在将Swing字体转换为Windows系统字体时,是否存在某种缺陷,或者导致难以(或不可能)准确打印的缺陷

在打印之前,我可以通过缩小字体的大小来达到近似值,但这并不能得到我想要的结果,因为在所有情况下都不可能重现一行中相同数量的单词等


以前有人碰到过这个吗?

欢迎来到SO,Caleb。你能发一些代码吗?我的第一个想法是,您的打印分辨率没有达到预期,或者您的打印机正在执行某种自动缩放到纸张大小的操作。或者你是说在屏幕上打印?对不起,我有点打字错误。我已经在上面改正了。问题是,Arial 16在JTextPane中比在Word中显示的小,因此,我不希望打印出更大但正确的字体。打印端可能有问题,但这是最重要的问题。如果你仍然认为一些代码会有帮助,让我知道。顺便说一句,我刚刚发现:这个链接看起来不错。它回答了你的问题吗?不完全回答:-(我尝试过缩小打印字体的比例,这是一个不错的近似值,但似乎不可能使打印输出与文本窗格中的每行匹配。我仍然得到两个不同的“Arial 16”s、 即使在缩放之后。如果你读到文章的底部,DReese似乎会说,目前没有办法让Swing组件字体和系统字体看起来相同。这是我真正担心的。似乎有些东西可能没有解决办法……欢迎你这么做,Caleb。你能发布一些代码吗?这是我的第一个想法这是因为你没有以你期望的分辨率打印,或者你的打印机正在做一些自动缩放到纸张大小的事情。或者你的意思是打印到屏幕上吗?对不起,我有点打字错误。我已经更正了上面的问题。问题是,Arial 16在JTextPane中比在Word中显示的要小,因此打印出我想要的东西不要期望字体更大,但正确。打印端可能有问题,但这是最重要的问题。如果您仍然认为一些代码会有帮助,请告诉我。顺便说一句,我刚刚发现:该链接看起来不错。它回答了您的问题吗?不太正确:-(我尝试过缩小打印字体的比例,这是一个不错的近似值,但似乎不可能让打印输出与我的文本窗格逐行匹配。我仍然得到两个不同的“Arial 16”s、 即使在缩放之后。如果你读到文章的底部,DReese似乎会说,目前没有办法让Swing组件字体和系统字体看起来相同。这是我真正担心的。似乎有些东西可能没有解决办法。。。