【问题标题】:Changing programmatically print area in OpenOffice Calc在 OpenOffice Calc 中以编程方式更改打印区域
【发布时间】:2017-05-29 19:55:53
【问题描述】:

我正在使用 vb6 动态创建一个 Calc 文档。打印时,我需要在每页中重复 1 行和 1 列。

这是代码:

 Dim mPrintOptions(2) As Object
 Dim OO_Dispatcher As Object
 Set OO_Dispatcher = oServiceManager.createInstance("com.sun.star.frame.DispatchHelper")
 Set mPrintOptions(0) = MakePropertyValue(oServiceManager, "PrintArea", "")
 Set mPrintOptions(1) = MakePropertyValue(oServiceManager, "PrintRepeatRow", "$A$2")
 Set mPrintOptions(2) = MakePropertyValue(oServiceManager, "PrintRepeatCol", "$A$1")

 OO_Dispatcher.executeDispatch oDeskTop, ".uno:ChangePrintArea", "", 0, mPrintOptions

我有这段代码在保存的文档中创建一个宏。

服务管理器和桌面对象是先前实例化的。文档创建得很好,但是当我将它发送到打印机时,它不会重复我上面指定的行和列。

【问题讨论】:

    标签: openoffice-calc libreoffice-basic openoffice-basic


    【解决方案1】:

    我在这里找到了我的解决方案:

    https://wiki.openoffice.org/wiki/ES/Manuales/GuiaAOO/TemasAvanzados/Macros/StarBasic/TrabajandoConCalc/Imprimiendo

    我的代码终于变成了这样:

    Dim OO_TitulosR As Object
    Dim OO_ActiveSheet As Object
    Set OO_TitulosR = OO_Document.Bridge_getStruct("com.sun.star.table.CellRangeAddress")
    Set OO_ActiveSheet = OO_Document.getCurrentController.getActiveSheet
    OO_TitulosR.StartColumn = 0
    OO_TitulosR.EndColumn = 0
    OO_TitulosR.StartRow = 1
    OO_TitulosR.EndRow = 1
    OO_ActiveSheet.setTitleColumns OO_TitulosR
    OO_ActiveSheet.setTitleRows OO_TitulosR
    

    【讨论】:

      猜你喜欢
      • 2012-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-22
      • 2012-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多