Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   Работа со сканером (https://javascript.ru/forum/css-html-internet-explorer/14865-rabota-so-skanerom.html)

Kipetcoff 04.02.2011 15:27

Работа со сканером
 
У меня есть ASP.NET веб-приложение. Задача давольно сложна. Нужно отсканировать на стороне клиента документ и отправить картинку на сервер и сохранить её. Половину задачи я решил. Я смог с помощью JavaScript запустить процесс сканирования и создать объект картинки.

function ConvertImage(img, wiaformat) {
        var IP = new ActiveXObject("WIA.ImageProcess");

        IP.Filters.Add(IP.FilterInfos("Convert").FilterID);
        IP.Filters(1).Properties("FormatID").Value = wiaformat;
        IP.Filters(1).Properties("Quality").Value = 85;

        img2 = IP.Apply(img);
        return img2;
}

var ScannerDeviceType = 1;

    var ColorIntent = 1;
    var GrayscaleIntent = 2;
    var TextIntent = 4;

    var MinimizeSize = 65536;
    var MaximizeQuality = 131072;

    var wiaFormatBMP = "{B96B3CAB-0728-11D3-9D7B-0000F81EF32E}";
    var wiaFormatPNG = "{B96B3CAF-0728-11D3-9D7B-0000F81EF32E}";
    var wiaFormatGIF = "{B96B3CB0-0728-11D3-9D7B-0000F81EF32E}";
    var wiaFormatJPEG = "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}";
    var wiaFormatTIFF = "{B96B3CB1-0728-11D3-9D7B-0000F81EF32E}";

    var ForReading = 1;
    var TristateUseDefault = -2; 
    //

    var cdlg = new ActiveXObject("WIA.CommonDialog");
    var img = cdlg.ShowAcquireImage(ScannerDeviceType,
          ColorIntent,
          MinimizeSize,
          wiaFormatBMP,
          true, // AlwaysSelectDevice Boolean value that indicates whether to always show the select device dialog box. 
          true, // UseCommonUI Boolean value that indicates whether to use the common user interface (UI).
          false // CancelError Boolean value that indicates whether to generate an error if the user cancels the dialog.
          );
        
img = ConvertImage(img, wiaFormatJPEG);
    var vVector = img.FileData;
    var ll = vVector.Count;
    var ff = vVector[1];


Осталась проблема №2. Как передать из джаваскрипта объект на сервер? Я решил преобразовать этот img в стринг, засунуть в текстовое поле, потом декодировать её опять в jpeg и сохранить. НО я запутался напроч в этих джаваскриптовых свойствах. Безумие какое-то. Вот то что у меня в Visual Studio
Переменная ff ваще undefined, хотя судя по структуре это вообще массив. Методов никаких нет. Как мне достать каждый член этого массива?

Kipetcoff 04.02.2011 17:29

В данным случае обращение к членам этой последовательности... var ff = vVector(1);


Часовой пояс GMT +3, время: 16:00.