2017-03-13 8 views
5

मैं अपनी परियोजना में snappy के माध्यम से wkhtmltopdf का उपयोग कर रहा हूँ। अपने स्थानीय मशीन पर उत्पादन सही है: https://www.dropbox.com/s/ml9cp2pa6d8wja5/Zaznaczenie_100.png?dl=0wkhtmltopdf - एक ही कॉन्फ़िगरेशन अलग आउटपुट

लेकिन जब मैं सर्वर पीडीएफ बहुत अलग लग रही है करने के लिए परियोजना को तैनात, शायद व्यूपोर्ट की चौड़ाई अलग है: https://www.dropbox.com/s/8g0c29bzaxltyb9/170311_123139_4775.jpg?dl=0

दोनों प्रणालियों बिल्कुल का उपयोग पीडीएफ उत्पन्न करने के लिए एक ही विन्यास।

मेरे प्रश्न हैं:

  • मैं कैसे जांच कर सकते हैं विशिष्ट मशीन पर wkhtmltopdf की डिफ़ॉल्ट कॉन्फ़िगरेशन क्या है?
  • मैं व्यूपोर्ट आकार कैसे बदल सकता हूं ताकि मेरा आउटपुट अलग-अलग मशीनों पर बिल्कुल समान हो?

मैंने आउटपुट पृष्ठ की चौड़ाई और ऊंचाई मैन्युअल रूप से (21 सेमी और 50 सेमी क्रमशः) निर्धारित की है। मैंने डीपीआई पैरामीटर के साथ विभिन्न संयोजनों की कोशिश की, लेकिन ऐसा कोई प्रभाव नहीं पड़ता है।

मैं wkhtmltpdf पीएचपी आवरण का उपयोग कर रहा हूँ - snappy - लेकिन मैं जाँच की और मैं कंसोल में एक ही आउटपुट मिलता है, तो समस्या wkhtmltopdf से संबंधित, तेज़ नहीं है।

+0

आपके ड्रॉपबॉक्स लिंक काम नहीं कर रहे हैं। शायद आपको अपनी छवियों को संपादन बॉक्स के माध्यम से दोबारा अपलोड करना चाहिए जो आपकी छवि को स्टैक ओवरफ़्लो की imgur होस्टिंग पर होस्ट करेगा। –

+0

धन्यवाद, इसे ठीक करें! – Gacek

+0

क्या आप पुष्टि कर सकते हैं कि wkhtmltopdf पर दो संस्करण समान हैं? – Ruslan

उत्तर

0

आपके पीडीएफ आउटपुट में अलग-अलग चीजों में से एक है जो फ़ॉन्ट फेस है। wkhtmltopdf को आपके ऑपरेटिंग सिस्टम पर फोंट को स्थापित करने की आवश्यकता होती है उसी तरह ब्राउज़र को इसकी आवश्यकता होगी। यह संभव है कि फोंट के अंतर और आकार में अंतर आपके पृष्ठ के लेआउट को प्रभावित कर रहे हैं। आपको सबसे पहले देखना चाहिए कि आप अपनी स्रोत फ़ाइल में किस फोंट का उपयोग करने का प्रयास कर रहे हैं और अपने सर्वर पर इंस्टॉल करें। माइक्रोसॉफ्ट के कोर फ़ॉन्ट्स को here, या अपने सर्वर के वितरण की रिपॉजिटरीज़ से स्थापित करना एक अच्छी शुरुआत है। ,

@font-face { 
    font-family: 'Roboto'; 
    font-style: normal; 
    font-weight: 400; 
    src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v15/CWB0XYA8bzo0kSThX0UTuA.woff2) format('woff2'); 
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215; 
} 

गूगल के वेब फोंट के मामले में आप:

इस के चारों ओर एक वैकल्पिक तरीका अपने सर्वर पर उन्हें स्थापित करने के बिना, अपने स्रोत फ़ाइल स्टाइलशीट में @font-face निर्देशों का उपयोग करने के किसी URL से फोंट से जोड़ने के लिए है बजाय अपने स्टाइलशीट आयात कर सकते हैं:

<link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet" /> 

एक और बात की जांच करने के लिए अपने कार्य केंद्र और अपने सर्वर पर wkhtmltopdf के संस्करण है। चल रहा है wkhtmltopdf --version आपको वर्तमान में स्थापित संस्करण बताएगा। ऐसा हो सकता है कि आपका सर्वर wkhtmltopdf का पुराना संस्करण चला रहा हो। आपको आवश्यक सुविधाओं के साथ wkhtmltopdf के अद्यतित संस्करण को स्थापित करने का सबसे आसान तरीका here से है, जहां आप किसी भी डिस्ट्रो के लिए स्थैतिक रूप से लिंक्ड लिनक्स बाइनरी डाउनलोड कर सकते हैं। विभिन्न --margin-top, --margin-right, --margin-bottom और --margin-left तर्कों का उपयोग कर रहा है की कोशिश करने के

एक आखिरी बात। --viewport-size नामक ध्वज भी है जो बेहतर परिणाम देने में मदद कर सकता है।

wkhtmltopdf --viewport-size 1024x768 page.html output.pdf 

आप दोनों अपने कार्य केंद्र और सर्वर पर wkhtmltopdf का एक ही संस्करण का उपयोग कर रहे हैं, तो फिर भी, इन कॉन्फ़िगरेशन विकल्प एक फर्क नहीं करना चाहिए, जैसा कि आप ने कहा आप पहले से ही दोनों पर एक ही विन्यास का उपयोग कर रहे हैं।

+0

फ़ॉन्ट्स समस्या नहीं है। मैंने कोशिश की - समीक्षा-आकार ध्वज, लेकिन ऐसा लगता है कि मृत - कोई प्रभाव नहीं। मार्जिन दोनों मशीनों पर समान हैं – Gacek

+0

@Gacek wkhtmltopdf के कौन से संस्करण आपके सर्वर और वर्कस्टेशन पर हैं? और आपने उन्हें कहां से स्थापित किया? –

0

कैंडी गमड्रॉप का बैक अप लेने के लिए, हमने मार्जिन की कोशिश की, लेकिन हमारा जवाब उत्पादन सर्वर पर wkhtmltopdf की 32-बिट प्रतिलिपि का पुन: उपयोग किया गया, न कि 64-बिट संस्करण का उपयोग किया गया। "Wkhtmltopdf --version" के पूरे नतीजे सिर्फ संस्करण संख्या के साथ मेल खाते हैं।

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