За последние 24 часа нас посетили 17797 программистов и 1679 роботов. Сейчас ищут 825 программистов ...

Прогрессбар при генерации pdf документа

Тема в разделе "PHP для новичков", создана пользователем antropoied, 27 дек 2018.

  1. antropoied

    antropoied Активный пользователь

    С нами с:
    8 авг 2018
    Сообщения:
    23
    Симпатии:
    0
    Я использую библиотеку TFPDF для создания пользовательского файла PDF из текстового файла. Когда пользователь нажимает кнопку «Создать PDF», открывается новая вкладка и начинается процесс PDF. В среднем на сборку PDF уходит около 15 секунд. Как только файл готов, браузер закрывает пустую страницу и отображает диалоговое окно сохранения как.
    Подскажите как можно "прикрутить" прогрессбар при создании pdf документа.



    PHP:
    1. <?php
    2. require('tfpdf.php');
    3.  
    4. //нумерация страниц
    5. class PDF extends tFPDF
    6. {
    7.     function Footer()
    8.     {
    9.         $this->SetXY(-17,-12);
    10.         $this->SetFont('DejaVu','',8);
    11.         $this->Cell(5, 5, $this->PageNo(),0, 0, 'C');
    12.     }
    13. }
    14.    
    15. $pdf = new PDF();
    16. $pdf->SetDisplayMode(real,'default');
    17. $pdf->SetMargins( 30, 10, 3, true );
    18. $pdf->SetAutoPageBreak( true, 7 );
    19. $pdf->AddFont('DejaVu','','DejaVuSansMono.ttf',true);
    20.  
    21.     $path = '902.lst';
    22.  
    23.     $array = file($path);
    24.     //Замена конца строки на пустое значение и перекодировка в юникод
    25.     $mass = array();
    26.     foreach($array as $item)
    27.     {
    28.        $mass[] = iconv('CP866', 'utf-8', str_replace(chr(12),"",$item));
    29.     }
    30.  
    31. //Вывод данных
    32. $pdf->SetMargins( 5, 33, 3, true );
    33. $pdf->SetFont('DejaVu','',6.5);
    34. $pdf->AddPage('L');
    35.  
    36. foreach ($mass as $item)
    37. {
    38.           $pdf->Write(2.4, $item);
    39.      
    40.         }
    41.      
    42. $pdf->Output('doc.pdf','D');
    43. }
    44. ?>
     
  2. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    прогресс бар, который будет реально отображать статус процесса - никак. Или нужно так заморочиться, что оно того не стоит.
    там что 100500 страниц?
    пдф же оч быстро генерится.
    если прям так хочется, то можно JS либу заюзать. Тогда будет реально.