2014-07-02 10 views
13

पर सामग्री फिट करने के लिए मैं एक HTML पृष्ठ को ए 4 आकार के पीडीएफ में परिवर्तित करना चाहता हूं।phantomjs ए 4 पृष्ठ

page.paperSize = { 
    format: 'A4', 
    orientation: 'portrait', 
    border: '1cm' 
}; 

क्या ए 4 की चौड़ाई फिट करने के लिए वेबसाइट को स्केल करने का कोई तरीका है?

अगर मैं निम्न HTML है:

<div style="width:1500px; text-align:right;"> 
    right 1500px 
</div> 

div के दाईं ओर बंद पेज गिर जाता है।

मैं viewportSize संपत्ति के साथ खेला जाता है:

page.viewportSize = { 
    width: 480, 
    height: 800 
}; 

मैं उम्मीद है कि एक बड़ा पेज के एक बड़े हिस्से में व्यूपोर्ट चौड़ाई परिणाम पीडीएफ में गाया जा रहा होगा।

page.zoom 

वांछित प्रभाव भी नहीं था।

पीडीएफ फाइलें रिपोर्ट हैं। एक पेशेवर रूप के लिए वे ए 4 होना चाहिए और कोई मनमाना आकार नहीं होना चाहिए।

या मेरी समस्या के लिए गलत उपकरण phantomjs है?

मैं उबंटू 12.04.4 पर प्रेतोज़ संस्करण 1.9.7 का उपयोग कर रहा हूं।


संपादित करें:

ऐसा लगता है यहाँ तीन अलग-अलग आयामों देखते हैं कि:

  • vieportSize के रूप में किए गए दस्तावेज़ों में लिखा है, जो आकार है कि प्रस्तुत करने के लिए प्रयोग किया जाता है
  • paperSize जो परिणामी पीडीएफ दस्तावेज़
  • का आकार है और फिर वहां है स्क्रीन का आकार। phantomjs हमेशा कागज के आकार पर एक स्क्रीन की चौड़ाई फिट बैठता है। मेरे phantomjs संस्करण का स्क्रीन आकार 1024 x 768 पिक्सेल है। यदि दृश्य पोर्ट स्क्रीन आकार से बड़ा है तो 1024 पिक्सेल के बाहर सबकुछ प्रदर्शित नहीं होता है।

मुझे स्क्रीन आकार बदलने के लिए अभी तक कोई रास्ता नहीं मिला।

मुझे पीडीएफ में http://www.whatismyscreenresolution.com/ प्रतिपादन करके यह मिला।

+0

आप तत्व/पृष्ठ की चौड़ाई में हेरफेर कर सकते हैं ताकि यह दस्तावेज़ में फिट हो सके। सवाल यह है कि क्या यह अभी भी अच्छा लगेगा। कौन सा phantomjs संस्करण और आप किस ओएस बीटीडब्ल्यू का उपयोग करते हैं? –

+1

और मैं अपनी वेबसाइटों को phantomjs की आवश्यकताओं के चारों ओर डिज़ाइन करना नहीं चाहूंगा ... – pat

+0

यहां एक और सूचक है: आप [पेज ज़ूम अनुकरण कर सकते हैं] (http://stackoverflow.com/a/9441618/1816580), लेकिन यह शायद आपके पृष्ठ को बहुत ही खराब कर देगा। –

उत्तर

2

एक समाधान एक तत्व बनाना है जो ए 4 के समान आकार है, और इसमें अपनी सामग्री रखें। यह मेरी मशीन पर काम करता है:

.page{ 
    position:relative; 
    border: 0px; 
    width:calc(210mm * 1.25); 
    height:calc(297mm * 1.25); 
    padding:0 
} 

ध्यान दें कि मैं 1.25 के ज़ूम कारक का उपयोग करता हूं। यह this issue के कारण है।

+0

यह अच्छी तरह से काम करता प्रतीत होता है। मैं इसे "मूल्यांकन" सुविधा का उपयोग करके गतिशील रूप से करता हूं और यह ठीक काम करता है, उदा। document.querySelector ('body')। Style.height = "calc (2 9 7 मिमी * 1.25)" – Ian

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