Ejemplo n.º 1
0
        private string Get_PDIScan_Error_Details(pdiscan_errors pdiscan_error)
        {
            try
            {
                string error_string      = string.Empty;
                IntPtr short_description = Marshal.AllocHGlobal(256);
                IntPtr long_description  = Marshal.AllocHGlobal(256);
                IntPtr extra_info        = Marshal.AllocHGlobal(256);

                if (pdiscan_error != pdiscan_errors.PDISCAN_ERR_NONE)
                {
                    PdiScanWrap.PdGetErrorShortDescription(scanning_handle, pdiscan_error, short_description);
                    PdiScanWrap.PdGetErrorLongDescription(scanning_handle, pdiscan_error, long_description);
                    PdiScanWrap.PdGetErrorExtraInfo(scanning_handle, extra_info);

                    error_string = "Error Number: " + ((int)pdiscan_error).ToString() + "\n"
                                   + "Short Description: " + Marshal.PtrToStringAnsi(short_description) + "\n"
                                   + "Long Description: " + Marshal.PtrToStringAnsi(long_description) + "\n"
                                   + "Extra Info: " + Marshal.PtrToStringAnsi(extra_info) + "\n";
                }

                Marshal.FreeHGlobal(short_description);
                Marshal.FreeHGlobal(long_description);
                Marshal.FreeHGlobal(extra_info);

                return(error_string);
            }
            catch (Exception ex)
            {
                Common.Utils.LogManager.Error("Get_PDIScan_Error_Details exception: " + ex.ToString());
                return(string.Empty);
            }
        }
Ejemplo n.º 2
0
 private void imprinter_string_callback(int PageNumber, IntPtr ImprinterString, IntPtr UserData)
 {
     try
     {
         Common.Utils.LogManager.Info("imprinter_string_callback");
         IntPtr           impstr = Marshal.StringToHGlobalAnsi("imprinttest we do\n word wrap");
         PD_IMPRINT_SETUP setup  = new PD_IMPRINT_SETUP();
         setup.eBase            = pd_imprinter_horizontal_offset_bases.PD_IMPRINTER_HORIZONTAL_OFFSET_BASE_LEADING_EDGE;
         setup.eDirection       = pd_imprint_directions.PD_IMPRINT_DIRECTION_FORWARD;
         setup.eTextOrientation = pd_imprinter_text_orientations.PD_IMPRINTER_TEXT_ORIENTATION_90;
         setup.iOffset          = 0;
         pdiscan_errors pdiscan_error = PdiScanWrap.PdImprintDocument(scanning_handle, pd_imprint_types.PD_IMPRINT_TYPE_TEXT, impstr, ref setup);
     }
     catch (Exception ex)
     {
         Common.Utils.LogManager.Error("imprinter_string_callback exception: " + ex.ToString());
     }
 }
