Я не могу понять, как отправить элемент управления текстового поля для печати на Java.
Программа создает головоломки поиска слов, теперь я бы хотела их распечатать.
Я просто хочу напечатать текстовый элемент управления Box как есть ... Но мне пришлось попробовать другие методы следующим образом.
Моя первая проблема - когда я пытаюсь отправить его 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) есть ли способ отправить элемент управления Text Box на принтер?
2) есть ли способ отформатировать шрифт Strings? Размер шрифта вызывает мои неровные отпечатки.
Спасибо за любую помощь.
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;
}
}