2013-12-02 1 views
1

Я хочу напечатать свой jpanel через термопринтер. Но когда я печатаю панель, шрифт вывода не совпадает с шрифтом панели. Панель имеет JLabels и изображения. Я отправил код ниже. Если вы можете помочь, я буду очень благодарен!Шрифт JPanel не соответствует выходному значению печати

public static class Printer implements Printable { 
    final Component comp; 

    public Printer(Component comp) { 
     this.comp = comp; 
    } 

    @Override 
    public int print(Graphics g, PageFormat format, int page_index) 
      throws PrinterException { 
     if (page_index > 0) { 
      return Printable.NO_SUCH_PAGE; 
     } 

     // get the bounds of the component 
     Dimension dim = comp.getSize(); 
     double cHeight = dim.getHeight(); 
     double cWidth = dim.getWidth(); 

     // get the bounds of the printable area 
     double pHeight = format.getImageableHeight(); 
     double pWidth = format.getImageableWidth(); 

     double pXStart = format.getImageableX(); 
     double pYStart = format.getImageableY(); 

     double xRatio = pWidth/cWidth; 
     double yRatio = pHeight/cHeight; 

     Graphics2D g2 = (Graphics2D) g; 


     g2.translate(pXStart, pYStart); 
     g2.scale(xRatio, yRatio); 
     comp.paint(g2); 

     return Printable.PAGE_EXISTS; 
    } 
} 

ответ

1

Вы должны установить желаемый шрифт для всех дочерних компонентов. Установите шрифт на все метки, потому что они не используют шрифт родителя.

+0

Как это сделать? Поэтому у моих ярлыков на панели уже есть шрифты. – user3056791

+0

У них есть набор шрифтов от L & F, но они не используют шрифт родительской панели – StanislavL

+0

Как я могу изменить шрифты всех дочерних компонентов? – user3056791

Смежные вопросы