【问题标题】:How to set Paper Type in Word using MS Access VBA如何使用 MS Access VBA 在 Word 中设置纸张类型
【发布时间】:2013-12-06 11:22:28
【问题描述】:

我在 Word 中打开一个文档(在 Access 中使用 VBA),然后我在文本上进行一些查找和替换以更新日期等。然后我设置打印机托盘并发送到打印机(打印输出) .

这部分效果很好,但是客户有一台柯尼卡美能达打印机,当我们将文档发送到 TrayX 时,它神秘地决定将纸张类型设为“信头”,此时打印机将在背面打印 论文的(嗯??)。这似乎是打印机的一个怪癖,但解决这个怪癖的方法是使用“普通纸”的纸张类型进行打印。 所以我想我会在调用“PrintOut”之前设置纸张类型,除了我找不到任何设置纸张类型的方法!我可以指定几乎所有其他设置,但不能指定纸张类型。

任何想法,我错过了什么?

【问题讨论】:

  • AFAIK,没有直接的方法来设置Paper Type。另一种方法是使用SendKeys,如图所示HERE
  • 哎呀发送键...不是我最喜欢的编码自动化方式,如果我找不到在计算机上正确设置的方法,可能不得不这样做。
  • 有一些代码显示了如何在msdn.microsoft.com/en-us/library/office/ff197339.aspx 与 Win32 打印机 API 接口(甚至可能是关于它的一些问题 - 我没有看过)
  • 我正在使用其中的一些代码来检索纸箱。恐怕纸张名称只会包含纸张尺寸,但我会测试一下,看看我得到了什么。
  • bibadia,这是一个很好的链接,但是它没有获取诸如“普通纸”、信头纸、透明纸等纸张类型。相反,我会收到 Letter、Legal、Statement 等。

标签: ms-access ms-word vba


【解决方案1】:

打印时无法设置纸张类型。事实证明,当您将 Word 设置为将第一页打印到纸盘 (X) 并将其他页面打印到纸盘 (Y) 时,柯尼卡驱动程序会打印到第一页纸盘的“背面”。

最终客户想要双面打印,这意味着为了将前 2 页打印到信头纸上,我们需要进行 2 次 Application.PrintOut 函数调用:1 次用于第 1-2 页到纸盘 X,另一个用于 3 和最多托盘 Y。

所以最终的答案是像这样拨打 2 个电话:

    oDoc.PageSetup.FirstPageTray = CLng(rstDocs!intCofAWordTraySetting)
    oDoc.PageSetup.OtherPagesTray = CLng(rstDocs!intCofAWordTraySetting)
    oDoc.PrintOut Copies:=CInt(rstDocs!intCopies), Pages:="1-2"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-24
    • 2012-07-05
    • 1970-01-01
    • 2021-03-27
    • 1970-01-01
    • 2012-01-23
    相关资源
    最近更新 更多