2012-04-23 10 views
12

पीछे पीडीएफ उत्पन्न मैं पहले से ही इंटरनेट पर एक पीडीएफ WKHTMLTOPDF कि मुझ में पहले लॉग की आवश्यकता का उपयोग कर उत्पन्न करने के लिए कोशिश कर रहा हूँ। नहीं है इस पर कुछ लेकिन मैं नहीं कर पा रहे मेरा काम कर पाने के। मैं टर्मिनल में हूं - कुछ भी कल्पना नहीं है।प्रमाणीकरण दीवार

मैं कोशिश की है (अन्य सामग्री की एक पूरी बहुत कुछ के बीच में):

/usr/bin/wkhtmltopdf --post username=myusername --post password=mypassword "URL to Generate" test.pdf 

/usr/bin/wkhtmltopdf --username myusername --password mypassword "URL to Generate" test.pdf 

/usr/bin/wkhtmltopdf --cookie-jar my.jar --post username=myusername --post password=mypassword "URL to Generate Cookie For" 

यूज़रनेम और पासवर्ड दोनों id और फार्म पर इनपुट फ़ील्ड name हैं। मुझे अपनी .jar फ़ाइल दिखाने के लिए मिल रहा है, लेकिन इसमें कुछ भी लिखा नहीं गया है।

विशिष्ट प्रश्न:

  1. मैं प्रवेश पृष्ठ और/या कहीं भी प्रपत्र कार्रवाई को निर्दिष्ट किया जाना चाहिए?
  2. --cookie-जार पैरामीटर विभिन्न स्थानों में उल्लेख किया गया है (दोनों की जरूरत है और नहीं तो किया जा रहा है)। क्या यह आवश्यक होना चाहिए, यह कैसे काम करता है? मैंने my.jar फ़ाइल बनाई है लेकिन मैं इसे फिर से कैसे उपयोग करूं? संदर्भित:

http://code.google.com/p/wkhtmltopdf/issues/detail?id=356


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

निश्चित रूप से किसी को इस सफलतापूर्वक किया? एक हो सकता है उदाहरण के प्रदर्शन करने के लिए अगर किसी को यह कुछ लोकप्रिय वेबसाइट है कि प्रवेश प्रमाणिकता की एक संभावित चर को खत्म करने की आवश्यकता है पर काम करने के लिए तैयार है एक अच्छा तरीका।

उत्तर

8

पासवर्ड --post --post उपयोगकर्ता नाम user_name_value हैं मुझे लगता है कि प्रपत्र मैं में लॉग इन करने कोशिश कर रहा हूँ बहुत जटिल है। यह सुरक्षित है, तीन कुकीज़ सेट करता है, दो बार रीडायरेक्ट करता है, और उपयोगकर्ता नाम और पासवर्ड के बाहर कई अन्य चर पोस्ट करता है, जिनमें से एक को कुकी वैल्यू की आवश्यकता होती है (मैंने पोस्ट वैरिएबल में मान को समेकित करने की भी कोशिश की, लेकिन कोई किस्मत नहीं)। यह शायद एक बहुत ही दुर्लभ मुद्दा है - किसी भी तरह से WKHTMLTOPDF की गलती नहीं है।

मैं लॉग इन करने और पृष्ठ को स्थानीय फ़ाइल में लिखने के लिए कर्ल का उपयोग करके घायल हो गया, फिर उसके खिलाफ WKHTMLTOPDF चला गया।निश्चित रूप से किसी अन्य मुद्दे के लिए निश्चित रूप से एक ठोस काम है।


संपादित करें: आप phantomjs साथ पीडीएफ करने के लिए प्रस्तुत करने के लिए कोशिश कर रहा में रुचि हो सकती

curl_setopt($ch, CURLOPT_HEADER, 1); # Change to 1 to see WTF 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); 
curl_setopt($ch, CURLOPT_URL, $loginUrl); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields); 
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); 
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
+0

इस कर्ल सिंटैक्स को रेखांकित करने के लिए और अधिक उपयोगी होगा जो आपके लिए चाल है। –

+0

हाय इफ़ेदी, सुनिश्चित नहीं है कि मेरा विशिष्ट कार्यान्वयन वास्तव में आपके उपयोग के मामले में सहायक होगा (यह पोस्ट स्ट्रिंग है जो मेरी आवश्यकताओं के लिए विशिष्ट है, और PHP के माध्यम से कार्यान्वित) लेकिन मैंने इसे जोड़ा, इसलिए उम्मीद है कि यह मदद करता है। – Chords

12

हर लॉगिन प्रपत्र हर साइट के लिए अलग होगा। क्या आप क्या करना चाहते करने जा रहे हैं निर्धारित क्या आप सभी इस पृष्ठ के HTML (जो आप शायद के बारे में पता कर रहे हैं) को पढ़ कर उस लॉगिन प्रपत्र का लक्ष्य करने के लिए पारित करने के लिए की जरूरत है। क्रॉस साइट अनुरोध फोर्जरी को रोकने के लिए उपयोगकर्ता नाम/पासवर्ड फ़ील्ड के शीर्ष पर एक अतिरिक्त छिपी हुई फ़ील्ड ले सकती है।

कुकी जार पैरामीटर एक फ़ाइल है जो इसे कुकीज़ को संग्रहीत करता है जो इसे वेबसर्वर से वापस ले जाता है। आपको इसे लॉगिन फॉर्म के पहले अनुरोध में निर्दिष्ट करना होगा, और बाद में अनुरोधों को कुकी/सत्र का उपयोग करना जारी रखना होगा । जानकारी है कि वेब सर्वर तुम वापस दे दिया है जाएगा में प्रवेश करने के बाद

तो यह योग करने के लिए ऊपर:

  1. देखो और अगर वहाँ पेज की आवश्यकता पर किसी भी अतिरिक्त मापदंड हैं देखते हैं।
  2. सुनिश्चित करें कि URL आप को प्रस्तुत कर रहे हैं उस पृष्ठ पर फ़ॉर्म एलीमेंट का कार्रवाई विशेषता के रूप में एक ही है।
  3. लॉगिन अनुरोध और दूसरी सामग्री अनुरोध दोनों में - कुकी-जार पैरामीटर का उपयोग करें।
  4. --post मापदंडों के लिए वाक्य रचना password_value
+0

धन्यवाद, hsanders। भले ही मैं एक और मार्ग लेना घायल हो, आपका जवाब ठोस दिखता है। जवाब देने का समय निकालने के लिए धन्यवाद! – Chords

+0

@Chords कोई समस्या नहीं है। मैंने पहले कुछ बार wkhtmltopdf का उपयोग किया है। मुझे लगता है कि एक और जटिल मामले के लिए, जैसा कि आपने वर्णन किया है, इसका उपयोग करने के लिए दर्द का थोड़ा सा हिस्सा है ... मुझे यकीन नहीं है कि यह आपके अनुवर्ती अनुवर्ती रीडायरेक्ट से कैसे निपटेंगे, कभी भी इससे निपटना नहीं था। – hsanders

3

: कर्ल, रुचि है।

phantomjs rasterize.js http://blah.com/ webgl.pdf 

आप rasterize.js here पा सकते हैं। असल में, आप लॉग इन पेज पर लॉग इन करने के लिए कुछ जावास्क्रिप्ट लिखते हैं, फिर आप पीडीएफ सृजन करते हैं।

हालांकि, आउटपुट wkhtmltopdf जैसा नहीं है। आप एचटीएमएल को सिर्फ फाइल में सहेज सकते हैं, और फिर phkhomjs पीडीएफ आउटपुट बहुत भयानक है तो wkhtmltopdf के साथ प्रस्तुत करें।

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