在.NET中使用自定义边距进行打印

|| 我通过使用vb.Net和标准.NET打印例程的Dymo打印机打印标签,但是我的应用程序必须支持任何类型的标签打印机。因为dymo驱动程序在控制面板中没有可访问的边距,并且无论如何我的大多数用户都无法使用控制面板,所以我正在使用该应用程序设置页面边距。 我使用应用程序中设置的设置替换了PrintDocument中的空白,但这很好,但是我还有一些代码可根据可打印区域的宽度来计算文本大小和格式。我永远无法获得可打印区域来更改尺寸?边距设置的全部作用是根据顶部和左侧边距将整个Graphic左右分开,图形对象中的可打印区域和VisibleClipBounds永远不会改变?发生这种情况时,文本仅从页面的​​右下角流出,因此它根本不会遵循右下角空白。 这是正常行为吗?我是否需要在应用程序中进行大量处理才能根据页边距和初始页面大小自己计算可打印区域?
\'Code to setup PrintDocument
    MyDocument.DefaultPageSettings.Margins = New Margins(Printers.LabelPrinter.MarginLeft / 0.254, Printers.LabelPrinter.MarginRight / 0.254, Printers.LabelPrinter.MarginTop / 0.254, Printers.LabelPrinter.MarginBottom / 0.254)
    MyDocument.OriginAtMargins = True


\'Code that runs during the MyDocument.Print event
    width = e.Graphics.VisibleClipBounds.Width
    height = e.Graphics.VisibleClipBounds.Height
    \'Calculate best fit text size here and update graphics object
解决了。我的例程只是使用Graphics对象,而不是Print事件的完整eventargs。 打印事件包含ѭ1属性,该属性在应用边距后将返回一个大小为矩形的矩形,因此效果很好。     
已邀请:
        解决了。我的例程只是使用
Graphics
对象,而不是Print事件的完整eventargs。 打印事件包含ѭ1属性,该属性在应用边距后将返回一个大小为矩形的矩形,因此效果很好。 (将其添加为答案,因为当时没有足够的信誉来做到这一点,并希望这将对认为该问题未得到解答的人们有所帮助)。     

要回复问题请先登录注册