サーマルプリンターに問題があります。印刷するたびに、このように追加されるコード/テキストがいくつかあります。
%!PS-Adobe-3.0
%%BoundingBox: 17 19 595 773
%%Pages: 1
.....
%%BegingFeature: *InputSlot Upper
2 dict up /PageSize [612 792] put dup /ImagingBox null put setpagedevice
%%EndFeature
....
%%EndSetup
%%Page: 1 1
%%BeginPageSetup
%%EndPageSetup
%%BeginDocument: nondsc
Hello World
%%EndDocument
%%EOF
「HelloWorld」を印刷したかったのですが、出力内の不要なテキストを削除するにはどうすればよいですか?私のコードに何かありますか?
私のプリンターはESC/POSモデルP06-Pです私のプラットフォーム:Mac OS 10.8.2
私のコードは
String defaultPrinter = PrintServiceLookup.lookupDefaultPrintService().getName();
System.out.println("Default printer: " + defaultPrinter);
PrintService service = PrintServiceLookup.lookupDefaultPrintService();
// prints the famous hello world! plus a form feed
InputStream is = new ByteArrayInputStream("hello world!\f".getBytes("UTF8"));
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
pras.add(new Copies(1));
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
Doc doc = new SimpleDoc(is, flavor, null);
DocPrintJob job = service.createPrintJob();
job.print(doc, pras);
is.close();
どんな助けでも大歓迎です
=======================================
CLIで印刷しようとすると印刷されますが、このコードをJavaで作成すると、印刷されませんでした。waitFor()は常に1を返します。ファイルがそこにあり、それが実行されているディレクトリがあると確信しています。しかし、「ls」だけを発行すると、出力が表示されます。
List<String> cmd = new ArrayList<String>();
cmd.add("lpr");
cmd.add("-P");
cmd.add("Prolific_Technology_Inc__IEEE_1284_Controller");
cmd.add("-oraw");
cmd.add("lalala.txt");
ProcessBuilder pb = new ProcessBuilder(cmd);
pb.directory(new File("src/org/cups4j/test"));
Process p = pb.start();
int res = p.waitFor();
String line = null;
try {
BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
while( (line = input.readLine()) != null){
System.out.println(line);
}
} catch (IOException e1) {
e1.printStackTrace();
System.exit(0);
}
System.out.println("Result: " + res);