c++ - 如何使用 C++ 通过 WebBrowser 控件以编程方式更改打印机设置?

标签 c++ printing iwebbrowser2

我在简单的 win32 应用程序中使用 IWebBrowser2。我想以编程方式获取和设置打印机设置,例如页面大小或页面方向。

我找到了很多使用 C# 或 VB 的示例,但没有找到一个使用 C++ 的示例。

完美的变体是使用一些 COM 接口(interface)。

最佳答案

正如您所说的 COM 接口(interface),我假设您不需要 NET 函数,而是 winAPI

这是引用页面的第一眼 View :

  • EnumPrinters 允许获取打印机列表 - 不确定您是否需要它...
  • OpenPrinter 为您提供特定打印机的句柄

    BOOL OpenPrinter(
      LPTSTR pPrinterName,         // printer or server name
      LPHANDLE phPrinter,          // printer or server handle
      LPPRINTER_DEFAULTS pDefault  // printer defaults
    );
    
  • GetPrinter 为您提供有关打印机的许多信息,特别是指定每个用户默认打印机设置的 PRINTER_INFO_9 结构。

    BOOL GetPrinter(
      HANDLE hPrinter,    // handle to printer
      DWORD Level,        // information level (9 to get the PRINTER_INFO_9)
      LPBYTE pPrinter,    // printer information buffer
      DWORD cbBuf,        // size of buffer
      LPDWORD pcbNeeded   // bytes received or required
    );
    typedef struct _PRINTER_INFO_9 {
      LPDEVMODE pDevMode;   // contains actual setting like orientation...
    } PRINTER_INFO_9, *PPRINTER_INFO_9;
    
  • SetPrinter 允许将配置设置回打印机

    BOOL SetPrinter(
      HANDLE hPrinter,  // handle to printer object
      DWORD Level,      // information level (9 to use the PRINTER_INFO_9)
      LPBYTE pPrinter,  // printer data buffer
      DWORD Command     // printer-state command
    );
    

然后您可以使用 StartDocEndDoc 调用来执行实际打印,每个页面都包含 StartPage EndPage , optionnaly regestering 一个 AbortProc 过程。或者,我认为您可以通过 IWebBrowser2 接口(interface)使用配置的打印机,但我从未使用过该部分。

我知道这对于配置和使用打印机的真实示例来说还很远,但至少它应该提供足够的提示和指示。

关于c++ - 如何使用 C++ 通过 WebBrowser 控件以编程方式更改打印机设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36286859/

相关文章:

c++ - 如何从表中选择特定值

c++ - 如何获取有关 Webbrowser 控件实例或 IE Webbrowser 的滚动条的信息?

javascript - 在 C++ 中调试使用 IWebBrowser2 呈现的 javascript/html

c++ - Windows 上的 Clang/LLVM 6.0.0 不需要静态数据成员声明的定义

c++ - Mac 上 C++ 中 for 循环的奇怪行为

javascript - 空/空白打印页

css - 使用 print css,在 :body not showing in Internet Explorer 8 之前添加图像

pdf - 为pdf页面添加边距

c++ - IWebBrowser2:如何强制链接在新窗口中打开?

c++ - 强制注册派生类型