????????? 以前使用poi操作word 2007时候会遇到设置页面大小等问题,当时发现1cm≈567,为什么要这样一直不清楚,今天发现一篇关于这方面的文章。
????????? 文章链接:http://startbigthinksmall.wordpress.com/2010/01/04/points-inches-and-emus-measuring-units-in-office-open-xml/,打不开的同学请看下面的图片。
?????????
?????
????
?????
???? 1cm≈567 (567=1*20*72/2.54)?? 。
???? 文章作者提供了换算的工具,链接:http://lcorneliussen.de/raw/dashboards/ooxml/ ,如下:
?????
?????
public class POI_单位转换_S3_Test { public static void main(String[] args) { double cm = mm2Cm(25.4); System.out.println(String.format("%s-->%s=%s", "mm", "cm", cm)); double inch = cm2Inch(cm); System.out.println(String.format("%s-->%s=%s", "cm", "inch", inch)); double pt = inch2Pt(inch); System.out.println(String.format("%s-->%s=%s", "inch", "pt", pt)); double dxa = pt2Dxa(pt); System.out.println(String.format("%s-->%s=%s", "pt", "dxa", dxa)); double emu = dxa2Emu(dxa); System.out.println(String.format("%s-->%s=%s", "dxa", "emu", emu)); double dxa2 = emu2dxa(emu); System.out.println(String.format("%s-->%s=%s", "emu", "dxa", dxa2)); System.out.println(String.format("%s-->%s=%s", "dxa", "pt", dxa2points(1440.0))); System.out.println(String.format("%s-->%s=%s", "dxa", "inch", dxa2inch(1440.0))); } public static double mm2Cm(double mm) { return mm / 10; } public static double cm2Inch(double cm) { return cm / 2.54; } public static double inch2Pt(double inch) { return inch * 72; } public static double pt2Dxa(double pt) { return pt * 20; } public static double dxa2inch(double dxa) { return dxa2points(dxa) / 72; } public static double dxa2points(double dxa) { return dxa / 20; } public static double dxa2Emu(double dxa) { return 914400 * dxa2inch(dxa); } public static double emu2dxa(double emu) { return pt2Dxa(inch2Pt(emu)) / 914400; } }
??? 结果为:
???
mm-->cm=2.54 cm-->inch=1.0 inch-->pt=72.0 pt-->dxa=1440.0 dxa-->emu=914400.0 emu-->dxa=1440.0 dxa-->pt=72.0 dxa-->inch=1.0
????转载请注明原处,原文链接:http://53873039oycg.iteye.com/blog/2159659? ,谢谢。
?? ?全文完。
?
原文:http://53873039oycg.iteye.com/blog/2159659