gpt4 book ai didi

python - Windows Python 代码不适用于 Linux Debian

转载 作者:太空宇宙 更新时间:2023-11-04 10:36:51 25 4
gpt4 key购买 nike

该代码生成一个 QR 码并打印它,但由于不支持导入的库(win32print、Win32ui),它无法在 Debian 操作系统上运行。谁能告诉我如何在不更改整个代码的情况下在 Debian 上运行它。


from random import randint
import win32print
import win32ui

from PIL import Image, ImageWin
from PIL._imaging import font
from PIL import ImageFont
from PIL import ImageDraw



HORZRES = 8
VERTRES = 10

LOGPIXELSX = 88
LOGPIXELSY = 90

PHYSICALWIDTH = 110
PHYSICALHEIGHT = 111


PHYSICALOFFSETX = 112
PHYSICALOFFSETY = 113


__author__ = 'masoodhussain'

import qrcode
import subprocess
import os

qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=4,
)

qr.add_data('Masooddkjfdlfs,kokdfds sddshfhkjshfljsdhkjfdrtyyhtfhfghgh3')
qr.make(fit=True)

"subprocess.call(['lp', 'foo.png'])"

printer_name = win32print.GetDefaultPrinter()

img = qr.make_image()

img.show()

random_number= randint(0,10000)

img.save('label_'+str(random_number)+'.png')

file_name = 'label_'+str(random_number)+'.png'

print(file_name)


hDC = win32ui.CreateDC ()
hDC.CreatePrinterDC (printer_name)
printable_area = hDC.GetDeviceCaps (HORZRES), hDC.GetDeviceCaps (VERTRES)
printer_size = hDC.GetDeviceCaps (PHYSICALWIDTH), hDC.GetDeviceCaps (PHYSICALHEIGHT)
printer_margins = hDC.GetDeviceCaps (PHYSICALOFFSETX), hDC.GetDeviceCaps (PHYSICALOFFSETY)


bmp = Image.open (file_name)


if bmp.size[0] > bmp.size[1]:
bmp = bmp.rotate (90)

ratios = [1.0 * printable_area[0] / bmp.size[0], 1.0 * printable_area[1] / bmp.size[1]]
scale = min (ratios)


hDC.StartDoc (file_name)
hDC.StartPage ()

dib = ImageWin.Dib (bmp)
scaled_width, scaled_height = [int (scale * i) for i in bmp.size]
x1 = int ((printer_size[0] - scaled_width) / 2)
y1 = int ((printer_size[1] - scaled_height) / 2)
x2 = x1 + scaled_width
y2 = y1 + scaled_height
dib.draw (hDC.GetHandleOutput (), (x1, y1, x2, y2))

hDC.EndPage ()
hDC.EndDoc ()
hDC.DeleteDC ()

当我通过删除不受支持的库来运行代码时,它会在这部分出现错误:错误导入

import qrcode

我正在尝试导入整个文件夹以使用其他文件。在 Windows 中,它运行良好。任何帮助将不胜感激。谢谢

最佳答案

此代码等同于问题中发布的代码。

from random import randint
import cups

from PIL import Image, ImageWin
from PIL._imaging import font
from PIL import ImageFont
from PIL import ImageDraw


__author__ = 'masoodhussain'

import qrcode

qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=5,
border=2,
)

qr.add_data('localhost:5070productinfo')
qr.make(fit=True)

conn= cups.Connection()
printer_name = conn.getPrinters()

printer_name = printer_name.keys()[0]

printqueuelength = len(conn.getJobs())

img = qr.make_image()

img.show()

random_number= randint(0,10000)

img.save('label_'+str(random_number)+'.png')

file_name = 'label_'+str(random_number)+'.png'

print(file_name)

conn.printFile(printer_name,file_name,"Hello", options ={'media':'25x25mm'})

重要的部分是安装所需的库并将媒体更改为所需的大小。

关于python - Windows Python 代码不适用于 Linux Debian,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36968742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com