VB6,ActiveReports和理光打印机:旋转页面?

时间:2011-08-11 21:52:18

标签: printing vb6 rotation activereports

我有一个用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中找不到控制它的属性。

非常感谢任何想法,帮助或大方向!

谢谢,

杰森

1 个答案:

答案 0 :(得分:0)

ActiveReports中没有“旋转”设置。可能影响这一点的最接近的事情是页面大小和方向,但最坏的情况是我希望它们来回翻转而不是实际旋转页面。我会尝试做一些事情:

  1. 跟踪打印机&与报告打印相关的页面设置与方向和页面大小相关。
  2. 尝试打印到另一台打印机,查看它是否在所有打印机上发生,或只是这个打印机。
  3. 在屏幕上预览报告并查看它们是否在预览中旋转(或使用report.Export(...)ad将其导出为PDF,看看它们是否在那里旋转。)
  4. 要跟踪页面设置,您应该在几个地方进行。一个在打印机上,另一个在报告中的每个页面(或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