0
我似乎無法弄清楚如何發送文本框控件以Java打印。將文本框控件發送到打印機?
本程序創建詞搜索難題,現在我想打印它們。
我只是想打印文本框控件,因爲它是...但我不得不嘗試其他方法如下。
我的第一個問題是當我試圖發送它txtEasy.getText()它試圖打印 一個非常長的字符串。這不是我想要的。所以我不得不採取一個非常長的字符串 並像這樣解析出來。行數爲15的20行。不幸的是,你不能在這裏看到。但它是一個15乘20箱子。
M S N O I T I S O P M O C L G D R B P U D C K S Q G B E I Q C D I N M B P I U N P M J J U T N L I N C V D Q B W I U A U T O R N T F J O D N G T E L G B R K C O M M S W G H T S A N S I G U K X U X S E P I E Q C T G C B O X H J N B D T T J P I I A A R Q Y C S W I F O L M M N R T I A E L P S P D Q O U U A P E H F I T S O F Q N L P L L H D O Q F A O A G T Q A B A S S R W T C L T N P G E N S T X T Y P O V T I E W L Q C F I H S E J F E M L A D N D A E N W K T Q N E I I K I J V S I G F Y H S E E P I Y J U S H R D F V N D R D I B E F S R I U H U Y E V S F O E Q J X V R N V V R G R L G Q S B M F G E J
我的代碼如下。
因爲它是目前的設置,我發送文本打印機類作爲txtEasy.getText()
我現在用這種方法遇到的問題是字體沒有正確對齊難題。
所以我的兩個問題......
1)有沒有辦法來發送文本框控件到打印機嗎?
2)有沒有一種格式化字符串字體的方法?字體大小造成我的不平穩打印。
謝謝你的幫助。
private void btnEasyPrintActionPerformed(java.awt.event.ActionEvent evt) {
//System.out.println(txtEasy.getText());
PrinterJob job = PrinterJob.getPrinterJob();
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
PageFormat pf = job.pageDialog(aset);
job.setPrintable(new PrintPuzzle(txtEasy.getText()), pf);
boolean ok = job.printDialog(aset);
if (ok) {
try {
job.print(aset);
} catch (PrinterException ex) {
/* The job did not successfully complete */
}
}
//******** THE PRINT CLASS ********
import java.awt.*;
import java.awt.print.*;
public class PrintPuzzle implements Printable
{
String toPrint;
String formatedToPrint;
public PrintPuzzle(String item)
{
toPrint = item;
//toPrint = item;
//formatedToPrint = formatBoardToPrint(toPrint);
}
public int print(Graphics g, PageFormat pf, int page) throws
PrinterException
{
if (page > 0)
{
return NO_SUCH_PAGE;
}
/* User (0,0) is typically outside the imageable area, so we must
* translate by the X and Y values in the PageFormat to avoid clipping
*/
Graphics2D g2d = (Graphics2D)g;
g2d.translate(pf.getImageableX(), pf.getImageableY());
/* Now we perform our rendering */
String paintMe = "";
int YPosition = 20;
int first = 2;
int last = 46;
System.out.println(toPrint);
System.out.println("String Length is :" + toPrint.length());
for(int i = 0;i < 20;i++)
{
paintMe = toPrint.substring(first, last);
paintMe.
System.out.print(paintMe + "First Position : " + first + " Last Position : " + last + " YPosition : " + YPosition);
g.drawString(paintMe, 20, YPosition);
System.out.println();
first += 46;
last += 46;
YPosition += 10;
}//end for
//g.drawString(toPrint, 20, 20);
//g.drawString(toPrint, 20, 30);
/* tell the caller that this page is part of the printed document */
return PAGE_EXISTS;
}
}
謝謝! g2d.setFont()正是我所需要的。長話短說,當我將文本框繪製到打印機上時,文字對齊方式不能正確排列,因此顯然有些文字比其他文字更大/更小。我需要指定一個使字符使用相同數量空間的字體。 – 2009-12-06 05:08:59