gpt4 book ai didi

java - 如何在 PrinterJob.pageDialog 中启用横向

转载 作者:行者123 更新时间:2023-12-01 05:48:14 25 4
gpt4 key购买 nike

我想要在 PrinterJob.pageDialog 中设置页面格式的选项,唯一缺少的是更改页面方向,因为横向模式的单选按钮被禁用。

问题是我不知道如何在此对话框中启用代表横向模式的单选按钮。仅当在打开对话框之前将方向模式设置为横向时才启用它。这对我来说不是一个好的解决方案,因为当用户再次打开对话框时,我总是想向用户显示他之前的选择,同时给他更改它的选项。

我真的很想避免自己构建一个对话框,因为这看起来很完美。

我听说这可能是仅在 Windows 计算机上存在的问题。如果其他平台上也出现这种情况,请告诉我。

提前致谢。



import java.awt.Event;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import java.awt.print.PageFormat;
import java.awt.print.PrinterJob;
import javax.swing.AbstractAction;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.KeyStroke;

public class PrintDialogSSCCE extends JFrame
{
private static final long serialVersionUID = 1L;
private PageFormat pageFormat;

public PrintDialogSSCCE()
{
super();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
PrinterJob pj = PrinterJob.getPrinterJob();
pageFormat = pj.defaultPage();
// pageFormat.setOrientation(PageFormat.LANDSCAPE);
JMenuBar mb = new JMenuBar();
JMenu file = new JMenu("File", true);
file.add(new FilePageSetupAction()).setAccelerator(
KeyStroke.getKeyStroke(KeyEvent.VK_P, Event.CTRL_MASK
| Event.SHIFT_MASK));
mb.add(file);
setJMenuBar(mb);
}

public class FilePageSetupAction extends AbstractAction
{
private static final long serialVersionUID = 1L;

public FilePageSetupAction()
{
super("Page setup...");
}
@Override
public void actionPerformed(ActionEvent ae)
{
PrinterJob pj = PrinterJob.getPrinterJob();
pageFormat = pj.pageDialog(pageFormat);
}
}

public static void main(String[] args)
{
PrintDialogSSCCE pd = new PrintDialogSSCCE();
pd.setSize(300, 300);
pd.setVisible(true);
}
}

最佳答案

根据垃圾神的建议,我将发布自己的发现作为此问题的答案,以便我们可以完成此问题。

好的。我已经整理好了感谢 karakuri 编码器。您的信息引导我找到解决方案。当我将默认打印机设置为 MS Office Image Writer 时,问题总是存在。当我有其他选择时就很好了。现在我想知道其他人是否也有同样的问题?也许可以解释一下为什么?该死的MS打印机,我浪费了好几个小时来解决这个问题。说实话我还是很喜欢这款打印机的。 :) 我把它作为默认值,因为最近我一直在测试大量 Java API,它对于查看文档打印到文件时的外观很有用。非常感谢。

向上。我发现这取决于打印机设置。我玩了一会儿,但仍然无法将其设置为具有设置为纵向的页面格式的两个选项。

唯一可行的解​​决方案是,不要将 MS 打印机设置为默认打印机。

祝大家好运,博罗。

关于java - 如何在 PrinterJob.pageDialog 中启用横向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5354337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com