Puedo comenzar con un archivo PDF, PRN o PS. ¿Cómo lo envío a una impresora USB usando Python? ¿Con qué módulo debería comenzar?Enviar un trabajo de impresión a una impresora USB utilizando Python
Respuesta
Por lo que yo sé, estos son los dos paquetes disponibles:
Parece que usted está utilizando Windows, así que vamos a empezar con eso - la respuesta cambia si estás usando Linux.
Hay dos formas de imprimir en Windows. La primera forma más común es enviar comandos de dibujo individuales a través de la interfaz GDI de Windows. Para hacer esto, debe colocar cada elemento individual en la página en su ubicación correcta (cadenas de texto, imágenes y formas) mientras selecciona los colores y fuentes apropiados. Fácil si está generando los datos usted mismo, mucho más difícil si tiene que analizar un archivo que está leyendo.
La otra opción es enviar a la impresora en modo "en bruto", donde el controlador de la impresora esencialmente se pasa por alto. Para que esto funcione, la impresora debe comprender de forma nativa la secuencia de bytes que le suministra. Hay algunas impresoras que entienden Postscript de forma nativa, pero no estoy seguro acerca de PDF, y PRN no es un formato estándar.
que nunca he hecho la impresión en bruto a través de Python a mí mismo, pero aquí hay un enlace a un corto fragmento de código de muestra (y una idea de los problemas a esperar): http://bytes.com/topic/python/answers/512143-printing-raw-postscript-data-windows
import wx
import win32api
import win32print
class ComboBoxFrame(wx.Frame):
def __init__(self):
# creates a drop down with the list of printers available
wx.Frame.__init__(self, None, -1, 'Printers', size=(350, 300))
panel = wx.Panel(self, -1)
list=[]
#Enum printers returns the list of printers available in the network
printers = win32print.EnumPrinters(
win32print.PRINTER_ENUM_CONNECTIONS
+ win32print.PRINTER_ENUM_LOCAL)
for i in printers:
list.append(i[2])
sampleList = list
wx.StaticText(panel, -1, "Please select one printer from the list of printers to print:", (15, 15))
self.combo =wx.ComboBox(panel, -1, "printers", (15, 40), wx.DefaultSize,sampleList, wx.CB_READONLY)
btn2 = wx.Button(panel, label="Print", pos=(15, 60))
btn2.Bind(wx.EVT_BUTTON, self.Onmsgbox)
self.Centre()
self.Show()
def Onmsgbox(self, event):
filename='duplicate.docx'
# here the user selected printer value will be given as input
#print(win32print.GetDefaultPrinter())
win32api.ShellExecute (
0,
"printto",
filename,
'"%s"' % self.combo.GetValue(),
".",
0
)
print(self.combo.GetValue())
if __name__ =='__main__':
app = wx.App()
ComboBoxFrame().Show()
app.MainLoop()
Un volcado de código, que puede ser técnicamente correcto, no necesariamente ayuda al OP o a los visitantes futuros. Completaría la respuesta explicando el código, incluso los comentarios dentro del código son útiles. – Bugs
- 1. Imprimir en una impresora USB con Python en una Mac
- 2. Enviando datos a la impresora USB en C#?
- 3. Impresión desde ASP.NET a una impresora de red
- 4. Conduzca una impresora POS a través de USB en C#
- 5. Enviar raw ZPL a la impresora Zebra a través de USB
- 6. Enviar documento a la impresora con C#
- 7. aplicación heredada de DOS con impresora USB
- 8. Enviar un informe directamente a la impresora con Reporting Services
- 9. Impresión en Java directamente en una impresora de red Postscript
- 10. Impresión de Android a móvil Impresora Bluetooth con PhoneGap
- 11. javax.print.PrintException: La impresora no está aceptando trabajo
- 12. ¿Cómo enviar archivos pcl a la impresora en Windows 7?
- 13. Cómo enviar secuencias de escape de bajo nivel a una impresora en OS X?
- 14. Enviar MVC ActionResult a la impresora
- 15. Impresora de impresión en red de PHP
- 16. impresión silenciosa + especificar impresora no predeterminada
- 17. Enviar un mensaje xmpp utilizando una biblioteca de Python
- 18. Enviar comandos ESC a una impresora en C#
- 19. Impresión de material en rieles (literalmente en una impresora)
- 20. ¿Está conectado a una impresora Brother PTouch?
- 21. enviar un archivo xml a http utilizando python
- 22. ¿Cómo enviar texto a la impresora con la dirección de derecha a izquierda en C#
- 23. Enviar un código de barras a una impresora Zebra desde una aplicación Java
- 24. Facturación de extranjeros a través de la impresora POS e impresión de imágenes
- 25. Cómo obtener el estado del trabajo de impresión con C#
- 26. enviar datos de android a PC a través de USB
- 27. enviar mensajes MIDI a través de USB en Android
- 28. ¿Cómo detectar si una impresora USB conectada está encendida o apagada?
- 29. enviar mensajes de texto sin formato a la impresora predeterminada
- 30. Enviar un correo electrónico utilizando la secuencia de comandos python
Esto es realmente una pregunta para sitio de superusuario. – Keith
Dice "USB" como si cambiara la pregunta. –
@Ignacio: Tal vez pensó que sí. Estamos todos aquí para aprender. – mpen