????????? 以前使用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