[C#]mmとtwipの相互変換を行う関数

CrystalReportsで帳票の開発などを行っていると、印字位置(Top,Left)をtwip単位で指定する必要があります。

プログラムによっては印字位置をユーザに指定させたい場合がありますが、その場合に画面上では通常mm単位で指定する事が多いのでmmとtwipの単位系で相互変換を行う必要があります。

単位の変換は、以下の関数で行う事ができます。

//*********************************************************************
/// <summary> mmの値をtwipに変換する
/// </summary>
/// <param name="mmValue">長さ(mm)</param>
/// <returns>             長さ(twip)</returns>
//*********************************************************************
private static int mmToTwip( int mmValue ) {
    return (int)(mmValue * 56.6929);
}
 
//*********************************************************************
/// <summary> twipの値をmmに変換する
56.6929で割る
/// </summary>
/// <param name="mmValue">長さ(twip)</param>
/// <returns>             長さ(mm)</returns>
//*********************************************************************
private static int twipToMm( int twipValue ) {
    return (int)(twipValue / 56.6929);
}



単位変換ですが1440twip = 1inchで、1inch = 25.4mmなので、それぞれ56.6929で掛けたり、割ったりすればOKです(1440/25.4=56.6929…なので)。

関連記事

コメントを残す

メールアドレスが公開されることはありません。