Ejemplo n.º 3
0
        public bool Disconnect()
        {
            try
            {
                if (scanner_connected)
                {
                    pdiscan_errors pdiscan_error = PdiScanWrap.PdDisconnectFromScanner(scanning_handle); // this command will make document stuck
                    scanner_connected = false;
                    return(true);
                }

                return(false);
            }
            catch (Exception ex)
            {
                Common.Utils.LogManager.Error("Disconnect exception: " + ex.ToString());
                return(false);
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="documentScannerCallback">DocumentScannerCallback(string frontPath, string error)</param>
        public bool StartScanning(Action <string[], string> documentScannerCallback)
        {
            try
            {
                // If scanner is not initiated, run Connect() first
                if (!scanner_connected)
                {
                    if (!Connect())
                    {
                        Common.Utils.LogManager.Error("StartScanning.PdEnableFeeder failed");
                        return(false);
                    }
                }

                _documentScannerCallback = documentScannerCallback;
                if (scanner_connected && !enablefeeder)
                {
                    //MessageBox.Show("StartScanning");
                    pdiscan_errors pdiscan_error = PdiScanWrap.PdEnableFeeder(scanning_handle);
                    if (pdiscan_error != pdiscan_errors.PDISCAN_ERR_NONE)
                    {
                        display_pdiscan_error(pdiscan_error);
                        //MessageBox.Show("StartScanning.PdEnableFeeder failed");
                        return(false);
                    }

                    //MessageBox.Show("StartScanning.PdEnableFeeder OK");
                    enablefeeder = true;
                    return(true);
                }

                return(false);
            }
            catch (Exception ex)
            {
                Common.Utils.LogManager.Error("StartScanning exception: " + ex.ToString());
                return(false);
            }
        }
Ejemplo n.º 5
0
        public void display_pdiscan_error(pdiscan_errors pdiscan_error)
        {
            string error_string;
            IntPtr short_description = Marshal.AllocHGlobal(256);
            IntPtr long_description  = Marshal.AllocHGlobal(256);
            IntPtr extra_info        = Marshal.AllocHGlobal(256);

            if (pdiscan_error != pdiscan_errors.PDISCAN_ERR_NONE)
            {
                PdiScanWrap.PdGetErrorShortDescription(scanning_handle, pdiscan_error, short_description);
                PdiScanWrap.PdGetErrorLongDescription(scanning_handle, pdiscan_error, long_description);
                PdiScanWrap.PdGetErrorExtraInfo(scanning_handle, extra_info);

                error_string = "Error Number: " + ((int)pdiscan_error).ToString() + "\n"
                               + "Short Description: " + Marshal.PtrToStringAnsi(short_description) + "\n"
                               + "Long Description: " + Marshal.PtrToStringAnsi(long_description) + "\n"
                               + "Extra Info: " + Marshal.PtrToStringAnsi(extra_info) + "\n";
                Common.Utils.LogManager.Error("display_pdiscan_error: " + error_string);
            }

            Marshal.FreeHGlobal(short_description);
            Marshal.FreeHGlobal(long_description);
            Marshal.FreeHGlobal(extra_info);
        }
Ejemplo n.º 6
0
 private void scanning_error_callback(pdiscan_errors ScanningError, string ExtraInfo, IntPtr UserData)
 {
     Common.Utils.LogManager.Error("scanning_error_callback: " + ExtraInfo);
 }
Ejemplo n.º 7
0
        //Callbacks occur on a different thread.  In order to return to the main thread we must use delegates.
        public void page_end_callback(int PageNumber, IntPtr FrontSideDIB, IntPtr BackSideDIB, ref int AbortRequested, IntPtr UserData)
        {
            try
            {
                if (_documentScannerCallback != null)
                {
                    Debug.Assert(FrontSideDIB != IntPtr.Zero);

                    string curDir = Directory.GetCurrentDirectory();

                    // create directory
                    if (!Directory.Exists(curDir + "\\Temp"))
                    {
                        Directory.CreateDirectory(curDir + "\\Temp");
                    }

                    // set file path
                    string frontPath = string.Empty;
                    string backPath  = string.Empty;
                    string error     = string.Empty;
                    //Front
                    if (FrontSideDIB != IntPtr.Zero)
                    {
                        frontPath = curDir + "\\Temp\\document_front" + DateTime.Now.ToString("yyyyMMddHHmmssFFF") + ".jpg";
                        pdiscan_errors retval = PdiScanWrap.PdSaveImageToDisk(FrontSideDIB, frontPath);
                        if (retval == pdiscan_errors.PDISCAN_ERR_NONE)
                        {
                            // Scale image
                            Image image    = Image.FromFile(frontPath);
                            Image newImage = Trinity.Common.CommonUtil.ScaleImage(image, 768, 1024);

                            image.Dispose();

                            newImage.Save(frontPath, ImageFormat.Jpeg);
                            newImage.Dispose();
                        }
                        else
                        {
                            error = Get_PDIScan_Error_Details(retval);
                        }
                    }

                    if (BackSideDIB != IntPtr.Zero)
                    {
                        //PdiScanWrap.PdSaveImageToDisk(BackSideDIB, curDir + "\\Temp\\document_back" + DateTime.Now.ToString("yyyyMMddHHmmssFFF") + ".jpg");

                        backPath = curDir + "\\Temp\\document_back" + DateTime.Now.ToString("yyyyMMddHHmmssFFF") + ".jpg";
                        pdiscan_errors retval = PdiScanWrap.PdSaveImageToDisk(BackSideDIB, backPath);
                        if (retval == pdiscan_errors.PDISCAN_ERR_NONE)
                        {
                            // Scale image
                            Image image    = Image.FromFile(backPath);
                            Image newImage = Trinity.Common.CommonUtil.ScaleImage(image, 768, 1024);

                            image.Dispose();

                            newImage.Save(backPath, ImageFormat.Jpeg);
                            newImage.Dispose();
                        }
                        else
                        {
                            error = Get_PDIScan_Error_Details(retval);
                        }
                    }

                    // callback
                    _documentScannerCallback(new string[] { frontPath, backPath }, error);
                }
            }
            catch (Exception ex)
            {
                Common.Utils.LogManager.Error("page_end_callback exception: " + ex.ToString());

                // callback
                _documentScannerCallback(new string[] {}, ex.Message);
                _documentScannerCallback = null;
            }
        }
Ejemplo n.º 8
0
 public static extern void PdGetErrorLongDescription(IntPtr ScanningHandle, pdiscan_errors ErrorCode, IntPtr LongDescription);