1

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

我希望能够RedMon在 Windows 平台上进行配置,以便将整个打印数据(必然出现在打印纸上的数据)原样写入.txt文件,或者直接作为输入提供给java我的应用程序取得了。

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

4

2 回答 2

0

您知道所有打印机的“打印数据”都不相同,是吗?其文件格式取决于用于特定打印队列的打印机驱动程序。

如果您真的遵循了所有教谁将打印数据存储为 PDF 的 RedMon 教程,您肯定会注意到两件事:

  • 首先,所有这些解决方案都使用PostScript打印机驱动程序;

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

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

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

如果您的打印机使用另一种打印机语言(PCL、TIFF、ESC/P、ESC/POS 或其他),那么您必须用适当的方式替换 PostScript 打印机驱动程序。当然,您必须能够很好地理解相应的打印机语言才能“编辑其内容”......

于 2012-09-30T14:56:50.177 回答
0

这是C中的一个解决方案:

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);
}
于 2014-07-29T13:05:13.470 回答