Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.print.*;
- import java.io.IOException;
- public class PrinterTest {
- public static void main(String[] args) {
- BoxWorks bxw = new BoxWorks();
- String[] boxContents = new String[]{"1"};
- double pageLength = 1.0;
- double pageWidth = 7.7;
- try{
- boxContents = bxw.getBoxContents("asdasdasd");
- pageLength = (boxContents.length * 0.4) + 2.0; //this is an imprecise way of calculating page length
- }catch(IOException e){
- System.out.println("Could not read.");
- boxContents[0] = "Could not read box contents";
- }
- PrinterJob pj = PrinterJob.getPrinterJob();
- if(pj.printDialog()){
- PageFormat pf = pj.defaultPage();
- Paper paper = pf.getPaper();
- double width = fromCMToPPI(pageWidth);
- double height = fromCMToPPI(15);
- paper.setSize(width, height);
- paper.setImageableArea(
- fromCMToPPI(0.25),
- fromCMToPPI(0.5),
- width - fromCMToPPI(0.35),
- height - fromCMToPPI(1));
- System.out.println("Before- " + dump(paper));
- pf.setOrientation(PageFormat.PORTRAIT);
- pf.setPaper(paper);
- System.out.println("After- " + dump(paper));
- System.out.println("After- " + dump(pf));
- dump(pf);
- PageFormat validatePage = pj.validatePage(pf);
- System.out.println("Valid- " + dump(validatePage));
- //Book book = new Book();
- //book.append(new MyPrintable(), pf);
- //pj.setPageable(book);
- MyPrintable mprt = new MyPrintable();
- mprt.setContents(boxContents);
- pj.setPrintable(mprt, pf);
- try {
- pj.print();
- } catch (PrinterException ex) {
- ex.printStackTrace();
- }
- }
- }
- protected static double fromCMToPPI(double cm) {
- return toPPI(cm * 0.393700787);
- }
- protected static double toPPI(double inch) {
- return inch * 72d;
- }
- protected static String dump(Paper paper) {
- StringBuilder sb = new StringBuilder(64);
- sb.append(paper.getWidth()).append("x").append(paper.getHeight())
- .append("/").append(paper.getImageableX()).append("x").
- append(paper.getImageableY()).append(" - ").append(paper
- .getImageableWidth()).append("x").append(paper.getImageableHeight());
- return sb.toString();
- }
- protected static String dump(PageFormat pf){
- Paper paper = pf.getPaper();
- return dump(paper);
- }
- }
- import java.awt.print.*;
- import java.awt.Graphics;
- import java.awt.Graphics2D;
- import java.awt.geom.Rectangle2D;
- import java.awt.FontMetrics;
- import java.util.Arrays;
- public class MyPrintable implements Printable {
- private String[] contentsArray;
- @Override
- public int print(Graphics graphics, PageFormat pageFormat,
- int pageIndex) throws PrinterException {
- System.out.println(pageIndex);
- int result = NO_SUCH_PAGE;
- if (pageIndex < 1) {
- Graphics2D g2d = (Graphics2D) graphics;
- System.out.println("[Print] " + dump(pageFormat));
- double width = pageFormat.getImageableWidth();
- double height = pageFormat.getImageableHeight();
- g2d.translate((int) pageFormat.getImageableX(),
- (int) pageFormat.getImageableY());
- g2d.draw(new Rectangle2D.Double(1, 1, width - 1, height - 1));
- FontMetrics fm = g2d.getFontMetrics();
- int csI = 0; //contentsArray index
- while(csI < contentsArray.length){
- g2d.drawString(contentsArray[csI].toString(), 1, (csI + 1) * (fm.getAscent() +1)); //csI * (fm.getAscent() +1) - calculate where to position the new line
- csI++;
- }
- result = PAGE_EXISTS;
- }
- return result;
- }
- public void setContents(String[] boxContents){
- contentsArray = boxContents;
- }
- protected static String dump(Paper paper) {
- StringBuilder sb = new StringBuilder(64);
- sb.append(paper.getWidth()).append("x").append(paper.getHeight())
- .append("/").append(paper.getImageableX()).append("x").
- append(paper.getImageableY()).append(" - ").append(paper
- .getImageableWidth()).append("x").append(paper.getImageableHeight());
- return sb.toString();
- }
- protected static String dump(PageFormat pf) {
- Paper paper = pf.getPaper();
- return dump(paper);
- }
- }
- import java.io.BufferedReader;
- import java.io.FileReader;
- import java.io.IOException;
- public class BoxWorks{
- public String[] getBoxContents(String boxId) throws IOException{
- String file = "aa.txt";
- StringBuilder contents = new StringBuilder();
- String ln = "";
- FileReader fr = new FileReader(file);
- BufferedReader br = new BufferedReader(fr);
- try{
- while((ln = br.readLine()) !=null){
- contents.append(ln + "\r\n");
- }
- }catch(IOException e){
- System.out.println(e.getMessage());
- }
- br.close();
- return contents.toString().split("\r\n");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement