2015-01-16 7 views
0

안녕하세요. 저는 java를 사용하고 있으며 twain jar를 사용하여 스캐너에서 스캔 한 문서를 구현합니다. 나는 64 비트 자바와 64 비트 윈도우 7을 사용하고있다. 나는 system32에 twain 64 관련 dll을 추가했다. 그리고 난자바를 사용하여 스캐너 문서를 호출하는 동안 예외가 발생했습니다.

uk.co.mmscomputing.device.twain.TwainFailureException: Failed during call to twain source. 
    cc=No Data Source 
    rc=1 
Source Manager Open 
Source Manager Open 
uk.co.mmscomputing.device.twain.TwainIOException: uk.co.mmscomputing.device.twain.TwainScanner.setException: 
    Failed during call to twain source. 
    cc=No Data Source 
    rc=1 
    at uk.co.mmscomputing.device.twain.TwainScanner.signalException(TwainScanner.java:131) 
    at uk.co.mmscomputing.device.twain.jtwain.signalException(jtwain.java:287) 
    at uk.co.mmscomputing.device.twain.jtwain.cbexecute(jtwain.java:243) 
    at uk.co.mmscomputing.device.twain.jtwain.nstart(Native Method) 
    at uk.co.mmscomputing.device.twain.jtwain.access$200(jtwain.java:12) 
    at uk.co.mmscomputing.device.twain.jtwain$1.run(jtwain.java:338) 
uk.co.mmscomputing.device.twain.TwainFailureException: Failed during call to twain source. 
    cc=No Data Source 
    rc=1 
    at uk.co.mmscomputing.device.twain.TwainSourceManager.call(TwainSourceManager.java:27) 
    at uk.co.mmscomputing.device.twain.TwainIdentity.open(TwainIdentity.java:70) 
    at uk.co.mmscomputing.device.twain.TwainSource.open(TwainSource.java:99) 
    at uk.co.mmscomputing.device.twain.TwainSourceManager.openSource(TwainSourceManager.java:93) 
    at uk.co.mmscomputing.device.twain.jtwain.cbexecute(jtwain.java:234) 
    at uk.co.mmscomputing.device.twain.jtwain.nstart(Native Method) 
    at uk.co.mmscomputing.device.twain.jtwain.access$200(jtwain.java:12) 
    at uk.co.mmscomputing.device.twain.jtwain$1.run(jtwain.java:338) 

내 자바 클래스와 같은 이러한 예외를 얻고 것은

public class TwainExample implements ScannerListener{ 

     static TwainExample app; 

     Scanner scanner; 

     public TwainExample(String[] argv)throws ScannerIOException{ 
     scanner=scanner.getDevice(); 
     String scanners[]=scanner.getDeviceNames(); 
     for(String scann:scanners){ 
      System.out.println(scann); 
     } 
     scanner.addListener(this);  
     scanner.acquire(); 
     } 

     public void update(ScannerIOMetadata.Type type, ScannerIOMetadata metadata){ 
     if(type.equals(ScannerIOMetadata.ACQUIRED)){ 
      BufferedImage image=metadata.getImage(); 
      System.out.println("Have an image now!"); 
      try{ 
      ImageIO.write(image, "png", new File("mmsc_image.png")); 
      }catch(Exception e){ 
      e.printStackTrace(); 
      } 
     }else if(type.equals(ScannerIOMetadata.NEGOTIATE)){ 
      ScannerDevice device=(ScannerDevice) metadata.getDevice(); 
      try{ 
//   device.setShowUserInterface(true); 
//   device.setShowProgressBar(true); 
//   device.setResolution(100); 
      }catch(Exception e){ 
      e.printStackTrace(); 
      } 
     }else if(type.equals(ScannerIOMetadata.STATECHANGE)){ 
      System.err.println(metadata.getStateStr()); 
      if(metadata.isFinished()){ 
      System.exit(0); 
      } 
     }else if(type.equals(ScannerIOMetadata.EXCEPTION)){ 
      metadata.getException().printStackTrace(); 
     } 
     } 

     public static void main(String[] argv){ 
     try{ 
      app=new TwainExample(argv); 
     }catch(Exception e){ 
      e.printStackTrace(); 
     } 
     } 
    } 
+0

어떤 twain jar를 사용하고 있습니까? – yushulx

답변

1

그것은 당신이 당신의 컴퓨터에 64 비트 TWAIN 드라이버를하지 않아도 가능하다. 64-bit TWAIN sample data source을 다운로드하여 설치하고 다시 시도하십시오.

+0

답장을 보내 주셔서 감사합니다.하지만 다시 아래에 있습니다. exception.uk.co.mmscomputing.device.twain.TwainSource.enable : \t 스캔 타임 아웃 데이터 소스를 닫습니다. – Sthogari

+0

다른 응용 프로그램을 통해 TWAIN 드라이버를 사용하여 스캔 할 수 있었습니까? – Rachel

+0

아니요 .. 가지고 있다면이 코드를 제공 할 수 없습니까? – Sthogari

0

비슷한 문제가있었습니다. 해결책은 jdk java 32 비트를 설치하는 것이 었습니다.