Red de conocimiento informático - Material del sitio web - Cómo utilizar la función API de Windows para imprimir un documento en .Net

Cómo utilizar la función API de Windows para imprimir un documento en .Net

Me pregunto si desea que la impresora imprima continuamente pero siempre tenga tiempo entremedio.

Eso significa que cada vez que termines de escribir una página, deberás avanzar un poco el papel y seguir escribiendo, ¿no?

Creo que este problema es básicamente imposible de resolver con un programa, porque es el controlador de la impresora el que tiene la última palabra.

A menos que compres una impresora de recibos o gires manualmente el tambor para expulsar el papel después de imprimir cada página.

En Windows, no hay muchas API relacionadas con la impresión. Puedes echar un vistazo a la quinta edición de "Programación de Windows". Hay un dicho que es muy bueno, es decir: aunque dibuja. cosas en la impresora (coordenadas Después de diseñar el sistema y la relación de conversión, se puede decir que imprimir lo que sea que dibujes) es casi lo mismo que generar algo en la pantalla, pero debes saberlo si dibujas algo mal en la pantalla. , simplemente actualícelo, pero la impresora no puede expulsar el papel. El papel solo avanza pero no retrocede.

En Delphi, el lienzo solo se usa para hacerlo más visual y conveniente. El principio es el mismo.

------------------------------------------- ----- ------------------------------------------

Llamar a funciones API de Windows en C#

Llamar a funciones API del sistema de Windows a veces es esencial en la programación. Varios lenguajes de programación han estandarizado los métodos e interfaces de llamada. En el lenguaje C#, el método de llamada es el siguiente. sigue (el siguiente entorno de programación es Visual Studio .NET):

1 Agregue un nuevo elemento de clase en el proyecto, abra el archivo de clase y agregue una referencia al siguiente espacio de nombres al principio del archivo. :

usando System.Runtime.InteropServices;

En el cuerpo principal de la definición de clase, agregue una referencia a la API en forma de llamada estática. este artículo es un ejemplo:

///

/// Abre y cierra la bandeja del CD.

///

[DllImport(" winmm.dll" , EntryPoint="mciSendString", CharSet=CharSet.Auto)]

public static extern int mciSendString (string lpstrCommand,string lpstrReturnstring,int uReturnLength ,int hwndCallback);

///

/// Mostrar y ocultar el puntero del mouse.

///

[DllImport("user32. dll", EntryPoint="ShowCursor", CharSet=CharSet.Auto)]

public static extern int ShowCursor(int bShow);

///

/// Vaciar la papelera de reciclaje.

///

[DllImport("shell32. dll", EntryPoint="SHEmptyRecycleBin", CharSet=CharSet. Auto)]

public static extern long SHEmptyRecycleBin(IntPtr hwnd, string pszRootPath, long dwFlags);

/// < resumen>

/// Abrir navegador

///

[DllImport("shell32.dll", EntryPoint="ShellExecute", CharSet=CharSet.Auto)

]

public static extern int ShellExecute(IntPtr hwnd,string lpOperation,string lpFile,string lpParameters,string lpDirectory,int nShowCmd);

///

/// Maximizar ventana, minimizar ventana, ventana de tamaño normal;

///

[DllImport("user32.dll", EntryPoint= "ShowWindow ", CharSet=CharSet.Auto)]

public static extern int ShowWindow(IntPtr hwnd,int nCmdShow);

2. Con el archivo anterior, puede llamar a la API anterior en Para el procesamiento de eventos de su propio objeto de formulario, el método es el siguiente:

El siguiente strReturn es una variable pública de tipo cadena y ApiCalls se refiere al nombre de la clase creada en el primer paso.

Abra la bandeja del CD:

long lngReturn = ApiCalls.mciSendString("set CDAudio door open", strReturn, 127, 0);

Cierre el CD bandeja:

long lngReturn = ApiCalls.mciSendString("set CDAudio doorclosed", strReturn, 127, 0);

Mostrar el puntero del mouse en el formulario de aplicación:

ApiCalls.ShowCursor(1);

Ocultar el puntero del mouse en el formulario de aplicación:

ApiCalls.ShowCursor(0);

Vaciar el reciclaje Bin :

ApiCalls.SHEmptyRecycleBin(Form.ActiveForm.Handle,"",0x00000000);

Abra la ventana del navegador, textBox1.Text indica la dirección URL a la que se accederá:

Long lngReturn= ApiCalls.ShellExecute(Form.ActiveForm.Handle,"Open",textBox1.Text,"","",1);

Maximizar ventana:

ApiCalls.ShowWindow(Form.ActiveForm.Handle,3);

Minimizar ventana:

ApiCalls.ShowWindow(Form.ActiveForm.Handle,2);

Restaurar la ventana de tamaño normal:

ApiCalls.ShowWindow(Form.ActiveForm.Handle,1);