我可以通过编程方式使用OneNote打印机驱动程序吗?

时间:2013-05-10 22:01:57

标签: c++ printing mfc

我有一个处理打印请求的系统服务,并且在给定用户的打印机名称后,将DC连接到该打印机。它启动一个文档,结束它,然后重新开始。

m_PrinterDC.CreateDC (L"WINSPOOL", _printerName.c_str(), NULL, NULL)
m_DC.Attach(m_hprinter)
m_DC.StartDoc(...)
...
mDc.TextOut(...)
...
m_DC.EndDoc()
m_DC.Detatch()

这适用于普通打印机,但使用"打印到OneNote"功能(驱动程序名称'发送到OneNote 2010')它似乎无法正常工作。我想避免仅针对此功能的自定义逻辑;理想情况下,所有打印机都可以工作有什么想法可能会出错?我已尝试更新打印机安全设置,以包含每个人的打印权限;不知道还有什么可以尝试。

1 个答案:

答案 0 :(得分:0)

不幸的是,我必须猜测一些观点,因为你似乎避免了错误条件的详细描述。

首先,如果您检查所有返回值是否成功,那么就可能是onenote本身的问题。使用其他程序打印,检查onenote的状况。

第二,你检查_printerName是否准确吗?如果某些用户使用其他语言操作系统,则驱动程序名称“Send To OneNote 2010”将有所不同或取决于版本。当然,如果检查函数调用的所有返回值,它会记录在日志文件中。但是,我担心您使用'EnumPrinters'来使用确切的打印机名称。

http://msdn.microsoft.com/en-us/library/windows/desktop/dd162931(v=vs.85).aspx

我希望这对你有所帮助。