TWAIN Python: сканер InoTec инициализируется, но сканирование не запускаетсяPython

Программы на Python
Ответить
Anonymous
 TWAIN Python: сканер InoTec инициализируется, но сканирование не запускается

Сообщение Anonymous »

Я интегрирую сканер документов InoTec Scamax 621 с использованием интерфейса TWAIN в Python.

Драйвер TWAIN, кажется, загружается правильно — источник обнаруживается и открывается — но после инициализации фактическое сканирование не начинается.
Сценарий Python использует модуль twain (pytwain).

Исходный код открывается успешно, но когда я вызываю метод сбора данных, изображение не передается, и нет сообщения об ошибке, четко указывающего, что не так.
Я также пробовал сканировать с помощью Ricoh fi-7300N, и получение TWAIN работало правильно.
Проблема возникает только с InoTec Scamax 621, который инициализируется нормально, но никогда не запускает сканирование.

⚙️ Среда
  • Windows 11 (64-разрядная версия)
  • Python 3.12 (32-разрядная версия)
  • Путь TWAIN DSM: C:\Windows\twain_32.dll
  • Сканер: InoTec Scamax 621
  • Сканер SDK: TWAIN 3.0.0.2
  • Модуль Python TWAIN: pytwain v1.0
[2025-11-05 15:03:48.377111] [0x00001a6c] [info] Добавление внутреннего
профиля сканера _Serie 6 Tri Referentiel [2025-11-05 15:03:48.378323]
[0x000058ac] [info] Значения: [2025-11-05 15:03:48.378323] [0x000058ac]
[info] DG_CONTROL / DAT_IDENTITY /
MSG_CLOSEDS [2025-11-05 15:03:48.391484] [0x000058ac] [информация] Стадия
уменьшена до TWST_DSMOPEN [2025-11-05 15:03:48.409404] [0x000058ac]
[info] ScannerControlCB string Scanner Offline [2025-11-05
15:03:48.971204] [0x000058ac] [предупреждение] выгрузка DLL. Исключение в
обратном вызове Tkinter Traceback (последний последний вызов): Файл
"profil4.py", строка 19, в сканировании... twain.Exceptions.SequenceError


🧩 Код Python
from io import BytesIO
import twain
import tkinter
from tkinter import ttk
import logging
import PIL.ImageTk
import PIL.Image

scanned_image = None

def scan():
global scanned_image
with twain.SourceManager(root) as sm:
src = sm.open_source()
if src:
src.request_acquire(show_ui=False, modal_ui=False)
(handle, remaining_count) = src.xfer_image_natively()
bmp_bytes = twain.dib_to_bm_file(handle)
img = PIL.Image.open(BytesIO(bmp_bytes), formats=["bmp"])
width, height = img.size
factor = 600.0 / width

scanned_image = PIL.ImageTk.PhotoImage(
img.resize(size=(int(width * factor), int(height * factor)))
)
frm.destroy()
ttk.Label(root, image=scanned_image).pack(side="left", fill="both", expand=1)
else:
print("User clicked cancel")

logging.basicConfig(level=logging.DEBUG)
root = tkinter.Tk()
frm = ttk.Frame(root, padding=10)
frm.grid()
ttk.Button(frm, text="Scan", command=scan).grid(column=0, row=0)
root.mainloop()

🧾 TWAIN Log Summary (short version)

The TWAIN DSM (twain_32.dll) loaded successfully

The InoTec SCAMAX 621 scanner was detected and opened correctly

Firmware and configuration information were retrieved without errors

Multiple scan profiles were loaded successfully

The scanner initialization completed normally, but the acquisition phase failed with error code 1 – no image transferred

> I tried setting `show_ui=True` and changing the transfer mode to memory, but the scanner still doesn’t start acquisition.

That line can help your post avoid “needs details or clarity” flags.

### 🧾 TWAIN Log Screenshots

![TWAIN log showing initialization]
https://i.sstatic.net/3GZ9uygl.png



Подробнее здесь: https://stackoverflow.com/questions/798 ... can-starts
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»