刚来新公司次日,提了一个问题给我处理。 java
将图片生成到pdf里面结果图片的DPI 与生成以后PDF 分辨率不同致使打印出来的不行。 dom
以前一直没有接触过DPI 不知是什么,没办法,只能百度。 工具
DPI:“dot per inch”的缩写,就是指在每英寸长度内的点数。在Photoshop中文版中能够看到中文解释是“分辨率”的一种表示方式——“像素/英寸”,也就是英寸的像素点。 DPI越大,像素数越高;通常电脑中所须要的dpi数为72;而相片冲印和印刷则须要300dpi.
知道图片的DPI 可是PDF 的DPI 估计也是同样的。可是不知道怎么查看。度娘告诉我用ps能够看,下了ps。查看生成以后的PDF 原来就是PS工具栏中图像里的图像大小,一看分辨率是72。 测试
刚开始觉得PDF的pdi 跟图片有关系,只要设置了图片的DPI就好了。 spa
设了半天不行。本来个人图片DPI就是96。为什PDF生成的老是72。 code
研究itextpdf 里面看了半天都没有关于DPI的东西能够设置。(哎,研究能力太弱) 图片
而后放弃使用Itexpdf 。 get
使用几种操做pdf 的类库,各类强大可是都没有介绍关于DPI的东西。(整的头痛) it
看了PDFRenderer ,可是人家只是读pdf的操做,并且好久没人维护了。 class
又看了ICEpdf 看了半天也没找。
在找,看到了pdfjet ,感受里面里面又有dome 比较全。
找了一个Example_03.java 作了测试。用ps看了下dpi 变了,查看每句代码
终于看到有一个方法Image.scaleBy能够设置,可是里面该设置啥。
各类尝试 先设置1f 结果是DPI 是72。
我想把DPI变成96 反算下72/96=0.75 设置0.75f
结果pdf的DPI真的变成96。
返回项目中的代码看看itexpdf 也有这个方法叫 scalePercent 可是百分比这种方式。
Image jpeg; jpeg = Image.getInstance(buffimg, null); jpeg.scalePercent(75f);
设置一个75f dpi改变了。终于能够解决了。
唉不容易呀,折腾了1.5d。