首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取打印数据- Windows (Redmon)

获取打印数据- Windows (Redmon)
EN

Stack Overflow用户
提问于 2012-09-30 01:19:03
回答 2查看 1.3K关注 0票数 1

我正在尝试开发一个应用程序来检索打印数据,编辑其内容,然后打印数据。我正在使用RedMon来达到这个目的。但到目前为止,我在网上看到的所有教程都与使用RedMon将数据存储到PDF中有关。

我希望能够在windows平台上配置RedMon,以便它将整个打印数据(绑定到打印纸上的数据)按原样写入.txt文件,或者直接作为输入提供给我创建的java应用程序。

到目前为止,我一直没有成功地找到解决方案。这是可以实现的吗?

EN

回答 2

Stack Overflow用户

发布于 2012-09-30 22:56:50

你知道你的‘打印数据’并不是所有的打印机都是一样的,是吗?其文件格式取决于用于特定打印队列的打印机驱动程序。

如果你真的遵循了所有RedMon教程,这些教程教你把打印数据存储到PDF中,你肯定会注意到两件事:

  • firstly,所有这些解决方案都使用 PostScript 打印机所有这些解决方案都使用RedMon作为打印监视器,捕获PostScript数据并将其交给Ghostscript以将其转换为

因此,对于您的目的,您很可能不需要Ghostscript。代替运行Ghostscript,您可以直接将接收到的数据按原样保存到文件中。

但是,只有当打印机确实是支持PostScript的设备时,才能继续使用PostScript。当然,你必须精通PostScript才能“编辑它的内容”。

如果您的打印机使用另一种打印机语言(PCL、TIFF、ESC/P、ESC/POS或其他语言),那么您将不得不用任何合适的语言替换PostScript打印机驱动程序。当然,你必须能够充分理解各自的打印机语言,以便“编辑其内容”……

票数 0
EN

Stack Overflow用户

发布于 2014-07-29 21:05:13

下面是一个C语言的解决方案:

代码语言:javascript
复制
int main(int argc, char** argv)
{
    HANDLE handle;
    unsigned char ucBuffer[1024];
    FILE *pFileTarget;
    DeleteFile("c:\\toprint.txt");
    pFileTarget=fopen("c:\\toprint.txt","wb");
  handle = GetStdHandle(STD_INPUT_HANDLE);

    while (1)
    {
        DWORD dwBytesRead=0;
        if(ReadFile(  handle,ucBuffer,1024, &dwBytesRead,NULL) == 0)
    {
            break;
        }else
            fwrite(ucBuffer,dwBytesRead,1,pFileTarget);
    }
    fclose(pFileTarget);
  CloseHandle(handle);
    return (EXIT_SUCCESS);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12654748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档