2014-09-17 5 views
10

क्या कोई मुझे बता सकता है कि निम्नलिखित मुद्दों को कैसे हल करें?wkhtmltopdf का उपयोग करते समय ContentNotFoundError से कैसे निपटें?

  1. wkhtmltopdf भी पिछले संस्करणों और इसकी प्रणाली का उपयोग नहीं $ http_proxy और $ https_proxy env चर के विपरीत प्रॉक्सी जानकारी (-p या --proxy) पारित करने के लिए विकल्प नहीं है।

  2. wkhtmltopdf साथ HTTPS/SSL काम नहीं कर रहा है, भले ही मैं libssl.so के लिए और libcrypto.so

    [[email protected] ~]$ wkhtmltopdf https://www.google.co.in google.pdf 
    loaded the Generic plugin 
    Loading page (1/2) 
    Error: Failed loading page https://www.google.co.in (sometimes it will work just to ignore this error with --load-error-handling ignore) 
    Exit with code 1 due to network error: UnknownNetworkError 
    

    और

    [[email protected] ~]$ wkhtmltoimage https://www.google.co.in sample.jpg 
    loaded the Generic plugin 
    Loading page (1/2) 
    Error: Failed loading page https://www.google.co.in (sometimes it will work just to ignore this error with --load-error-handling ignore) 
    Exit with code 1 due to network error: UnknownNetworkError 
    
  3. HTTP के साथ आंशिक रूप से काम कर रहे wkhtmltopdf LD_LIBRARY_PATH निर्धारित किया है। आउटपुट पीडीएफ फाइलें कुछ सामग्री/पृष्ठभूमि/पदों को याद करती हैं।

    [[email protected] ~]$ wkhtmltopdf http://localhost:8880/ sample.pdf 
    loaded the Generic plugin 
    Loading page (1/2) 
    Printing pages (2/2)            
    Done               
    Exit with code 1 due to network error: ContentNotFoundError 
    
    [[email protected] ~]$ wkhtmltoimage http://localhost:8880/ sample.jpg 
    loaded the Generic plugin 
    Loading page (1/2) 
    Rendering (2/2)              
    Done                
    Exit with code 1 due to network error: ContentNotFoundError 
    

नोट: इम wkhtmltopdf-0.12.1-1.fc20.x86_64 और क्यूटी-4.8.6-10.fc20.x86_64

+0

ये वास्तव में ऐसी चीजों की तरह लगते हैं जिन्हें गिथब इश्यू ट्रैकर में अशकुलज़ द्वारा सबसे अच्छा जवाब दिया जाएगा, मुझे लगता है कि आपका सबसे अच्छा भाग्य वहां से पूछेगा। – Nenotlep

+0

देखें: [नेटवर्क त्रुटि के कारण कोड 1 से बाहर निकलें: ContentNotFoundError # 2051] (https://github.com/wkhtmltopdf/wkhtmltopdf/issues/2051) – kenorb

उत्तर

2

का उपयोग कर दुर्भाग्य wkhtmltopdf जटिल को डाउनलोड करने से हैंडल नहीं करता वेबसाइटें, क्योंकि यह Qt/QtWebKit लाइब्रेरी का उपयोग करती है, जिसमें कुछ समस्याएं होती हैं। जैसे:

एक समस्या यह है कि wkhtmltopdf रिश्तेदार पते (#1634, #1886, #2359, QTBUG-46240 GitHub): का समर्थन नहीं करता है

<img src="/images/filetypes/txt.png"> 
<script src="//cdn.optimizely.com/js/653710485.js"> 

और यह स्थानीय के रूप में उन्हें लोड करता है।

ex -V1 page.html <<-EOF 
    %s,'//,'http://,ge 
    %s,"//,"http://,ge 
    %s,'/,'http://www.example.com/,ge 
    %s,"/,"http://www.example.com/,ge 
    wq " Update changes and quit. 
EOF 

लेकिन यह जो रिमोट पर URL के प्रकार है फ़ाइलों के लिए काम नहीं करेगा: एक समाधान है जो मैं इस पाया है ex यथा-स्थान संपादक द्वारा यथा-स्थान को सही html फ़ाइल है।

एक और समस्या यह है कि यह गायब संसाधनों को संभाल नहीं पाती है। आप --load-error-handling ignore निर्दिष्ट करने का प्रयास कर सकते हैं, लेकिन ज्यादातर मामलों में यह काम नहीं करता है (#2051 देखें), इसलिए यह अभी भी बकाया है। रूपांतरण से पहले, इन अमान्य संसाधनों को आसानी से निकालना है। नमूने के साथ

phantomjs rasterize.js http://example.com/ 

या dompdf (PHP के लिए पीडीएफ कनवर्टर करने के लिए HTML, आप संगीतकार द्वारा स्थापित कर सकते हैं):

wkhtmltopdf को वैकल्पिक रूप से

, आप या तो htmldoc, कुछ अतिरिक्त स्क्रिप्ट के साथ PhantomJS, उदाहरण के लिए rasterize.js का उपयोग कर उपयोग कर सकते हैं नीचे कोड:

<?php 
// somewhere early in your project's loading, require the Composer autoloader 
// see: http://getcomposer.org/doc/00-intro.md 
$HOMEDIR = "/Users/foo"; 
require $HOMEDIR . '/.composer/vendor/autoload.php'; 

// disable DOMPDF's internal autoloader if you are using Composer 
define('DOMPDF_ENABLE_AUTOLOAD', FALSE); 
define('DOMPDF_ENABLE_REMOTE', TRUE); 

// include DOMPDF's default configuration 
require_once $HOMEDIR . '/.composer/vendor/dompdf/dompdf/dompdf_config.inc.php'; 

$htmlString = file_get_contents("https://example.com/foo.pdf"); 

$dompdf = new DOMPDF(); 
$dompdf->load_html($htmlString); 
$dompdf->render(); 
$dompdf->stream("sample.pdf"); 
+1

यह वही तरीका है जैसा आपने यहां बताया है, मुझे भी रिश्तेदार को जानना है wkhtmltopdf पर थोड़ा अधिक काम करने के बाद संसाधन पथ, टूटी हुई लिंक आदि। मैंने phantomjs स्क्रिप्ट के साथ मेरी समस्या तय की। –

0

मेरी समस्या को सीएसएस से @ फ़ॉन्ट-फेस हटाने का हल किया गया था।

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