인쇄 대화 상자를 표시하지 않고 사용자 정의 프린터에서 HTML 파일을 인쇄하려고합니다. 아래 코드는 실행하지만 IE에 표시되는 실제 페이지가 아닌 HTML 코드를 인쇄합니다.Java Print API를 사용하여 HTML이 아닌 코드를 인쇄하는 방법은 무엇입니까?
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import javax.print.DocFlavor;
import javax.print.DocPrintJob;
import javax.print.PrintException;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.SimpleDoc;
import javax.print.attribute.HashPrintServiceAttributeSet;
import javax.print.attribute.PrintServiceAttributeSet;
import javax.print.attribute.standard.PrinterName;
public class Print {
public static void main(String[] args) throws PrintException {
String printerName = "\\\\network-path\\myPrinter";
String fileName = "C:\\log\\myLog.html";
PrintServiceAttributeSet printServiceAttributeSet = new HashPrintServiceAttributeSet();
printServiceAttributeSet.add(new PrinterName(printerName, null));
PrintService[] printServices = PrintServiceLookup.lookupPrintServices(null, printServiceAttributeSet); // list of printers
URL url = null;
try {
url = (new File(fileName)).toURI().toURL();
} catch (MalformedURLException e) {
e.printStackTrace();
}
DocFlavor flavor = DocFlavor.URL.AUTOSENSE;
SimpleDoc doc = new SimpleDoc(url, flavor, null);
PrintService printService = printServices[0];
DocPrintJob printJob = printService.createPrintJob();
if(printService.isDocFlavorSupported(flavor)) {
try {
printJob.print(doc, null);
} catch (PrintException e) {
e.printStackTrace();
}
} else {
throw new PrintException("HTML flavor not supported on this printer");
}
}
}
JEditorPane.print() 메소드를 사용하여 HTML을 인쇄 할 수 있습니다. JEditorPane.print()를 사용하지 않고이 작업을 수행 할 수 있는지 궁금합니다. 누군가 제발 도와 줄 수 있니?
감사합니다. 표준 JDK API를 사용한다는 것은 JEditorPane.print()가 없으면 불가능하다는 것을 의미합니다. – ParagJ