2009-12-30 14 views
6

द्वारा टुकड़ों पर फिसल जा रही है मैंने एक HTML आधारित रिपोर्ट बनाई है जो सी # में परिवर्तनीय लंबाई और सेगमेंट की संख्या हो सकती है (यही कारण है कि क्रिस्टल रिपोर्ट्स का उपयोग नहीं किया गया था) और मैं अद्भुत का उपयोग नहीं कर सकता रिपोर्ट के रूप में http://www.printfriendly.com/ इंट्रानेट आधारित है (बूओ, उसका)।एचटीएमएल आधारित रिपोर्ट पेजिंग

मैंने एक मीडिया = प्रिंट सीएसएस फ़ाइल बनाई है जिसका उपयोग स्वरूपण को कागज और स्याही के रूप में संभव बनाने के लिए किया जाता है लेकिन मुझे कोई समस्या है। रिपोर्ट में लगभग 50 टेबल पंक्तियों के साथ रिपोर्ट में एक बहुत लंबी मेज है, प्रत्येक ऊंचाई के चारों ओर: 200px। दुर्भाग्यवश, कुछ पेज पंक्तियों को स्वचालित पृष्ठ तोड़ने के कारण कटाई जा रही है, एक पृष्ठ पर तालिका पंक्ति के हिस्से के साथ और शेष अगले पृष्ठ पर। क्या वैसे भी (आशा है कि सीएसएस के माध्यम से), पृष्ठ तत्वों को अलग करने के लिए पेजब्रेकिंग विकल्पों को सेट करने के लिए (या समान तत्व)?

धन्यवाद, एलेक्स

+0

मैं चाहता हूं कि सीएसएस ने प्रिंटिंग टेबल को बेहतर तरीके से संभाला है लेकिन यह सीएसएस पेज ब्रेक विकल्पों के साथ अच्छी तरह से व्यवहार नहीं कर रहा है। मैं भी इसका समाधान देखना चाहता हूं। –

+0

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

उत्तर

1

page-break-inside: avoid संपत्ति इस पर नियंत्रण करना चाहिए, लेकिन अधिकांश ब्राउज़र की तरह है कि समर्थन नहीं करते tr या td तत्वों पर यह लग रहा है।

<!DOCTYPE html> 
<title>Page Break Test</title> 
<style>tr, td { page-break-inside: avoid }</style> 
<table border=1> 
    <tr height=200><td>This is a test. This should be tall.<td>Another column. 
    <tr height=200><td>This is a test. This should be tall.<td>Another column. 
    <tr height=200><td>This is a test. This should be tall.<td>Another column. 
    <tr height=200><td>This is a test. This should be tall.<td>Another column. 
    <tr height=200><td>This is a test. This should be tall.<td>Another column. 
    <tr height=200><td>This is a test. This should be tall.<td>Another column. 
    <tr height=200><td>This is a test. This should be tall.<td>Another column. 
    <tr height=200><td>This is a test. This should be tall.<td>Another column. 
    <tr height=200><td>This is a test. This should be tall.<td>Another column. 
    <tr height=200><td>This is a test. This should be tall.<td>Another column. 
    <tr height=200><td>This is a test. This should be tall.<td>Another column. 
    <tr height=200><td>This is a test. This should be tall.<td>Another column. 
    <tr height=200><td>This is a test. This should be tall.<td>Another column. 
    <tr height=200><td>This is a test. This should be tall.<td>Another column. 
    <tr height=200><td>This is a test. This should be tall.<td>Another column. 
    <tr height=200><td>This is a test. This should be tall.<td>Another column. 
</table> 

आप ओपेरा का उपयोग कर सकते हैं, तो यह काफी अच्छा हो सकता है: मेरे परीक्षण में, ओपेरा केवल एक ही है कि इस संपत्ति के रूप में निम्न परीक्षण में इस्तेमाल का सम्मान करता है, है। एक और विकल्प आपकी रिपोर्ट प्रिंट करने के लिए Prince पर देखना होगा, क्योंकि ब्राउज़रों की तुलना में प्रिंट स्टाइलशीट सुविधाओं के लिए बहुत बेहतर समर्थन होता है (हालांकि मैंने विशेष रूप से इस सुविधा का परीक्षण नहीं किया है)।

1

यदि आपकी पंक्ति ऊंचाई तय की जाती है, तो आप यह पता लगा सकते हैं कि पृष्ठ पर कितनी पंक्तियां फिट होती हैं, फिर उपयुक्त स्थानों में पेज ब्रेक को मजबूर करने के लिए प्रत्येक एन-वें पंक्ति पर page-break-after: always का उपयोग करें। यह एक हैक का थोड़ा सा है, लेकिन यह आपका सबसे अच्छा विकल्प हो सकता है।

+1

लेकिन वह कभी भी यह सुनिश्चित नहीं करेगा कि कितने फिट होंगे, क्योंकि विभिन्न ब्राउज़र अलग-अलग प्रिंट करते हैं, उपयोगकर्ता फ़ॉन्ट आकार को बढ़ा सकते हैं/घटा सकते हैं, और उपयोगकर्ता प्रिंट मार्जिन और पेज आकार बदल सकते हैं। –

+0

मीडिया = प्रिंट सीएसएस इन कारकों को कम कर सकता है, हालांकि उन्हें पूरी तरह खत्म नहीं कर सकता है। – keithjgrant

1

दुर्भाग्य से, एचटीएमएल के साथ आप जो चाहते हैं उसे विश्वसनीय रूप से पूरा करना असंभव है।

यदि आप मुद्रित होने पर उच्च स्तर पर नियंत्रण चाहते हैं, तो मेरा सुझाव है कि आपके पास एचटीएमएल की बजाय पीडीएफ या एक्सपीएस की रिपोर्ट जनरेटर आउटपुट है (या ब्रायन कैंपबेल के रूप में सलाह दी गई है कि प्रिंस जैसे टूल का उपयोग करके एचटीएमएल और इसे पीडीएफ में परिवर्तित करें)।

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