Вверх ↑
Ответов: 701
Рейтинг: 146
#1: 2021-12-25 16:36:51 ЛС | профиль | цитата
Dad2016 писал(а):
Решился сделать программу для сканирования документов в среде HiAsm

Вот мой вариант (VBJScript и печать на виртуальном принтере 'Microsoft Print to PDF')

Add(MainForm,4378171,147,147)
{
Width=348
Height=326
link(onCreate,5107036:doStrCat,[])
}
Add(Button,4982637,189,252)
{
Left=50
Top=240
Width=145
Height=25
Caption="Сканировать"
link(onClick,13939950:doString,[])
}
Add(VBJScript,9069530,336,252)
{
WorkPoints=#11:##SetScript|
Script=#0:|0:|
UseName=0
}
Add(FormatStr,13939950,252,252)
{
DataCount=9
Mask="Set CommonDialog = CreateObject("WIA.CommonDialog")\r\nSet DeviceManager = CreateObject("WIA.DeviceManager")\r\nSet filesys = CreateObject("Scripting.FileSystemObject")\r\nSet DevInfo = DeviceManager.DeviceInfos(1)\r\nSet Device = DevInfo.Connect\r\n\r\nDevice.Items(1).Properties("6146").Value = %2\r\nDevice.Items(1).Properties("6147").Value = %3\r\nDevice.Items(1).Properties("6148").Value = %4\r\nDevice.Items(1).Properties("6149").Value = %5\r\nDevice.Items(1).Properties("6150").Value = %6\r\nDevice.Items(1).Properties("6151").Value = %7\r\nDevice.Items(1).Properties("6152").Value = %8\r\nDevice.Items(1).Properties("4104").Value = %9\r\n\r\nSet img = CommonDialog.ShowTransfer(Device.Items(1), "{B96B3CAB-0728-11D3-9D7B-0000F81EF32E}", true)\r\nimg.SaveFile "%1"\r\nCall CommonDialog.ShowPhotoPrintingWizard("%1")\r\nfilesys.DeleteFile "%1"\r\n"
link(onFString,9069530:##SetScript,[])
link(Str1,5107036:Result,[(258,205)(216,205)])
link(Str2,937155:Text,[])
link(Str3,11072214:Text,[(272,201)(307,201)])
link(Str4,2749968:Text,[(279,208)(349,208)])
link(Str5,13018292:Text,[(286,215)(391,215)])
link(Str6,12934951:Text,[(293,222)(433,222)])
link(Str7,2157395:Text,[(300,229)(475,229)])
link(Str8,6461700:Text,[(307,236)(517,236)])
link(Str9,8310606:Text,[(314,243)(559,243)])
}
Add(Dir,715798,196,112)
{
}
Add(StrCat,5107036,210,161)
{
Str2="image.bmp"
link(Str1,715798:TempDir,[])
}
Add(Label,8807276,259,119)
{
Left=60
Top=25
Width=250
Height=17
Caption="colors:4 is Black-white,gray is 2, color 1 (Color Intent)"
AutoSize=1
}
Add(Edit,937155,259,161)
{
Left=5
Top=20
Text="1"
}
Add(Label,15200907,301,119)
{
Left=60
Top=50
Width=250
Height=17
Caption="dots per inch/horizontal"
AutoSize=1
}
Add(Edit,11072214,301,161)
{
Left=5
Top=45
Text="600"
}
Add(Label,13718847,343,119)
{
Left=60
Top=75
Width=250
Height=17
Caption="dots per inch/vertical"
AutoSize=1
}
Add(Edit,2749968,343,161)
{
Left=5
Top=70
Text="600"
}
Add(Label,242171,385,119)
{
Left=60
Top=100
Width=250
Caption="x point where to start scan"
AutoSize=1
}
Add(Edit,13018292,385,161)
{
Left=5
Top=95
Text="0"
}
Add(Label,15685127,427,119)
{
Left=60
Top=125
Width=250
Caption="y point where to start scan"
AutoSize=1
}
Add(Edit,12934951,427,161)
{
Left=5
Top=120
Text="0"
}
Add(Label,13924702,469,119)
{
Left=60
Top=150
Width=250
Caption="horizontal exent DPI x inches wide"
AutoSize=1
}
Add(Edit,2157395,469,161)
{
Left=5
Top=145
Text="5100"
}
Add(Label,15818640,511,119)
{
Left=60
Top=175
Width=250
Caption="vertical extent DPI x inches tall"
AutoSize=1
}
Add(Edit,6461700,511,161)
{
Left=5
Top=170
Text="7002"
}
Add(Label,8818080,553,119)
{
Left=60
Top=200
Width=250
Caption="bits per pixel"
AutoSize=1
}
Add(Edit,8310606,553,161)
{
Left=5
Top=195
Text="8"
}

Если выдаст ошибку "Индекс вышел за пределы диапазона." значит у вас не подключен сканер.

Dad2016 писал(а):
1. двухстороннее сканирование.

Мой сканер не поддерживает двухстороннее сканирование поэтому я не могу проверить будет работать или нет.

Если я не ошибаюсь, то в Windows10 установлен принтер 'Microsoft Print to PDF'.
Прикладываю схему для установки/удаления виртуального принтера ‘Microsoft Print to PDF' (если у кого-то он отсутствует).

Add(MainForm,2953706,21,105)
{
Width=234
Height=103
}
Add(Button,4982637,112,112)
{
Left=5
Top=5
Width=200
Caption="Установка PDF принтера"
link(onClick,9357162:doString,[])
}
Add(Button,15440676,112,161)
{
Left=5
Top=30
Width=200
Caption="Удаление PDF принтера"
link(onClick,8322333:doString,[])
}
Add(FormatStr,9357162,182,112)
{
Mask="Enable-WindowsOptionalFeature -online -FeatureName Printing-PrintToPDFServices-Features"
link(onFString,11560740:doWork2,[])
}
Add(FormatStr,8322333,182,161)
{
Mask="Disable-WindowsOptionalFeature -online -FeatureName Printing-PrintToPDFServices-Features"
link(onFString,11560740:doWork3,[(235,167)])
}
Add(WinExec,1409572,287,105)
{
FileName="powershell"
Mode=0
Action="runas"
}
Add(HubEx,11560740,231,112)
{
link(onEvent,1409572:doShellExec,[])
}

карма: 15

0