rogerCopy
@rogerCopy

Как сделать чтобы dompdf сохранял картинки при создании PDF из статей википедии?

Apache2, php7
установлено allow_url_fopen=1
ПДФ с других сайтов делается с картинок

код пхп:
require_once 'dompdf/autoload.inc.php';
//require_once 'PdfConverter.php';
 
use Dompdf\Dompdf;
use Dompdf\Options;

if (isset($_POST["pdf"])) 
{
    $url = urldecode($_POST["initialArticle"]);

    $pdfTitle = substr($url, strpos($url, 'wiki/') +5);
    $pdfTitle = str_replace("(", "_", $pdfTitle);
    $pdfTitle = str_replace(")", "_", $pdfTitle);
                    
    //if , in $pdfTitle
    if (strpos($pdfTitle, ",")) 
    {
        $pdfTitle = str_replace(",", "_", $pdfTitle);  
    }

    $options = new Options();
    $options->set('defaultFont', 'DejaVu Sans');

    $dompdf = new Dompdf($options);

    //an alleged workout to POST images into pdf
    //according to https://github.com/dompdf/dompdf/wiki/Usage
    $context = stream_context_create
    (
      [ 
        'ssl' => 
        [ 
          'verify_peer' => FALSE, 
          'verify_peer_name' => FALSE,
          'allow_self_signed'=> TRUE 
        ]     
      ]
    );
            
    $dompdf->setHttpContext($context);
    $html = file_get_contents($url);
    //handle $html of an article
    $dompdf->loadHtml($html);
    $dompdf->setPaper('A4', 'landscape');
    $dompdf->render($pdfTitle);

    $output = $dompdf->output();
    file_put_contents("/opt/lampp/htdocs/wikipdf.ru/$pdfTitle.pdf", $output); 
}


вот например какой адрес картинки стоит в пдф статьи Python, где прямоугольник:
/wiki/Файл:Guido_van_Rossum_OSCON_2006.jpg
VNpCq.png

в статье у этой картинки такой код
<a href="//commons.wikimedia.org/wiki/File:Guido_van_Rossum_OSCON_2006.jpg?uselang=ru" class="image">
  <img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/6/66/Guido_van_Rossum_OSCON_2006.jpg/220px-Guido_van_Rossum_OSCON_2006.jpg" decoding="async" width="220" height="330" class="thumbimage" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/6/66/Guido_van_Rossum_OSCON_2006.jpg/330px-Guido_van_Rossum_OSCON_2006.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/6/66/Guido_van_Rossum_OSCON_2006.jpg/440px-Guido_van_Rossum_OSCON_2006.jpg 2x" data-file-width="2336" data-file-height="3504">
</a>
  • Вопрос задан
  • 275 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы