当前位置: 首页 > 知识库问答 >
问题:

打印时如何启用订书机?

耿学义
2023-03-14

我正在尝试从excel打印一个word文档。

除了我需要为此打印作业启用订书机外,此操作有效。

我的打印机是Xerox Workcenter 5755,可以在左上角放一到两个订书钉。

Excel显然可以管理这一点,我不需要进入打印机驱动程序属性来启用装订,我可以直接从文件打印页面启用。

当我转到这个页面时,在“设置”下面有一个下拉列表,上面写着“无订书机”,带有订书机符号。

如果我点击它,我会选择“没有订书钉”、“订书钉左上角”和“左上角的两个订书钉”以及其他灰色的选择。

我试着录制一个宏以使用装订左上角和双面打印进行打印。

这就是它给我的。

ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
    IgnorePrintAreas:=False

这既不装订也不双面打印。

我阅读了关于这个主题的多个线程,但它们都很旧,并没有真正回答这个问题,因为在所有情况下,询问者都需要更改属性中的驱动程序设置,所以这不是我的情况。我有一台打印机,它将订书机功能暴露给excel。

尽管如此,我还是不得不求助于我找到的答案之一,那就是使用sendkey,这是非常不可靠的。

下面是我的代码。

Sub PrintChecklist()
    Dim myprinter As String
    Dim PrintersList() As String
    Dim printer_name As String
    Dim x As Long

    Dim wordapp As Word.Application
    Dim CBC As CommandBarControl

    Set wordapp = CreateObject("word.Application")


    wordapp.Documents.Open "C:\Users\XXXXX\Desktop\pool3.doc"

    wordapp.Visible = True

    myprinter = Application.ActivePrinter

    wordapp.WindowState = wdWindowStateMaximize

    PrintersList() = GetPrinterFullNames

    For x = 1 To UBound(PrintersList)
        If InStr(1, PrintersList(x), "MYPRINTERNAME", vbTextCompare) > 0 Then _
           printer_name = PrintersList(x)
    Next x

    wordapp.ActivePrinter = printer_name

    DoEvents

    wordapp.Application.Activate

    ' only works in only one word opened
    Dim lRet As Long

    lRet = FindWindow("OpusApp", vbNullString)
    SetForegroundWindow lRet
    On Error Resume Next
    Set CBC = Application.VBE.CommandBars.FindControl(ID:=752)
    On Error GoTo 0



    If Not CBC Is Nothing Then
        CBC.Execute
        DoEvents

        '~~> File --> Print
        SendKeys "%fp"
        Sleep 3000
        SendKeys "k"
        Sleep 100
        SendKeys "{DOWN}"
        Sleep 100
        SendKeys "~"
        Sleep 100
        SendKeys "%fp"
        Sleep 100
        Sleep 1000
        SendKeys "s"
        SendKeys "3-5,1-2"

        SendKeys "%fp"

        Sleep 1000
        SendKeys "d"
        SendKeys "{DOWN}"
        SendKeys "~"

        SendKeys "%fp"

        Sleep 2000
        SendKeys "p"
        SendKeys "{NUMLOCK}"


    End If


    Sleep 5000

    wordapp.ActivePrinter = myprinter
    wordapp.Quit SaveChanges:=wdDoNotSaveChanges


End Sub

它可以工作,但如果有延迟或用户在10秒内触摸任何东西,那么很快就会出错。

欢迎任何建议!

共有1个答案

宗政唯
2023-03-14

由于这件事引起了人们的注意,但没有得到官方的答复,下面是我如何处理这件事的。

我的打印机是网络打印机,所以我第二次用另一个名称将其添加到我的计算机中。我将该打印机的默认设置为“带左上装订”

现在,如果我想用订书钉打印,我打印到那个打印机名称而不是另一个。

有点古怪但工作可靠

 类似资料:
  • 我尝试使用PrintTicket对象(Microsoft)设置订书钉属性,但它不起作用。我已验证是否安装了正确的打印驱动程序。当我手动打印时,我能够钉上打印输出,所以我确信打印机支持它。 我编辑了这篇文章以包含完整的代码。我在这里使用的PDF库是pdfiumviewer。我没有检查这段代码中的返回值,但如果我运行它,得到的返回值给我“ConflictStatus.ConflictResolved”

  • 1.打印订单的间距怎么修改? 打印订单的模板是系统自带的。需要改的话参考二开手册。

  • WooCommerce的订单页面内容繁多,如果直接打印后台页面,想必是惨不忍睹,还好有一款免费插件可以解决这个问题——WooCommerce Print Invoices & Delivery Notes,这个插件的好处是通过修改模版,你可以打印订单中的任何内容,漂亮的打印出来。 关于该插件的使用不再赘述,本文介绍如何修改打印模版,加入自己需要的数据。比如,加入产品缩略图和产品分类,效果如下图所示

  • 问题内容: keytool中是否可以打印证书的公钥?我试过了: 但是它仅提供以下信息: 在此没有公钥。 问题答案: 您可以使用做到这一点。 如果此证书是DER编码的(二进制),请使用: 用于PEM编码的使用选项(或完全不设置)。 要查看公钥的详细信息,请使用:

  • 问题内容: 我想更改网页上的某些内容。我也想隐藏一些东西。打印时,有没有办法用CSS做到这一点?我尤其希望能够隐藏一些DIV及其包含的所有DIV。 问题答案: 可以使用单独的打印样式表来实现。该属性是关键:

  • 我正在从事一个Micronaut项目,我想看看环境变量是否来自应用程序。当应用程序在本地启动时,使用@Value注释正确分配yml。但每次应用程序启动时,它都会向我显示变量没有从应用程序分配给环境变量。yml文件。 这是我的代码: 这是我的application.yml 输出: 正如我们看到的,两个变量应用YmlTestString和keyId没有被分配给环境变量。有没有办法解决这个问题,并获得: