मैं अपने प्रोजेक्ट काम के लिए जावा में डेस्कटॉप ऐप विकसित कर रहा हूं। मुझे JTable
से टैब्यूलर डेटा के साथ उप कुल और कुल फ़ील्ड के साथ एक चालान मुद्रित करने की आवश्यकता है। मैं तालिका को मुद्रित करने में सक्षम हूं लेकिन एक ही पृष्ठ में नहीं। i.e पहले पृष्ठ में जेटीबल प्रिंट्स और उप-योग, अगले पृष्ठ में कुल प्रिंट। क्या एक ही पृष्ठ में दोनों डेटा प्रिंट करने का कोई तरीका है। मैं रिपोर्टिंग इंजन का उपयोग नहीं करना चाहता। बस अंतर्निहित जावा मुद्रण सेवाओं का उपयोग करें। कृपया मेरा मार्ग दर्शन कीजिए।जावा में प्रिंटिंग जेटीबल और अन्य टेक्स्टफील्ड
प्रिंट प्रारूप के रूप में मैं चाहता हूँ:
के बाद आंकड़ा जीयूआई
से पता चलता और निम्न चित्र रिपोर्ट मैं अब तक हो रही है पता चलता है। यह सही प्रारूप में नहीं है। कृपया मदद
कोड के रूप में
JLabel title = new JLabel();
title.setText("Invoice");
title.setBounds(300, 200, 80, 30);
JTextField subTotal = new JTextField();
subTotal.setText("Sub Total : Rs. " + SubTotal.getText());
subTotal.setBounds(400, 200, 150, 30);
MyPrintable prt = new MyPrintable();
prt.addComponent(title);
prt.addComponent(billTable); //billTable is the JTable
prt.addComponent(subTotal);
prt.printIt();
इस प्रकार है और नीचे दी गई मेरी मुद्रण योग्य वर्ग है
class MyPrintable implements Printable
{
private ArrayList<JComponent> items;
public MyPrintable()
{
items = new ArrayList<>();
}
@Override
public int print(Graphics g, PageFormat pf, int page) throws PrinterException
{
if(page > 0) return Printable.NO_SUCH_PAGE;
Graphics2D g2 = (Graphics2D)g;
g2.translate(pf.getImageableX(), pf.getImageableY());
for(JComponent item : items)
{
item.setLayout(null);
// item.setBounds(500, 500, 200, 200);
item.printAll(g);
g2.translate(0, item.getHeight());
}
return Printable.PAGE_EXISTS;
}
public void printIt()
{
PrintRequestAttributeSet attributes = new HashPrintRequestAttributeSet();;
PrinterJob job = PrinterJob.getPrinterJob();
try
{
job.setPrintable(this);
if(job.printDialog(attributes))
job.print(attributes);
}
catch (PrinterException e)
{
JOptionPane.showMessageDialog(null, e);
}
}
public void addComponent(JComponent component) { items.add(component); }
}
आप सभी कर्मचारियों की जरूरत के साथ एक पृष्ठ (पैनल) बना सकते हैं और इसे प्रिंट करने की कोशिश की दिखेगा? –
@SergiyMedvynskyy मैंने सवाल संपादित किया है। – Redone
अपना कोड देखने के बिना मैं आपकी मदद कैसे कर सकता हूं? कृपया एक [एसएससीसीई] (http://sscce.org) प्रदान करें, इसलिए मैं (या कोई और) आपकी मदद करने की कोशिश कर सकता हूं। –