2012-06-07 12 views
11

का उपयोग करके छवि आउटपुट के डीपीआई को नियंत्रित करना, page.render(filename) विधि का उपयोग कर वेब सामग्री की छवि को रास्टराइज करते समय उपयोग की जाने वाली डीपीआई सेटिंग को नियंत्रित करने का कोई तरीका है?रेंडर()

मुझे ऐसा कुछ भी नहीं मिला जो the interface api के माध्यम से इसे नियंत्रित करेगा, लेकिन यह नहीं पता था कि किसी ने पहले से ही ऐसा करने का तरीका निकाला है या नहीं।

हमारे व्यवसाय दर-मामला इस तरह दिखता है:

कस्टम HTML एक वेब अनुप्रयोग के माध्यम से बनाई गई सामग्री हमारे rasterize.js को प्रेत प्रक्रिया तंग आ गया है और ग्राहक आयत स्थापित करने के लिए एक विशिष्ट टैग के लिए क्वेरी की जाती है। यह क्लाइंट आयताकार HTML के पीएनजी में प्रस्तुत किया जाता है जिसे तब कहीं और छवि के रूप में उपयोग किया जा सकता है।

हम कुछ अजीब फ़ॉन्ट आकार/बोल्ड संयोजनों पर पाठ पर एलियासिंग के कारण परिणामी पीएनजी के डिफ़ॉल्ट से कुछ अधिक होना चाहते हैं।

+0

साथ संकल्प एक PNG में दर्ज सेट कर सकते हैं आम तौर पर नजरअंदाज कर दिया है जब यह प्रदर्शित करना। क्या आप इसे एक संपादक में खोलते समय ठीक दिखते हैं? –

+2

नहीं, और यह मुद्दा है। वे एक पीडीएफ के अंदर पीएनजी शामिल हैं, जो माना जाता है कि संकल्प बनाए रखा जा रहा है, और यह "हार्ड-टू-रीड टेक्स्ट" –

+0

आह का उत्पादन कर रहा है, आपको एक ऐसी स्थिति मिली है जहां संकल्प को अनदेखा नहीं किया जाता है। आप शायद 96. –

उत्तर

2

मैं कुछ और के साथ डीपीआई मिश्रण कर सकता हूं, लेकिन क्या आपने zoomFactor विकल्प देखा है? पेज ऑब्जेक्ट पर सेट करने से रेंडर की गई छवि ज़ूम हो जाएगी।

0

यह कांटा डीपीआई की स्थापना की अनुमति देता है https://github.com/martonw/phantomjs/tree/issue-%2313553

फिर आप डीपीआई page.dpi = 72

console.log('Loading a web page'); 
var page = require('webpage').create(); 
var url = 'http://phantomjs.org/'; 
page.open(url, function (status) { 
    //Page is loaded! 
    page.dpi=300; // this is where you actually set the DPI 
    page.render("test.pdf"); 
    phantom.exit(); 
}); 
संबंधित मुद्दे