【发布时间】:2015-06-27 02:12:34
【问题描述】:
我的项目的一部分是RichTextBox,字符串长度为 10 到 50 个字符,单行字体大小为 175-225。我使用特殊打印机:100 毫米高,3000 毫米(3 米)宽的色带。很长的宽度是一个真正的问题。
Printing.PaperSize 宽度元素有问题(我必须使用它)。它是 (MSDN)“纸张的宽度,以百分之一英寸为单位”。
我试图从:
RichTextBox1.PreferredSize.Width
g.MeasureString(RichTextBox1.Text, RichTextBox1.Font).Width
g.MeasureCharacterRanges(Text, Font, Rect, Format)
它们都给了我“像素”,但我不知道如何将它与 Printing.PaperSize 一起使用 - 它们都太短,并且取决于使用的字体系列。
其中棘手的部分是我需要非常精确的PaperSize 长度,因为我必须在字符串之前和之后打印几个项目。
当我只有元素的像素大小时,有什么方法可以估计打印宽度(以厘米/英寸为单位)?
如果有人可以用 C# 或 C++ 给我任何答案,那没关系 - 我将不胜感激。
【问题讨论】:
-
Graphics 对象具有 .DpiX 和 .DpiY 属性:Graphics.DpiX Property。如果这不起作用,您可以打印已知数量的像素并用尺子测量结果。
-
但是我怎样才能使用'.DpiX'和'RichTextBox'中的'String'呢?如果我尝试使用“DrawToBitmap”,我必须提供适当大小的位图?谢谢你的回答。
-
(打印宽度)=(像素宽度)/(水平分辨率)。 1 英寸 = 25.4 毫米。
-
我知道,但我仍然不知道如何估计字符串。例如:“lorem ipsum dolor sit amet”的大小(in/cm),其中字体为 Times New Roman 225pt?
标签: vb.net printing richtextbox