wkhtmltopdf未能转换本地网页为PDF(wkhtmltopdf failing to con

2019-10-16 16:25发布

我一直试图让wkhtmltopdf到页面转换在网站上和它的失败转换是在同一个页面。 它会转换和存储外部页面(与谷歌和bbc.co.uk试了一下,都工作),所以权限都很好,但如果我尝试本地页面转换,无论是静态HTML文件或一个由脚本生成,大约需要3分钟失败之前。

输出表示,页面加载失败,如果强行忽略这一点,我结束了一个空白的PDF。

我想这可能是会话锁定,但会议结束时产生了同样的问题。 我觉得这件事情到该服务器可虽然表现的方式

这里是有问题的代码:

            session_write_close ();
    set_time_limit (0);
            ini_set('memory_limit', '1024M');
    Yii::app()->setTheme("frontend");

    // Grabbing the page name
    $ls_url = Yii::app()->request->getHostInfo().Yii::app()->request->url;

    // Let's remove the PDF otherwise we'll be in endless loop
    $ls_url = str_replace('.pdf','',$ls_url);

    // Setting paths
    $ls_basePath = Yii::app()->basePath."/../extras/wkhtmltopdf/";
    if(PHP_OS=="Darwin")
        $ls_binary = $ls_basePath . "wkhtmltopdf-osx";
    else 
        $ls_binary = $ls_basePath . "wkhtmltopdf";

    $ls_generatedPagesPath = $ls_basePath . "generated-pages/";
    $ls_outputFileName = str_replace(array("/",":"),"-",$ls_url)."--".date("dmY-His").".pdf";
    $ls_outputFile = $ls_generatedPagesPath. $ls_outputFileName;

    // making sure no nasty chars are in place
    $ls_command = escapeshellcmd($ls_binary ." --load-error-handling ignore " . $ls_url . " " . $ls_outputFile);


    // Let's run things now
    system($ls_command);

Answer 1:

lynx ,准确的网址是什么? 因为wkhtmltopdf实际上是小而强大的WebKit浏览器,它失败的地方就像一个正常的浏览器。

检查你给的网址,请检查您的网页内外部URL是从您的服务器访问。 它加载CSS,外观图像,内部框架,一切它甚至开始制作PDF之前。

就个人而言,我喜欢wkhtmltpdf。 没有什么比它。



文章来源: wkhtmltopdf failing to convert local pages to PDF