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
}