我有一个用VB6编写的程序的BEAST。它使用ActiveReports生成字母。
报告在循环中处理;与verbage-building循环和(整个lotta)嵌套的'if'和'case'语句。的fugly!
报告将发送到打印机,如下所示:
Function PrintIt(ltrobj as Object)
Set ltrobj = MyARdocument '(.Dsr file)
ltrobj.txtfield1 = strVerbage 'This string was populated somewhere else
ltrobj.Printer.DisplayProgressDialog = False
ltrobj.PrintReport False
End Function
现在这里是一个奇怪的部分:物理上从打印机出来的页面每循环一次旋转90度。什么甚至更奇怪 - 这只发生在我的VB6应用程序 - 其他Word文档,报告,批处理作业,无论正常情况如何。
所以第一页就像普通页面一样出现,首先是标题(指向北方)。第二页横向出现(标题指向西)。第三个出现在打印机之外,第四个出现就像第二个出现,然后继续......
打印机:理光Aficio MP5000
我在打印机上找不到设置,或者在ActiveReports中找不到控制它的属性。
非常感谢任何想法,帮助或大方向!
谢谢,
杰森
答案 0 :(得分:0)
ActiveReports中没有“旋转”设置。可能影响这一点的最接近的事情是页面大小和方向,但最坏的情况是我希望它们来回翻转而不是实际旋转页面。我会尝试做一些事情:
要跟踪页面设置,您应该在几个地方进行。一个在打印机上,另一个在报告中的每个页面(或Canvas)上。还有ActiveReport.PrintWidth(报告的宽度,而不是页面)也可能是相关的。因此,在打印每个报告之前,请尝试追踪以下值:
report.PrintWidth
' the default settings for the report
report.PageSettings.TopMargin
report.PageSettings.RightMargin
report.PageSettings.BottomMargin
report.PageSettings.LeftMargin
' actual printer's current settings:
report.Printer.PaperSize
report.Printer.PaperHeight
report.Printer.PaperWidth
report.Printer.Orientation
' settings for a specific page:
for each page in report.Pages:
report.Pages(...).Width
report.Pages(...).Height
report.Pages(...).Orientation
BTW:ActiveReports COM帮助是here。
如果预览/ PDF测试似乎没问题那么我会专注于打印机本身。对于打印到另一台打印机显然也是如此。否则,请关注ActiveReports设置。
希望这有帮助
Scott Willeke
GrapeCity