#include <windows.h>
#include <iostream>
void enviarArchivoAImpresora(const char* nombreArchivo) {
HANDLE hPrinter;
DOCINFO di;
DWORD dwWritten;
// Abrir la impresora
if (!OpenPrinter((LPSTR)"Nombre de la impresora", &hPrinter, NULL)) {
std::cerr << "Error al abrir la impresora." << std::endl;
return;
}
// Configurar la información del documento
di.cbSize = sizeof(DOCINFO);
di.lpszDocName = "Documento de prueba";
di.lpszOutput = NULL;
di.lpszDatatype = NULL;
di.fwType = 0;
// Iniciar el documento
if (StartDoc(hPrinter, &di) > 0) {
// Iniciar la página
StartPage(hPrinter);
// Abrir el archivo
FILE* archivo;
fopen_s(&archivo, nombreArchivo, "rb");
if (archivo) {
// Leer el archivo y enviarlo a la impresora
char buffer[4096];
size_t bytesLeidos;
while ((bytesLeidos = fread(buffer, 1, sizeof(buffer), archivo)) > 0) {
WritePrinter(hPrinter, buffer, bytesLeidos, &dwWritten);
}
fclose(archivo);
} else {
std::cerr << "Error al abrir el archivo." << std::endl;
}
// Finalizar la página y el documento
EndPage(hPrinter);
EndDoc(hPrinter);
} else {
std::cerr << "Error al iniciar el documento." << std::endl;
}
// Cerrar la impresora
ClosePrinter(hPrinter);
}
int main() {
const char* nombreArchivo = "ruta/del/archivo.txt"; // Cambia esto por la ruta de tu archivo
enviarArchivoAImpresora(nombreArchivo);
return 0;
}