gpt4 book ai didi

java - 为什么在 SWT Eclipse(文本)中给我打印一行。我想在我的文本中打印多行

转载 作者:行者123 更新时间:2023-12-02 04:41:13 25 4
gpt4 key购买 nike

为什么在 SWT Eclipse(文本)中给我打印一行。我想在我的文本中打印多行。这是我的代码。从我的打印机中,我得到了一行消息,而不是打印中的多行

Button btnPrint = new Button(shell, SWT.NONE);
btnPrint.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {

PrintDialog printDialog = new PrintDialog(shell, SWT.MULTI| SWT.BORDER );
printDialog.setText("Print");
PrinterData printerData = printDialog.open();
if (!(printerData == null)) {
Printer p = new Printer(printerData);
p.startJob("PrintJob");
p.startPage();

Rectangle trim = p.computeTrim(0,0,0,0);
Point dpi = p.getDPI();
int leftMargin = dpi.x + trim.x;
int topMargin = dpi.y / 2 + trim.y;
GC gc = new GC(p);
Font font = gc.getFont();
String printText = text.getText();
Point extent = gc.stringExtent(printText);

gc.drawString(printText, leftMargin, topMargin+ font.getFontData()[0].getHeight());
p.endPage();
gc.dispose();
p.endJob();
p.dispose();
}
}
});

最佳答案

gc.drawString 不查找行分隔符。

使用gc.drawText:

public void drawText(String string, int x, int y)

它会查找行分隔符(和制表符)。或者使用

public void drawText(String string, int x, int y, int flags)

并为flags值指定SWT.DRAW_DELIMITER

关于java - 为什么在 SWT Eclipse(文本)中给我打印一行。我想在我的文本中打印多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56516259/

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