文档单位(磅、毫米、像素)换算

 

public static class DounmentUnitConverter
{
    #region ToPix

    public static int PointToPix(double point, double dpi = 96d)
    {
        return (int)((dpi * point / 72d) + 0.5);
    }

    public static int MillimeterToPix(double millimeter, double dpi = 96d)
    {
        return (int)((dpi * millimeter / 25.4) + 0.5);
    }

    public static int TwipsToPix(double twips, double dpi = 96d)
    {
        return (int)((dpi * twips / 1440d) + 0.5);
    }

    public static int DevDocumentToPix(double doument, double dpi = 96d)
    {
        //dpi * 3 * doument / 100d
        return (int)((dpi * doument / 33.3333) + 0.5);
    }

    #endregion

    #region ToPoint

    public static double PixToPoint(int pix, double dpi = 96d)
    {
        return 72d * pix / dpi;
    }

    public static double MillimeterToPoint(double millimeter)
    {
        //millimeter * 72d / 25.4;
        return millimeter * 2.8346;
    }

    public static double TwipsToPoint(double twips)
    {
        return twips / 20;
    }

    public static double DevDocumentToPoint(double doument)
    {
        //72d * 3 * doument / 100d;
        return 2.16 * doument;
    }

    #endregion

    #region ToMillimeter

    public static double PixToMillimeter(int pix, double dpi = 96d)
    {
        return pix * 25.4 / dpi;
    }

    public static double PointToMillimeter(double point)
    {
        //point * 25.4 / 72d
        return point * 0.35278;
    }

    public static double TwipsToMillimeter(double twips)
    {
        //(twips / 20) * 25.4 / 72
        //=> (twips * 25.4)/(72 * 20);
        //=> twips * 25.4 / 1440d
        return twips * 0.01764;
    }

    public static double DevDocumentToMillimeter(double doument)
    {
        //doument * 3 * 25.4 / 100d
        return doument * 0.762;
    }

    #endregion

    #region ToTwips

    public static double PixToTwips(int pix, double dpi = 96d)
    {
        return 1440d * pix / dpi;
    }

    public static double PointToTwips(double point)
    {
        return point * 20;
    }

    public static double MillimeterToTwips(double twips)
    {
        //millimeter * 1440d / 25.4;
        return twips * 56.6929;
    }

    public static double DevDocumentToTwips(double doument)
    {
        //20 * 72d * 3 * doument / 100d;
        return doument * 72;
    }

    #endregion

    #region ToDevDocument

    public static double PixToDevDocument(int pix, double dpi = 96d)
    {
        //(pix / dpi) / (3 / 100d)
        //=> pix *100d / (dpi *3)
        return pix * 33.3333 / dpi;
    }

    public static double PointToDevDocument(double point)
    {
        //(point / 72d) / (3 / 100d)
        //=>point * 100d /(72d * 3)            
        return point * 0.463;
    }

    public static double MillimeterToDevDocument(double millimeter)
    {
        //(millimeter / 25.4) / (3 / 100d)
        //=>millimeter * 100 / (25.4 *3)
        return millimeter * 1.3123;
    }

    public static double TwipsToDevDocument(double twips)
    {
        //(twips / 20 / 72d) /( 3 / 100d)
        //=>twips * 100/(1440 * 3)
        return twips * 0.02315;
    }

    #endregion

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值