将dpi /点转换为像素会产生错误的结果

时间:2015-12-01 13:14:54

标签: c# wpf printing resolution dpi

目前我正在开发一个小型打印机预览版,但是我将每mm / dpi点转换为屏幕上的像素时遇到了一些问题。

例如,我有一个Label,其中包含协调: 顶部= 5个点 左= 20点

打印机的分辨率为每毫米8点/ 203 dpi。

在我的简单wpf应用程序中,我有一个画布,我想在那个地方贴一个标签,在那里打印。所以我需要将值205相对于我在屏幕上的分辨率进行转换。但像素的结果是错误的。这是我的计算:

// start values
double top = 5;
double left = 20;

// let's try to calculate the mm. We use 8, because we have 8mm per dot
double mmtop = top / 8.0;
double mmleft = left / 8.0;

// let's turn mm to cm
double cmtop = mmtop * 10.0;
double cmleft = mmleft * 10.0;

// Lets calulate the pixels on the base of a 72dpi monitor
double dpitop = cmtop / 25.4 * 72.0;   // = 318.89
double dpileft = cmleft / 25.4 * 72.0; // = 17.71

这就是我试图计算基于像素的位置的方式。我做错了什么?

也许我犯了一些非常容易的错误,谢谢!

1 个答案:

答案 0 :(得分:1)

要从mm转换为cm,您需要除以10而不是乘以10.