Java 8,210 209字节
-1个字节:更改为currying语法
import java.awt.print.*;
x->y->{PrinterJob j=PrinterJob.getPrinterJob();j.setPrintable((g,p,i)->{g.drawString("X",(int)(p.getWidth()*x),(int)(p.getHeight()*y));return i;});try{j.print();}catch(Exception e){}};
将输入作为百分比的浮点版本: 0.25, 0.75
。
如果可以将纸张大小假定为8.5x11英寸(72dpi),则为184字节
import java.awt.print.*;
x->y->{PrinterJob j=PrinterJob.getPrinterJob();j.setPrintable((g,p,i)->{g.drawString("X",x*612/100,y*792/100);return i;});try{j.print();}catch(Exception e){}};
使用默认值打印到PDF。现在将输入作为百分比的整数形式:25, 75
。
如果也可以使用Windows操作系统,则为177个字节
import sun.awt.windows.*;
x->y->{WPrinterJob j=new WPrinterJob();j.setPrintable((g,p,i)->{g.drawString("X",x*612/100,y*792/100);return i;});try{j.print();}catch(Exception e){}};
与上述相同的输入:25, 75
。
用法
import java.awt.print.*;
...
Function<Double, Consumer<Double>> f =
x->y->{PrinterJob j=PrinterJob.getPrinterJob();j.setPrintable((g,p,i)->{g.drawString("X",(int)(p.getWidth()*x),(int)(p.getHeight()*y));return i;});try{j.print();}catch(Exception e){}};
...
f.apply(.25).accept(.75);
测试用例
用于输入0.25, 0.75
:
(我没有物理打印机,但是这应该还是没有问题的工作)