2016년 1월 21일 목요일

[Android] OpenPrinting.

1. Samsung Printer
 - SPL ( Samsung Printer Language ) 사용 .  최신 버전 Ver5.
 - 삼성 프린터 드라이버 홈페이지에서 uld 드라이버를 다운로드받게 되면,
   linux, armv5le 버전의 rastertospl filter를 사용할 수 있다.
 - but.. 안드로이드의 경우 armv7l + /usr/bin/linker를 사용해서 쓸 수가 없었다.
 - Linker를 변경하는 방법이 있나.?? 기본적으로 ld-linux.so.3를 사용했음.

1.1. SPL Open Printing.
- Splix Driver : Linux/ Other Arch에서 사용하기 위해서 반드시 필요한 드라이버다.
                         cups용 filter를 제공하고 있다.
                         raster2qpdl 을 사용하거나, ps2qpdl을 사용할 수 있다.
                         raster2qpdl을 사용하려면, cups raster로 변환과정이 필요하고, gs필요
                         ps2qpdl을 사용하려면.. ps2gs 또는 pdf2ps등이 필요하며 내부적으로
                         gs를 사용하고 있어서 gs ( ghostscript ) 가 필요하다.

2. ZJS ( HP 보급형 Emulation )
- HP는 기본적으로 PCL을 지원하는 것으로 알고있는데, 보급형은 ZJS를 지원한다.
- 보급형도 PCL을 지원하면 좋을텐데 왜 지원을 하지 않는지 모르겠다.

3. Canon 지원
- GutenPrinting 드라이버 사용하면 된다.



2016년 1월 12일 화요일

[Android/Java] 외부 실행파일 사용하기.


프로그램하다보면, 실행파일을 이용해야할 때가 있다..

이때, ProcessBuilder를 사용할 수 있는데, 다음과 같이 ArrayList로 각각의 인자를 add한다.
만약 -page A4 라는 옵션을 넣어야 한다면 "-page" 와 "A4"를 각각 add하도록 해야 동작함.

 List cmd = new ArrayList();
cmd.add("java");
cmd.add("-classpath");
cmd.add("\"d:/workspace/some project/lib/something.jar\"");
cmd.add("blah.blah.SomeClass");
cmd.add("arg1");
cmd.add("arg2");
ProcessBuilder bld = new ProcessBuilder(cmd);
bld.directory(new File("d:/workspace/some project"));
bld.start();

출처 : http://egloos.zum.com/lempel/v/10961361
 
관련 참고 : http://jh-note.blogspot.kr/2012/01/java-15-processbuilder.html
  https://bugs.launchpad.net/ubuntu/+source/udev/+bug/18979
http://developer.oesf.biz/em/developer/