Tô com o seguinte problema. Criei uma classe para fazer a impressão em modo texto de um arquivo .txt. Ja tentei setar as propriedades para LANDSCAPE, mas, mesmo assim só imprime PORTRAIT. Tô colocando uma simulação do que uso pra ver se alguém pode me ajudar.
valeu pessoal…
package src;
import java.io.File;
import java.io.FileInputStream;
import javax.print.Doc;
import javax.print.DocFlavor;
import javax.print.DocPrintJob;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.SimpleDoc;
import javax.print.attribute.HashDocAttributeSet;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.print.attribute.standard.JobName;
import javax.print.attribute.standard.OrientationRequested;
public class PrinterTeste {
public static void main(String[] args) throws Exception {
String fileName = null;
FileInputStream fileInput = null;
PrintService[] services = null;
PrintService defaultPrinter = null;
DocFlavor docFlavor = null;
HashDocAttributeSet docAttributes = null;
Doc txtDocument = null;
PrintRequestAttributeSet printerAttributes = null;
DocPrintJob printJob = null;
fileName = args[1];
File file = new File(fileName);
String jobName = file.getName().substring(0, file.getName().lastIndexOf("."));
fileInput = new FileInputStream(file);
services = PrintServiceLookup.lookupPrintServices(null, null);
defaultPrinter = PrintServiceLookup.lookupDefaultPrintService();
if (defaultPrinter == null) {
defaultPrinter = services[services.length-1];
}
docFlavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
docAttributes = new HashDocAttributeSet();
printerAttributes = new HashPrintRequestAttributeSet();
printerAttributes.add(new JobName(jobName, null));
if (args[0].equals("-p")) {
docAttributes.add(OrientationRequested.PORTRAIT);
printerAttributes.add(OrientationRequested.PORTRAIT);
System.out.println("PORTRAIT");
} else if (args[0].equals("-l")) {
docAttributes.add(OrientationRequested.LANDSCAPE);
printerAttributes.add(OrientationRequested.LANDSCAPE);
System.out.println("LANDSCAPE");
} else {
System.out.println("NENHUM");
}
txtDocument = new SimpleDoc(fileInput, docFlavor, docAttributes);
printJob = defaultPrinter.createPrintJob();
printJob.print(txtDocument, printerAttributes);
}
}