".... OpenPrinter (printerName.Normalize (), out printerHandle, IntPtr.Zero) ..."
может потребоваться также установить для IntPtr.Zero значение raw.
Принтеры, особенно матричные, могут быть прямыми, используя DOS, метод CMD, который намного проще и быстрее для печати, также может использовать базовые коды команд ESC / 0x1b для управления принтером. , и т.д.
как windowos / graphic, он может быть графическим и необработанным, установив openprinter (,, printer_defaults) printer_defaults и doc-inf, pls ссылаются на ссылки win32 sdk.
для любой необработанной печати он может использовать команду ESC (см. Подробности в руководстве к принтеру), чтобы напечатать любой графический объект в виде окон
водитель сделал.
в качестве печатного файла, он просто добавляет любую из первых 20 ascii, таких как oxoc (formfeed) 0x0doa (0x0a, 0x0d, \ n или перевод строки)
у каждого принтера есть небольшие различия команд ESC, но использование основной команды ESC оштрафовано для большинства подобных точек матрицы.
как пример необработанного режима,
FormFeed, \ n & \ r
char cFormfeed = 0x0c; // или \ f
char cStr [] = "1 = текст, ...... @ \ n2 = текст ..... \ r \ f3 = текст ......."; // использовать \ f без cFormfeed, вы можете решить это
cStr> lpt1; // вывод на принтер dos или cmd, причины должны получить доступный lpt1.
распечатка будет
первая страница
1 = текст, ...... @
2 = текст .....
на 2-й странице -
= 3 текст .......
надеюсь, это поможет, удачи.