最近搜索

java实现打印图片。

浏览:661
管理员 2022-10-28 01:37



package com.java456.print;

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.print.Book;
import java.awt.print.PageFormat;
import java.awt.print.Paper;
import java.awt.print.Printable;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;
import java.io.File;
import java.io.IOException;

import javax.print.PrintService;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.printing.PDFPageable;
import org.apache.pdfbox.printing.PDFPrintable;

public class Test_Print {

	public static void main(String[] args) throws IOException, PrinterException {
		PDDocument document = PDDocument.load(new File("D:/123/11.pdf"));//这种方式不能打印图片。
		printWithPaper(document);
	}
	
	/**
	 * 打印功能
	 * @author 作者微信 xiaomao0055
	 */
	public static void printWithPaper(PDDocument document)throws IOException, PrinterException {
		PrinterJob job = PrinterJob.getPrinterJob();
		//job.setPageable(new PDFPageable(document));
		job.setPrintable(new Printable() {
			@Override
			public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
				if(pageIndex > 0){
					return Printable.NO_SUCH_PAGE;//若不是从0页开始打印返回
				}
				int x = (int)pageFormat.getImageableX();
				int y = (int)pageFormat.getImageableY();//有效打印内容左上角点的坐标
				Graphics2D g2 = (Graphics2D)graphics;
				g2.translate(x, y);
				Image  img = Toolkit.getDefaultToolkit().getImage("D:\\123\\1.jpg");
				g2.drawImage(img, x, y, null);
				return Printable.PAGE_EXISTS;
			}
		});//设置打印页面
		
		try {
			job.print();
		} catch (PrinterException e1) {
			e1.printStackTrace();
		}

	}

	

}


联系站长

站长微信:xiaomao0055

站长QQ:14496453