Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Печать в оттенках серого, Как это загнать в атрибут печати? 
:(
    Опции темы
Su_
Дата 30.6.2010, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



Доброго вечера!
Код

PrintRequestAttributeSet printAttributes=new HashPrintRequestAttributeSet();
    printAttributes.add(new Copies(1));
        printAttributes.add(OrientationRequested.LANDSCAPE);


Не могу найти параметры , задания печати только в оттенках серого (только черные чернила) и как на всю страницу печатать?
Может кто сталкивался?


--------------------
user posted image

PM MAIL WWW   Вверх
jk1
Дата 30.6.2010, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1168
Регистрация: 17.10.2008
Где: Санкт-Петербург

Репутация: 21
Всего: 75



Монохромная печать:
Код

printAttributes.add(Chromaticity.MONOCHROME);


Насчет печати на всю страницу возможно поможет атрибут MediaPrintableArea или MediaSize



--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
Su_
Дата 30.6.2010, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



На весь экран только что разобрался 
Код

   printAttributes.add(new MediaPrintableArea(
      0,                  // отсуп слева
      0,                  // отсуп сверху
      550, // ширина
      700, // высота
      MediaPrintableArea.MM));


Спасибо , а как еще сделать быстрое черновое . 
При выборе :
Код

printAttributes.add(PrintQuality.DRAFT);

Скорость печати не меняется.
И еще небольшой вопросик , как несколько Компонентов вывести на печать ? 
Код

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Jservers;

/**
 *
 * @author Admin
 */
/*
 * Copied from this tutorial:
 *
 * http://www.apl.jhu.edu/~hall/java/Swing-Tutorial/Swing-Tutorial-Printing...
 *
 * And also from a post on the forums at java.swing.com. My apologies that do not have
 * a link to that post, by my hat goes off to the poster because he/she figured out the
 * sticky problem of paging properly when printing a Swing component.
 */
import java.awt.*;
import javax.swing.*;
import java.awt.print.*;
import java.util.ArrayList;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.print.attribute.standard.Chromaticity;
import javax.print.attribute.standard.Copies;
import javax.print.attribute.standard.MediaPrintableArea;
import javax.print.attribute.standard.OrientationRequested;
import javax.print.attribute.standard.PrintQuality;
public class PrintContent implements Printable {
  private Component componentToBePrinted;
   private Component componentToBePrinted2;
  static private String type_list,adr;
  public  ArrayList textos_ar243 = new ArrayList();
  public static void printComponent(Component c,String type) {
     type_list=type;
   
    new PrintContent(c).print();
  }
  public PrintContent(Component componentToBePrinted) {
    this.componentToBePrinted = componentToBePrinted;
        
  }
  public void print() {
     //  DocAttributeSet docAttributes=new HashDocAttributeSet();
    //docAttributes.add(OrientationRequested.LANDSCAPE);
    PrintRequestAttributeSet printAttributes=new HashPrintRequestAttributeSet();
    printAttributes.add(new Copies(1));
        if(type_list.equals("Land"))
        printAttributes.add(OrientationRequested.LANDSCAPE);

    printAttributes.add(PrintQuality.DRAFT);
    printAttributes.add(Chromaticity.MONOCHROME);
    PrinterJob printJob = PrinterJob.getPrinterJob();
    printJob.setPrintable(this);
    //printJob.printDialog();

    if(type_list.equals("Land")){
    printAttributes.add(new MediaPrintableArea(
      0,                  // отсуп слева
      0,                  // отсуп сверху
      550, // ширина
      700, // высота
      MediaPrintableArea.MM));}
   printAttributes.toArray();
    if (true)
      try {
        System.out.println("Calling PrintJob.print()");
        printJob.print(printAttributes);
        System.out.println("End PrintJob.print()");
      }
      catch (PrinterException pe) {
        System.out.println("Error printing: " + pe);
      }
  }
  public int print(Graphics g, PageFormat pf, int pageIndex) {
    int response = NO_SUCH_PAGE;
    Graphics2D g2 = (Graphics2D) g;
    //  for faster printing, turn off double buffering
    disableDoubleBuffering(componentToBePrinted);
    Dimension d = componentToBePrinted.getSize(); //get size of document
    double panelWidth = d.width; //width in pixels
    double panelHeight = d.height; //height in pixels
    double pageHeight = pf.getImageableHeight(); //height of printer page
    double pageWidth = pf.getImageableWidth(); //width of printer page
    double scale = pageWidth / panelWidth;
    int totalNumPages = (int) Math.ceil(scale * panelHeight / pageHeight);
    //  make sure not print empty pages
    if (pageIndex >= totalNumPages) {
      response = NO_SUCH_PAGE;
    }
    else {
      //  shift Graphic to line up with beginning of print-imageable region
     
      g2.translate(pf.getImageableX(), pf.getImageableY());
      //  shift Graphic to line up with beginning of next page to print
      g2.translate(0f, -pageIndex * pageHeight);
      //  scale the page so the width fits...
      g2.scale(scale, scale);
     
      componentToBePrinted.paint(g2); //repaint the page for printing
   
      enableDoubleBuffering(componentToBePrinted);
      response = Printable.PAGE_EXISTS;
    }
    return response;
  }
  public static void disableDoubleBuffering(Component c) {
    RepaintManager currentManager = RepaintManager.currentManager(c);
    currentManager.setDoubleBufferingEnabled(false);
  }
  public static void enableDoubleBuffering(Component c) {
    RepaintManager currentManager = RepaintManager.currentManager(c);
    currentManager.setDoubleBufferingEnabled(true);
  }
}


если добавить 
Код

componentToBePrinted2.paint(g2);

он просто перекроет пред идущий компонент?


--------------------
user posted image

PM MAIL WWW   Вверх
Skipy
Дата 30.6.2010, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 487
Регистрация: 24.8.2006
Где: Москва, Россия

Репутация: 4
Всего: 16



Цитата(Su_ @ 30.6.2010,  21:01)
если добавить 
Код

componentToBePrinted2.paint(g2);

он просто перекроет пред идущий компонент?

А если сделать g2.translate на всю высоту плюс отступ?


--------------------
С уважением,
Евгений aka Skipy
www.skipy.ru
PM MAIL WWW ICQ   Вверх
Su_
Дата 30.6.2010, 22:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



Код

printAttributes.add(Chromaticity.MONOCHROME);


Переводит в черные тона, а как сделать только черные чернила?


--------------------
user posted image

PM MAIL WWW   Вверх
jk1
Дата 1.7.2010, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1168
Регистрация: 17.10.2008
Где: Санкт-Петербург

Репутация: 21
Всего: 75



Цитата

Переводит в черные тона, а как сделать только черные чернила? 

 smile весь мозг сломал...

Как можно напечатать цветное изображение, имея только черные чернила? Только в оттенках серого, иначе никак. Это и называется монохромной печатью. Или я что-то неправильно понял?


--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
Su_
Дата 1.7.2010, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



я имел ввиду вот это :
user posted image

И как поставить быстрое-черновое?)

Это сообщение отредактировал(а) Su_ - 1.7.2010, 14:23


--------------------
user posted image

PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0493 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.