2012-12-20 15 views
7

हमें जावा में कुछ सॉफ़्टवेयर बनाना है जो अंत में कुछ दस्तावेज़ प्रिंट करता है। विभिन्न दस्तावेजों को प्रिंटर के विभिन्न ट्रे में जाना चाहिए। क्योंकि विकास के दौरान हमारे पास हमारे ग्राहक के समान प्रिंटर उपलब्ध नहीं है, हम एक छोटे से टुकड़े की तलाश कर रहे हैं जो एक प्रिंटर को झुकाता है। हमें उस नकली को कॉन्फ़िगर करने में सक्षम होना चाहिए, उदाहरण के लिए कितने ट्रे उपलब्ध हैं।प्रिंटर का मजाक

क्या कोई मैक या विंडोज़ के लिए ऐसा टूल जानता है?

+1

क्या "पीडीएफ प्रिंटर" काम करेगा? मुझे यकीन नहीं है कि प्रत्येक बार बनाए गए दस्तावेज़ स्वचालित परीक्षण सूट के हिस्से के रूप में उपयोग करने के लिए पर्याप्त अद्वितीय होंगे। मुझे भी यकीन है कि ट्रे जैसे प्रिंटर जैसी चीजों का पर्दाफाश नहीं करेगा। – Charles

+0

क्या मॉक प्रिंटर को वास्तव में इनपुट के साथ कुछ भी करने की ज़रूरत है, या यह ठीक है अगर यह केवल सामान स्वीकार करता है और इसे एनयूएल में भेजता है? – eis

+0

ने इसे इंटरनेट में खोजा है? – ggcodes

उत्तर

4

एक अमूर्त परत लिखें जिसे आप अपने ग्राहक के "असली" प्रिंटर के लिए एक बार लागू करते हैं और एक बार "आभासी" प्रिंटर के लिए। ग्राहक संस्करण के लिए एकीकरण परीक्षण लिखें, उन परीक्षणों को अपने ग्राहक के पर्यावरण में चलाएं। अमूर्त परत के खिलाफ कोड।

+0

आप सही हैं मुझे डिजाइन के बारे में कुछ करने की ज़रूरत है। लेकिन हमेशा कुछ वास्तविक प्रिंटिंग के लिए अच्छा लगता है :) – fkleinko

+0

जबकि मैं कुछ हद तक एक ही पंक्ति के साथ सोचता हूं, मुझे नहीं लगता कि आप वास्तव में उम्मीद कर सकते हैं कि डेवलपर्स केवल ग्राहक वातावरण पर विभिन्न सेटअप के लिए परीक्षण करना शुरू कर दें ... आपको कुछ चाहिए विभिन्न त्रुटि स्थितियों का अनुकरण करें। मैं मानता हूं कि मेरा सुझाव ऐसा नहीं करता है। – eis

+0

@eis सहमत हुए।बड़े पैमाने पर उनके पास ग्राहक के पर्यावरण में चल रहे निरंतर एकीकरण सर्वर होगा –

3

आप बिना किसी विशेष सॉफ्टवेयर के विंडोज़ पर एक डमी प्रिंटर बना सकते हैं।

विंडोज 7 में:

  1. नियंत्रण कक्ष
  2. डिवाइस और प्रिंटर
  3. [राइट क्लिक करें] एक प्रिंटर
  4. स्थानीय प्रिंटर
  5. एक मौजूदा बंदरगाह का उपयोग करें जोड़ें (यह पहले से ही यह सोचते हैं मौजूद है, अगर ऐसा नहीं होता है तो एक नया बनाएं)
  6. फ़ाइल: (फ़ाइल में प्रिंट करने के लिए), एनयूएल: (कहीं भी प्रिंट करने के लिए) या CON: (कंसोल पर प्रिंट करने के लिए)
  7. प्रिंटर की सूची से अनुकरण करने के लिए इच्छित प्रिंटर का चयन करें।

यदि आप इसे डिफ़ॉल्ट प्रिंटर के रूप में सेट करते हैं, तो जावा कोड से उपयोग करना आसान होना चाहिए।

+0

अच्छा, मैं बस इसके बारे में सोच रहा था :) – stamhaney

+0

Thnx क्या आप यह भी जानते हैं कि आप एकाधिक पेपर ट्रे सेट करते हैं या नहीं? – fkleinko

+0

@kfleinko कोई विचार नहीं, कोशिश करें :) यह आपको एक विशिष्ट मॉडल चुनने देता है, और इसमें वह जानकारी हो सकती है या नहीं। – eis

0

आप एक पीडीएफ प्रिंट स्थापित कर सकते हैं जो आपके जावा एप्लिकेशन के लिए वर्चुअल प्रिंटर के रूप में काम कर सकता है। असल में, आप क्या करना चाहते हैं, एक स्वतंत्र रूप से उपलब्ध पीडीएफ प्रिंटर स्थापित करें और अपना जावा एप्लिकेशन उस प्रिंट सेवा को खोजें और उस सेवा को जो भी दस्तावेज़ प्रिंट करें। मुझे याद है, मेरे पास एक ही स्थिति थी जब मेरे पास प्रिंटर नहीं था, मैंने वर्चुअल प्रिंटर के साथ अपने एप्लिकेशन को इंटरफ़ेस करने के लिए नीचे दिए गए कोड का उपयोग किया था।

public class HelloWorldPrinter implements Printable, ActionListener { 


public int print(Graphics g, PageFormat pf, int page) throws 
                PrinterException { 

    if (page > 0) { /* We have only one page, and 'page' is zero-based */ 
     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 */ 
    g.drawString("Hello world!", 100, 100); 

    /* tell the caller that this page is part of the printed document */ 
    return PAGE_EXISTS; 
} 

public void actionPerformed(ActionEvent e) { 
    PrinterJob job = PrinterJob.getPrinterJob(); 
    job.setPrintable(this); 

    PrintService[] printServices = PrinterJob.lookupPrintServices(); 
    try { 
     job.setPrintService(printServices[0]); 
     job.print(); 
    } catch (PrinterException ex) { 
     Logger.getLogger(HelloWorldPrinter.class.getName()).log(Level.SEVERE, null, ex); 
    } 
} 

public static void main(String args[]) { 

    UIManager.put("swing.boldMetal", Boolean.FALSE); 
    JFrame f = new JFrame("Hello World Printer"); 
    f.addWindowListener(new WindowAdapter() { 
     public void windowClosing(WindowEvent e) {System.exit(0);} 
    }); 
    JButton printButton = new JButton("Print Hello World"); 
    printButton.addActionListener(new HelloWorldPrinter()); 
    f.add("Center", printButton); 
    f.pack(); 
    f.setVisible(true); 
} 
} 
संबंधित मुद्दे