2010-10-20 13 views
9

के साथ आवश्यक प्रिंट अभिविन्यास का पता लगाएं मैं xls स्प्रेडशीट बनाने के लिए अपाचे पीओआई का उपयोग कर रहा हूं। क्या यह पता लगाने का कोई तरीका है कि डेटा पोर्ट्रेट मोड में फिट बैठता है या मुझे शीट को लैंडस्केप मोड में सेट करना है या नहीं? मुझे पता है कि मोड कैसे सेट करें, लेकिन मुझे नहीं पता कि डेटा कैसे प्रिंट प्रिंट अभिविन्यास को फिट करता है या नहीं।अपाचे पीओआई

उत्तर

4

मैंने कोशिश की है लेकिन यह काम करने के लिए एक रास्ता नहीं देख सकता है।

जब आप कार्यपुस्तिका बनाते हैं, तो poi फिट ऊंचाई और चौड़ाई को प्रत्येक को डिफ़ॉल्ट करता है।

फ़िट ऊंचाई उच्च

और

फ़िट चौड़ाई में चादर फिट करने के लिए पृष्ठों की संख्या

में विस्तृत चादर फिट करने के लिए पृष्ठों की संख्या है

जब तक आप शीट प्रिंट ऊंचाई और चौड़ाई को उच्च मान पर सेट न करें,

sheet.getPrintSetup().setFitHeight((short)10); 

System.out.println (sheet.getPrintSetup().getFitWidth()); 
System.out.println (sheet.getPrintSetup().getFitHeight()); 

हमेशा 1 और 1

लौट समस्या एक्सेल हमेशा डेटा (ज़ूम आकार में) 1 x 1 पेज लेआउट फिट करने के लिए 10% करने के लिए नीचे सेक जाएगा। [MS_Excel में, यह Print Preview > Page Setup > Scaling > Down to X% of actual size]

एक बार ज़ूम 10% पर हो जाने के बाद, यह डेटा को पृष्ठ 2 पर और अधिक बार बहता है।

मैं डेटा के बहुत सारे के साथ एक चादर की कोशिश की है और यहां तक ​​कि प्रिंट आकार की एक किस्म पर एक बड़ा PrintArea

workBook.setPrintArea(
        0, //sheet index 
        0, //start column 
        50, //end column 
        0, //start row 
        520 //end row 
      ); 

भेजा है।

sheet.getPrintSetup().setPaperSize((short)11); // A5 

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

यह पीओआई मेलिंग सूचियों के लिए एक हो सकता है।

अद्यतन पीओआई मेलिंग सूचियों पर इस चर्चा के लिंक को शामिल करने के लिए पहले ही ओपी द्वारा पूछे गए अनुसार।

http://mail-archives.apache.org/mod_mbox/poi-user/201010.mbox/%[email protected]%3e

+0

मैं पहले से ही POI मेलिंग सूची पर इस प्रश्न पूछा और एक जवाब नहीं मिला। ओह ठीक है .. शायद जवाब यह है कि यह संभव नहीं है - जैसा कि आपने उल्लेख किया है। मैं एक और जोड़े के दिनों का इंतजार करूंगा और देख सकता हूं कि कोई समाधान के साथ आता है (मुझे संदेह है हालांकि) – black666

5
HSSFPrintSetup printSetup = sheet.getPrintSetup(); 
    sheet.getPrintSetup().setFitWidth((short) 1); 
    sheet.getPrintSetup().setFitHeight((short) 0); 
    sheet.setAutobreaks(true); 
    printSetup .setLandscape(true); 

    HSSFFooter footer = wygSheet.getFooter(); 
    footer.setCenter("Page " + HSSFFooter.page() + " of "+ HSSFFooter.numPages()); 
+0

यह मेरे लिए काम नहीं करता है, लेकिन अगर मैं setFitHeight को 0 से 1 में बदलता हूं, तो यह काम करता है –

संबंधित मुद्दे