开发可以读取文件和写入额外数据的打印机驱动程序

Posted

技术标签:

【中文标题】开发可以读取文件和写入额外数据的打印机驱动程序【英文标题】:Develop Printer Driver which can Read file and Write extra data 【发布时间】:2019-01-05 05:38:31 【问题描述】:

我需要开发一个打印机驱动程序,它可以:-

    阅读打印出来的文件(知道文件里面的数据) 写入额外信息到打印文件的末尾。 (例如条形码或二维码)

我打算使用 V4 打印机驱动程序 作为模板来开始我的开发。我已经尝试在 Visual Studio 中构建这个 V4 打印机驱动程序。

V4 printer driver solution explorer

了解V4 打印机驱动程序的架构可能需要很多时间。除此之外,我还是个驱动开发的新手,所以微软提供的文档我很难理解。

任何人都可以建议我应该从哪里开始编码并向我推荐任何有用的方法/函数或库。如果有人能推荐一些有用的相关阅读材料以及我应该知道哪些基础知识,将会很有用。

【问题讨论】:

【参考方案1】:

请参阅 Microsoft 示例代码 here。

在您的“V4 Printer Driver”解决方案中创建一个“Render Filter”项目(C++项目),并在新创建的Render Filter的“StartOperation_throws”方法中添加示例代码。

然后使用以下示例代码将自定义内容添加到您的文件中:

XPS_COLOR testColor;

testColor.value.sRGB.alpha=0xFF;
testColor.value.sRGB.red=0xFF;
testColor.value.sRGB.green=0xFF;
testColor.value.sRGB.blue=0xFF;
testColor.colorType = XPS_COLOR_TYPE_SRGB;

FLOAT Font_Size = 14;
XPS_POINT OrgPoint = 123,123;
LPCWSTR TestStr = _T("Sample Text");
LPCWSTR Name_fnt = _T("SampleFontFile.TTF");

最后,使用上述参数调用“AddCustomTextToXpsDoc”,将您的文本添加到 可打印的 xps 文件。

【讨论】:

以上是关于开发可以读取文件和写入额外数据的打印机驱动程序的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 Python 代码在从文本文件中读取时会打印额外的字符“”?

学习到的一点点的nodejs文件系统知识

将字符串打印到文件,为啥需要额外的位?

android 底层开发入门

如何读取/打印(_io.TextIOWrapper)数据?

在 C++11 中读取/写入/打印 UTF-8