Как сканировать двусторонний (дуплекс?) С помощью WIA - C # - PullRequest
0 голосов
/ 12 декабря 2018

Я пишу метод C #, который сканирует много документов, но мне нужно отсканировать эти документы с двух сторон, то есть для каждого листа отсканировать лицевую и обратную сторону документа, используя АПД сканера.Но я перепробовал все способы, которые нашел в интернете, и не смог.Мой код ниже:

        //user select the scanner
        int indexScanner = Convert.ToInt32(Console.ReadLine());

        // Connect to the first available scanner
        var device = deviceManager.DeviceInfos[indexScanner - 1].Connect();

        // Select the scanner
        var scannerItem = device.Items[1];

        int resolution = 150;
        int width_pixel = 1250;
        int height_pixel = 1700;
        int color_mode = 1;
        int adf_mode = 1;
        int pages_mode = 1;

        device.Properties["3096"].set_Value(pages_mode);
        //device.Properties["3088"].set_Value(adf_mode);
        scannerItem.Properties["3088"].set_Value(adf_mode);

        AdjustScannerSettings(scannerItem, resolution, 0, 0, width_pixel, height_pixel, 0, 0, color_mode);

        CommonDialogClass dlg = new CommonDialogClass();

            object scanResult = dlg.ShowTransfer(scannerItem, FormatID.wiaFormatJPEG, true);

            if (scanResult != null)
            {
                ImageFile image = (ImageFile)scanResult;

                string filename = "scan.jpeg";

                if (File.Exists(filename))
                    File.Delete(filename);

                image.SaveFile(filename);
            }

            scanResult = dlg.ShowTransfer(scannerItem, FormatID.wiaFormatJPEG, true);

            if (scanResult != null)
            {
                ImageFile image = (ImageFile)scanResult;

                string filename = "scan1.jpeg";

                if (File.Exists(filename))
                    File.Delete(filename);

                image.SaveFile(filename);
            }
...