[英]Java receipt file from .txt
我正在創建一個程序,它將打印從商店購買的商品的.txt收據,並且可以成功打印,但是我需要更改文本某些特定部分的字體嗎? 例如我想打印這樣的東西
這應該大膽和更大
這應該小於第一行
應該斜體顯示
這有沒有可能?
UPDATE
這是打印過程的代碼
public static void main(String[] args) throws PrintException, IOException {
String defaultPrinter =PrintServiceLookup.lookupDefaultPrintService().getName();
System.out.println("Default printer: " + defaultPrinter);
PrintService service = PrintServiceLookup.lookupDefaultPrintService();
FileInputStream in = new FileInputStream(new File("sample.txt"));
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
pras.add(new Copies(1));
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
Doc doc = new SimpleDoc(in, flavor, null);
DocPrintJob job = service.createPrintJob();
PrintJobWatcher pjw = new PrintJobWatcher(job);
job.print(doc, pras);
pjw.waitForDone();
in.close();
// send FF to eject the page
InputStream ff = new ByteArrayInputStream("\f".getBytes());
Doc docff = new SimpleDoc(ff, flavor, null);
DocPrintJob jobff = service.createPrintJob();
pjw = new PrintJobWatcher(jobff);
jobff.print(docff, null);
pjw.waitForDone();
}
}
class PrintJobWatcher {
boolean done = false;
PrintJobWatcher(DocPrintJob job) {
job.addPrintJobListener(new PrintJobAdapter() {
public void printJobCanceled(PrintJobEvent pje) {
allDone();
}
public void printJobCompleted(PrintJobEvent pje) {
allDone();
}
public void printJobFailed(PrintJobEvent pje) {
allDone();
}
public void printJobNoMoreEvents(PrintJobEvent pje) {
allDone();
}
void allDone() {
synchronized (PrintJobWatcher.this) {
done = true;
System.out.println("Printing done ...");
PrintJobWatcher.this.notify();
}
}
});
}
public synchronized void waitForDone() {
try {
while (!done) {
wait();
}
} catch (InterruptedException e) {
}
}
粗體示例(假設您的打印機具有與鏈接的代碼相同的轉義序列)。
public static final char ESC = 27;
public static final String BOLD_ON = ESC + "E";
public static final String BOLD_OFF = ESC + "F";
String textString = "some text";
String toPrintInBold = BOLD_ON + textString + BOLD_OFF;
現在,可以將toPrintInBold
設置為打印機。
如果可行,則您有一種方法,只需要更多控制代碼即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.