CSS3

2012-02-16 25 views
5

में मल्टीपाज दस्तावेज़ अनुकरण करें मुझे एक वेब पेज बनाना बहुत पसंद है, जो ज़ूम स्तर छोटा होने पर माइक्रोसॉफ्ट वर्ड या एक्रोबैट रीडर की समान उपस्थिति होगी और यह पेज के साथ साइड-बाय-साइड पेज दिखाता है सीमाओं।CSS3

मुझे क्या नहीं पता कि एक निश्चित आकार पेपरबॉर्डर को परिभाषित करना और इसके अंदर सामग्री को फेंकना (जो HTML ब्लॉक तत्वों की एक चर संख्या होगी), और इन तत्वों को एक पृष्ठ से "प्रवाह" बनाना है दूसरे के लिए, उचित पेज ब्रेक के साथ आवश्यक पृष्ठों को उतना ही बनाना। यह त्वरित डिजाइन-अध्ययन प्रोटोटाइप के लिए, मुद्रित आउटपुट अनुकरण करने का इरादा है।

मेरे दिमाग में कुछ जावास्क्रिप्ट आवश्यक होगा, लेकिन चूंकि जावास्क्रिप्ट का मेरा ज्ञान शून्य के करीब है, और मैं शायद ही कभी CSS3 लेआउट चाल सीखना चाहता हूं, शुद्ध सीएसएस को प्राथमिकता दी जाएगी (हालांकि जेएस समाधान एक अच्छा विकल्प होगा)।

एक मौजूदा एक पृष्ठ दस्तावेज़ इस प्रकार है:

<!DOCTYPE html> 
<html lang="pt-br" xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <meta charset="UTF-8" /> 
     <title>Relatório Html</title> 
     <style type="text/css"> 
      html, body { 
       margin:0; 
       padding:0; 
      } 

      body { 
       background-color: #aaa; 
      } 

      .paperpage { 
       position: absolute; 
       width: 600px; 
       padding: 50px 30px 40px 30px; 
       margin-left: -320px; 
       left: 50%; 
       top:10px; 
       bottom:10px; 
       background-color: white; 
       box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8); 
      } 

      #innerpage { 
       position: relative; 
       margin: 0 auto; 
       height: auto !important; 
       min-height: 100%; 
      } 
     </style> 
    </head> 

    <body> 
    <div class="paperpage"> 
     <div id="innerpage"> 
      <p>Some Content</p> 
     </div> 
    </div> 
    </body> 
</html> 

उत्तर

2

यह CSS3 में या यहाँ तक कि जावास्क्रिप्ट में करने के लिए आसान नहीं है। Google डॉक्स, जो ऐसा करता है, पृष्ठों की गणना के लिए अपना स्वयं का इंजन है। उस ने कहा, CSS3 Regions Module का एक बेहद शुरुआती मसौदा पोस्ट किया गया है जो इसे बहुत आसान बना देगा।

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

0

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

उदाहरण के लिए:

<object 
    data="/clients/<%= client.id %>/reports/print?preview=true" 
    type="application/pdf" width="100%" height="98%"> 
    <p>Your browser does not support embedded PDFs.</p> 
</object> 

हम पीडीएफ रूपांतरण के लिए हमारी एचटीएमएल के सभी के लिए wkhtmltopdf का उपयोग करें। यह उपयोग करने के लिए अपेक्षाकृत सरल है और हम इसे बड़ी सफलता के साथ सीएसएस तकनीकों के सभी प्रकार के साथ बेहद जटिल HTML दस्तावेज़ों पर उपयोग कर रहे हैं।

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

शुभकामनाएँ!