Получение данных для печати - Windows (Redmon)

Я пытаюсь разработать приложение для извлечения данных для печати, редактирования его содержимого, а затем распечатать данные. я использую RedMon для этой цели. Но все учебники, которые я видел в Интернете на данный момент, относятся к хранению данных в PDF с помощью RedMon,

Я хочу иметь возможность настроить RedMon на платформе Windows, так что он записывает все данные печати (данные, которые обязательно появятся на бумаге для печати), как это в .txt файл или, возможно, предоставить непосредственно в качестве входных данных для java приложение, которое я сделал.

Я до сих пор не смог найти решение для этого. Это достижимо?

2 ответа

Вот решение в 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);
}

Вы знаете, что ваши "данные печати" не одинаковы для всех принтеров? Формат файла зависит от драйвера принтера, используемого для определенной очереди печати.

Если вы действительно следовали всем учебным пособиям RedMon, которые учат, кому хранить данные для печати в PDF, вы наверняка заметили 2 вещи:

  • во-первых, все эти решения используют драйверы принтера PostScript;

  • во-вторых, все эти решения используют RedMon в качестве монитора печати, который собирает данные PostScript и передает их в Ghostscript для преобразования их в PDF.

Так что для ваших целей вам, скорее всего, не нужен Ghostscript. Вместо запуска Ghostscript вы можете напрямую сохранять полученные данные в виде файла.

Однако вы можете продолжать использовать PostScript только в том случае, если ваш принтер действительно поддерживает PostScript. И, конечно, вы должны разбираться в PostScript, чтобы "редактировать его содержимое".

Если ваш принтер использует другой язык принтера (PCL, TIFF, ESC/P, ESC/POS или любой другой), вам придется заменить драйвер принтера PostScript на любой подходящий. И, конечно, вам нужно будет достаточно хорошо понимать язык принтера, чтобы "редактировать его содержимое"...

Другие вопросы по тегам