사용자 입력을 밀리미터에서 픽셀로 변환하여 페이지의 올바른 위치에 인쇄하려면 어떻게해야합니까?인쇄용 .NET - 밀리미터에서 픽셀로 변환
private void document_PrintPage(object sender, PrintPageEventArgs e)
{
float dpiX = e.Graphics.DpiX;
float dpiY = e.Graphics.DpiY;
Point p = new Point(mmToPixel(float.Parse(edtBorderLeft.Text), dpiX),
mmToPixel(float.Parse(edtBorderTop.Text), dpiY));
e.Graphics.DrawImage(testImage, p);
}
private int mmToPixel(float mm, float dpi)
{
return (int)Math.Round((mm/25.4) * dpi);
}
edtBorderLeft.Text는 "9.5"및 edtBorderTop.Text "21,5"값의 값을 가지고 :
는 다음 코드를 사용합니다. 이 값은 밀리미터입니다. 이 코드로 출력을 확인하면 :
private void printPage()
{
PrintDialog dialog = new PrintDialog();
dialog.Document = document;
if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
PrintPreviewDialog preview = new PrintPreviewDialog();
preview.Document = document;
preview.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
preview.Show();
//document.Print();
}
}
이미지가 페이지의 거의 중앙에 표시됩니다. 계산 예 :
mmToPixel (float.Parse (edtBorderLeft.Text) dpiX) edtBorderLeft.Text = "9.5" dpiX = 600; 은 다음을 반환합니다. 224
인쇄 된 이미지의 올바른 위치는 어떻게 계산합니까?
TextRender.MeasureText()를 시도 하시겠습니까? 이 경우 뭔가 할 수 있는지 확인하십시오 – Burimi
도움을 주셔서 감사합니다. 나는 또 다른 해결책을 찾았다. 제 대답을보세요. – hitzi