を使ってみた。
最初は、簡単に画像ファイルを印刷するサンプルを実行してみた。
下記のサンプルでは、PrimoPDFを利用して印刷する例になっています。
結構簡単に印刷できました。
参考にしたページはこちら、
http://java.sun.com/j2se/1.4/ja/docs/ja/guide/jps/spec/JPSTOC.fm.html
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import javax.print.Doc;
import javax.print.DocFlavor;
import javax.print.DocPrintJob;
import javax.print.PrintException;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.SimpleDoc;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.print.attribute.standard.Copies;
import javax.print.attribute.standard.MediaSizeName;
public class PrintPNGFileTest {
/**
* @param args
*/
public static void main(String[] args) {
FileInputStream textstream= null;
try{
textstream = new FileInputStream("D:\\white.png");
} catch (FileNotFoundException ffne) {
}
if (textstream == null) {
return;
}
// ドキュメントの形式を設定。これはpngファイルの場合
DocFlavor flavor = DocFlavor.INPUT_STREAM.PNG;
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
//用紙のサイズを指定。
aset.add(MediaSizeName.ISO_A4);
aset.add(new Copies(2));
PrintService[] services =
PrintServiceLookup.lookupPrintServices(
flavor,
aset);
System.out.println("プリンタ件数:"+services.length);
for (int i=0;i<services.length;i++){
System.out.println(services[i].getName());
}
int primoIdx=-1;
for (int i=0;i<services.length;i++){
if ("PrimoPDF".equals(services[i].getName())){
primoIdx=i;
}
}
if (services.length > 0) {
Doc myDoc = new SimpleDoc(textstream, flavor, null);
DocPrintJob job = services[primoIdx].createPrintJob();
try {
job.print(myDoc, aset);
} catch (PrintException pe) {
pe.printStackTrace();
}
}
}
}
0 件のコメント:
コメントを投稿