Зачем печатать мне одну строчку в SWT Eclipse (текст). Я хотел напечатать многострочное в моем тексте - PullRequest
0 голосов
/ 09 июня 2019

Зачем печатать мне одну строчку в SWT Eclipse (Text).Я хотел напечатать многострочное в моем тексте.Это мой код.С моего принтера я получил одну строку моего сообщения вместо множества строк в моей печати

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();
                }
        }
    });

1 Ответ

0 голосов
/ 09 июня 2019

gc.drawString не ищет разделители строк.

Используйте gc.drawText:

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

, который ищет разделители строк (и вкладки).Или используйте

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

и укажите SWT.DRAW_DELIMITER для значения flags

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...