में थर्मल प्रिंटर के साथ प्रिंटिंग रिसीप्स मुझे जावा का उपयोग करके थर्मल प्रिंटर के माध्यम से प्राप्तियां प्रिंट करना है। मैंने सब कुछ किया है। मेरा प्रोग्राम डेटाबेस से डेटा लेता है और विशेष वर्ण, टैब और \ n का उपयोग करके एक स्ट्रिंग में परिवर्तित होता है। फिर स्ट्रिंग को दूसरी विधि पर भेज दिया जाता है जो इसे ग्राफिक्स में परिवर्तित करता है।जावा
समस्या यह है कि जब मैं प्रिंट बटन पर क्लिक करता हूं, तो सफेद पेपर बाहर आता है। मैंने देखा कि मेरे स्ट्रिंग के पहले 4-5 वर्ण पेपर के चरम छोर पर दाएं कोने पर बिल की आखिरी पंक्ति पर मुद्रित हो रहे हैं। मेरा प्रिंटर ईपीएसन टीएम - टी 81 है।
public void printThisBill()
{
DefaultTableModel mod = (DefaultTableModel) jTable1.getModel();
DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
DateFormat timeFormat = new SimpleDateFormat("HH:mm");
//get current date time with Date()
Date date = new Date();
Date time = new Date();
String Date = dateFormat.format(date);
String Time = timeFormat.format(time);
String Header =
" ****Super Market**** \n"
+ "Date: "+Date+" Time: "+Time+"\n"
+ "---------------------------------\n"
+ "Name Qty Rate Amt\n"
+ "---------------------------------\n";
String amt =
"\n \n \nTotal Amount = "+ amt() +"\n"
+ "Tax =" + tax() + "\n"
+ "*********************************\n"
+ "Thank you. \n";
String bill = Header;
int i = 0;
do
{
String name = ""+ mod.getValueAt(i, 2);
String qty = ""+ mod.getValueAt(i, 3);
String rate = ""+ mod.getValueAt(i, 4);
String amount = ""+ mod.getValueAt(i, 6);
if(name.length() > 12)
{
name = name.substring(0, 12)+" ";
}
else
{
for(int j= name.length()-12; j<= name.length(); j++);
{
name = name+" ";
}
}
if(qty.length()<=5)
{
for(int j= 0; j<= qty.length()-5; j++);
{
qty = qty+" ";
}
}
rate = rate;
String items =
name+"\t"+qty+"\t"+rate+"\t"+amount+"\n";
bill = bill+ items;
i++;
} while(i <= mod.getRowCount()-1);
bill = bill+amt;
System.out.println(bill);
printCard(bill);
dispose();
}
और विधि कि बिल प्रिंट है:
public static void printCard(final String bill)
{
Printable contentToPrint = new Printable(){
@Override
public int print(Graphics graphics, PageFormat pageFormat, int page) throws PrinterException
{
if (page > 0) {
return NO_SUCH_PAGE;
}
pageFormat.setOrientation(PageFormat.LANDSCAPE);
Graphics2D g2d = (Graphics2D)graphics.create();
g2d.setPaint(Color.black);
g2d.setFont(new Font("Arial", Font.BOLD, 10));
g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableX());
g2d.drawString(bill, 0, 0);
return PAGE_EXISTS;
}
};
PrinterJob job = PrinterJob.getPrinterJob();
job.setPrintable(contentToPrint);
//You can show a print dialog before printing by job by wrapping the following blocks with a conditional statement if(job.printDialog()){...}
try
{
job.print();
} catch (PrinterException e)
{
System.err.println(e.getMessage());
}
}
समस्या क्या है और मैं इसे कैसे हल कर सकते हैं? मुझे लगता है कि मैं drawString() विधि पर सही पैरामीटर सेट नहीं कर रहा हूं।
या यह कुछ और है? किसी भी मदद की मेरी सराहना की जाएगी।
आप सुनिश्चित करें कि आप परिदृश्य चाहते हैं? – jmpyle771
नीचे 0 बजे नहीं होगा? (यह हमेशा के लिए रहा है क्योंकि मैं प्रिंटिंग/जी 2 डी के साथ उलझा हुआ हूं - क्या यह ऊपरी बाएं होने के लिए स्थानांतरित होता है?) –
हां, यदि पेजफॉर्मेट परिदृश्य पर है। – jmpyle771