25 페이지 pdf를 인쇄 할 때 dompdf 시간 초과

미셸 콕

내 dompdf pdf를 생성하는 데 문제가 있습니다. 올바르게 렌더링되지만 25 페이지 pdf 파일을 만들려고하면 PHP 시간 초과 30 초 오류가 발생합니다.

imgpaths를 올바르게 설정하는 domelement를 통해 pdf를 만들고 있습니다. 또한 값을 2 개의 필드로 설정합니다.

나는 그것을 찾아 보았고 새로운 body 요소가 파싱되면 dompdf가 새 페이지를 만드는 것으로 나타났습니다. 그래서 여러 페이지에 여러 본문을 삽입하고 있습니다. 그것은 잘 렌더링됩니다. 아주 오래 걸리므로 아마도 뭔가 잘못하고 있습니다.

내 pdf 생성 코드는 다음과 같습니다.

    $pdf = Yii::app()->pfPDF->firstrun();
    $basepath = str_replace('\\', '/', Yii::app()->theme->basePath);

    $doc = new DOMDocument();
    $doc->preserveWhiteSpace = false;
    $htmlfile = $basepath.'/pdf/pdf.html';
    $html = null;
    \timestuff::$times[] = microtime(true);
    foreach($models as $model)
    {
        $model->printed = true;
        $model->save();
        $doc->loadHTMLFile($htmlfile);
        $html .= '<head>';
        $headNode = $doc->getElementsByTagName('head')->item(0);
        foreach($headNode->childNodes as $childnode){
            if($childnode->nodeType == XML_TEXT_NODE){
                continue;
            }
            $html.= $doc->saveHTML($childnode);
        }
        $html .= '</head><body>'; 
        $doc->getElementById('vouchercode')->nodeValue = $model->code;
        $doc->getElementById('timelimit')->nodeValue = $timelimit;
        $doc->getElementById('nllogo')->attributes->getNamedItem('src')->nodeValue = $basepath.'/pdf/assets/images/plate.png';
        $doc->getElementById('enlogo')->attributes->getNamedItem('src')->nodeValue = $basepath.'/pdf/assets/images/plate.png';
        $doc->getElementById('delogo')->attributes->getNamedItem('src')->nodeValue = $basepath.'/pdf/assets/images/plate.png';
        $doc->getElementById('frlogo')->attributes->getNamedItem('src')->nodeValue = $basepath.'/pdf/assets/images/plate.png';
        $doc->getElementById('customerlogo')->attributes->getNamedItem('src')->nodeValue = $basepath.'/pdf/assets/images/logo_krieghuus.png';
        $doc->getElementById('maxwifilogo')->attributes->getNamedItem('src')->nodeValue = $basepath.'/pdf/assets/images/maxwifi.png';
        $bodyNode = $doc->getElementsByTagName('body')->item(0);
        foreach($bodyNode->childNodes as $childnode){
            if($childnode->nodeType == XML_TEXT_NODE){
                continue;
            }
            $html.= $doc->saveHTML($childnode);
        }
        $html.= '</body>';
    }
    \timestuff::$times[] = microtime(true);
    Yii::app()->pfPDF->show($html);
    \timestuff::$times[] = microtime(true);

HTML은 다음과 같습니다.

<!doctype HTML>

<head>
  <title>
    voucher pdf
  </title>
  <style>
    #wrapper {
      width: 800px;
      background-color: white;
    }
    #vouchercode {
      font-weight: bolder;
    }
    .topsection {
      position: absolute;
      top: 0;
      height: 400px;
      left: 0;
    }
    #topleftsection {
      position: absolute;
      top: 0px;
      left: 0px;
      width: 400px;
      height: 400px;
    }
    #topleftimg,
    #topleftimg img {
      max-width: 400px;
      max-height: 285px;
    }
    #topleftimgdescr {
      text-align: center;
      font-weight: bold;
    }
    #toprightsection {
      position: relative;
      clear: none;
      top: 0px;
      left: 400px;
      height: 400px;
    }
    .maxwifisection {
      margin-left: 100px;
    }
    .maxwifihref {
      margin-right: 550px;
      text-align: center;
    }
    #wifisection {
      position: relative;
      top: 100px;
    }
    .instructionsection {
      position: absolute;
      top: 400px;
      bottom: 0;
      /*page-break-after: always;*/
    }
    #nl {
      height: 130px;
    }
    .countrytext {
      margin-top: -44px;
      margin-left: 8px;
      font-weight: bolder;
      color: white;
      font-size: 30px;
      font-family: "Verdana", Arial, sans-serif;
    }
    .countrypng {
      width: 60px;
    }
    .partial {
      height: 140px;
    }
    .instruction {
      position: relative;
      top: -120px;
      left: 60px;
      font-size: 14px;
    }
    ul {
      margin-top: 0px;
    }
  </style>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>

<body>
  <div id="wrapper">
    <div class="topsection">
      <div id="topleftsection">
        <div id="topleftimg">
          <img id="customerlogo" src="./assets/images/logo.png" />
        </div>
        <div id="topleftimgdescr">Vakantiepark de &ldquo;Krieghuusbelten&rdquo;</div>
      </div>
      <div id="toprightsection">
        <div class="maxwifisection">
          <img id="maxwifilogo" src="./assets/images/maxwifi.png" />
          <br />
          <div class="maxwifihref"><a>www.maxCoax.nl</a>
          </div>
        </div>
        <div id="wifisection">
          <table>
            <tr>
              <th>Wifi activatiecode</th>
              <th></th>
            </tr>
            <tr>
              <td>Tijdsduur:</td>
              <td id="timelimit"></td>
            </tr>
            <tr>
              <td>Apparaten:</td>
              <td>1</td>
            </tr>
            <tr>
              <td>Activatiecode:</td>
              <td id="vouchercode"></td>
            </tr>
          </table>
        </div>
      </div>
    </div>
    <div class="instructionsection">
      <div class="partial">
        <div class="countrypng">
          <img id="nllogo" src="./assets/images/plate.png" />
          <div class="countrytext">NL</div>
        </div>
        <div class="instruction">
          <b>Instructies</b>
          <ul>
            <li>
              Start uw notebook, PDA of PC. Wanneer u binnen het bereik van een wifi hotspot bent kunt u verbinding
              <br />maken met het Wifi netwerk. Start internet en de activatiepagina opent.
            </li>
            <li>
              Vul de hierboven vermelde toegangscode in.
            </li>
            <li>
              De tijdsduurgebruik gaat in na activatie.
            </li>
            <li>
              U kunt gebruik maken van internet.
            </li>
            <li>
              <b>Let op!</b> Deze toegangscode is te activeren op 1 apparaat.
            </li>
          </ul>
        </div>
      </div>
      <div class="partial">
        <div class="countrypng">
          <img id="enlogo" src="./assets/images/plate.png" />
          <div class="countrytext">EN</div>
        </div>
        <div class="instruction">
          <b>Instructions</b>
          <ul>
            <li>
              Start up your notebook, PDA or PC. Please connect with the Wifi network if you are within range of a Wifi
              <br />access point.
            </li>
            <li>
              Log on to the internet. You will land on the activation page.
            </li>
            <li>
              Enter the above mentioned access code. The duration of use starts after activation.
            </li>
            <li>
              You are now ready to use internet.
            </li>
            <li>
              <b>Attention!</b> This code is for use on 1 device
            </li>
          </ul>
        </div>
      </div>
      <div class="partial">
        <div class="countrypng">
          <img id="delogo" src="./assets/images/plate.png" />
          <div class="countrytext">&nbsp;D</div>
        </div>
        <div class="instruction">
          <b>Hinweise</b>
          <ul>
            <li>
              Starten Sie Ihr Notebook, PDA oder Ihren PC. Wenn Sie sich innerhald der Reichweite eines Accespoints
              <br />befinden, dan k&ouml;nnen Sie mit dem drahlosen Netzwerk verbindung machen.
            </li>
            <li>
              Starten Sie internet. Sie bekommen den Aktivierungsseite.
            </li>
            <li>
              Geben Sie den oben erw&auml;hnten Aktivierungscode ein. Die Dauerder Anwenung startet nach den Aktivierung.
            </li>
            <li>
              Sie k&ouml;nnen jetzt das Internet benutzen.
            </li>
            <li>
              <b>Achtung!</b> Dieser code k&ouml;nnen sie gleichzeitig aktiveren f&uuml;r den Einsatz auf 1 Ger&auml;t.
            </li>
          </ul>
        </div>
      </div>
      <div class="partial">
        <div class="countrypng">
          <img id="frlogo" src="./assets/images/plate.png" />
          <div class="countrytext">FR</div>
        </div>
        <div class="instruction">
          <b>Instructions</b>
          <ul>
            <li>
              Ouvrez Votre portable, PDA ou PC. Lorsque vous &ecirc;tes dans les environs d&rsquo;un point d&rsquo;acc&egrave;s Wifi, vous serez
              <br />reli&eacute;s apr&egrave;s quelques secondes automatique au r&eacute;sea Wifi systeme sans fil.
            </li>
            <li>
              D&eacute;marrez internet. Alors sur le site du hotel ou camping.
            </li>
            <li>
              Compl&eacute;tez le code d&rsquo;acc&egrave;s mentionn&eacute; ci-dessus. La dur&eacute;e d&rsquo;utilisation commence apr&egrave;s l&rsquo;activation.
            </li>
            <li>
              Vous pourrez maintenant utiliser internet.
            </li>
            <li>
              <b>Attention!</b> Ce code est utilis&eacute; sur 1 p&egrave;riph&egrave;rique
            </li>
          </ul>
        </div>
      </div>
    </div>
  </div>
</body>

누구든지로드 속도를 높이도록 도와 줄 수 있습니까? 모든 도움을 주시면 감사하겠습니다.

미셸 콕

결과적으로 내가 일하는 컴퓨터입니다. 내 집 컴퓨터는 +/- 15 초 안에 PDF를 생성합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Flutter로 ESC / POS로 인쇄 할 때 소켓 시간 초과 오류를 방지하는 방법

분류에서Dev

phantomjs는 페이지를로드 할 때 항상 시간 초과됩니다.

분류에서Dev

Elasticsearch 인덱스를 만들려고 할 때 시간 초과

분류에서Dev

큰 DB를 업데이트 할 때 PHP MySQL 시간 초과

분류에서Dev

각도기를 사용하여 웹 페이지에서 검색을 수행 할 때 시간 초과 오류

분류에서Dev

각도기를 사용하여 웹 페이지에서 검색을 수행 할 때 시간 초과 오류

분류에서Dev

사용자 지정 분석기로 문서를 인덱싱 할 때 시간 초과

분류에서Dev

Google 크롬에서 인쇄를 시도 할 때 웹 페이지가 충돌 함

분류에서Dev

시간이 많이 걸리는 PHP를 실행할 때 시간 초과를 방지하는 방법

분류에서Dev

dompdf에서 페이지 나누기를 사용할 때 디자인 나누기를 해결하는 방법

분류에서Dev

MarkLogic CORB-corb를 실행할 때 시간 초과를 방지하는 방법

분류에서Dev

DynamoDB에 데이터를 쓰려고 할 때 Lambda 함수가 시간 초과 됨

분류에서Dev

데이터 표를 인쇄 할 때 마지막 페이지에 바닥 글 표시 데이터 설정 JavaScript

분류에서Dev

Firefox는 인쇄 할 때 페이지 나누기 전 무시

분류에서Dev

프록시를 사용할 때 시간 초과

분류에서Dev

특정 구성 가능한 임계 값을 초과 할 때 zsh에서 실행 시간 (월 타임)을 인쇄하는 방법이 있습니까?

분류에서Dev

$ resource를 사용할 때 페이지와의 동기화를 기다리는 동안 각도기가 시간 초과 됨

분류에서Dev

bash 스크립트에서 osascript를 사용하여 메시지를 표시 할 때 시간 초과 증가

분류에서Dev

waitForElementToBeRemoved는 요소를 전달할 때 시간 초과됩니다.

분류에서Dev

TCP 커넥터를 통해 연결할 때 시간 초과

분류에서Dev

AWS에서 서버를 ping 할 때 시간 초과 요청

분류에서Dev

IsolationLevel.ReadUncommitted를 사용할 때 시간 초과 SqlException

분류에서Dev

URL에 연결할 때 시간 초과 방지

분류에서Dev

URL에 연결할 때 시간 초과 방지

분류에서Dev

인쇄 할 때 항상 사용자 이름과 암호를 묻는 메시지가 표시됩니다.

분류에서Dev

시간 간격이 정의 된 값을 초과 할 때 데이터 분할

분류에서Dev

페이지를 PDF로 인쇄하려고 할 때 헤드리스 Chrome이 중단됨

분류에서Dev

서버 그룹을 시작 / 중지 할 때 Wildfly 시간 초과를 늘리는 방법은 무엇입니까?

분류에서Dev

PDF를 만들 때 wicked_pdf 시간 초과

Related 관련 기사

  1. 1

    Flutter로 ESC / POS로 인쇄 할 때 소켓 시간 초과 오류를 방지하는 방법

  2. 2

    phantomjs는 페이지를로드 할 때 항상 시간 초과됩니다.

  3. 3

    Elasticsearch 인덱스를 만들려고 할 때 시간 초과

  4. 4

    큰 DB를 업데이트 할 때 PHP MySQL 시간 초과

  5. 5

    각도기를 사용하여 웹 페이지에서 검색을 수행 할 때 시간 초과 오류

  6. 6

    각도기를 사용하여 웹 페이지에서 검색을 수행 할 때 시간 초과 오류

  7. 7

    사용자 지정 분석기로 문서를 인덱싱 할 때 시간 초과

  8. 8

    Google 크롬에서 인쇄를 시도 할 때 웹 페이지가 충돌 함

  9. 9

    시간이 많이 걸리는 PHP를 실행할 때 시간 초과를 방지하는 방법

  10. 10

    dompdf에서 페이지 나누기를 사용할 때 디자인 나누기를 해결하는 방법

  11. 11

    MarkLogic CORB-corb를 실행할 때 시간 초과를 방지하는 방법

  12. 12

    DynamoDB에 데이터를 쓰려고 할 때 Lambda 함수가 시간 초과 됨

  13. 13

    데이터 표를 인쇄 할 때 마지막 페이지에 바닥 글 표시 데이터 설정 JavaScript

  14. 14

    Firefox는 인쇄 할 때 페이지 나누기 전 무시

  15. 15

    프록시를 사용할 때 시간 초과

  16. 16

    특정 구성 가능한 임계 값을 초과 할 때 zsh에서 실행 시간 (월 타임)을 인쇄하는 방법이 있습니까?

  17. 17

    $ resource를 사용할 때 페이지와의 동기화를 기다리는 동안 각도기가 시간 초과 됨

  18. 18

    bash 스크립트에서 osascript를 사용하여 메시지를 표시 할 때 시간 초과 증가

  19. 19

    waitForElementToBeRemoved는 요소를 전달할 때 시간 초과됩니다.

  20. 20

    TCP 커넥터를 통해 연결할 때 시간 초과

  21. 21

    AWS에서 서버를 ping 할 때 시간 초과 요청

  22. 22

    IsolationLevel.ReadUncommitted를 사용할 때 시간 초과 SqlException

  23. 23

    URL에 연결할 때 시간 초과 방지

  24. 24

    URL에 연결할 때 시간 초과 방지

  25. 25

    인쇄 할 때 항상 사용자 이름과 암호를 묻는 메시지가 표시됩니다.

  26. 26

    시간 간격이 정의 된 값을 초과 할 때 데이터 분할

  27. 27

    페이지를 PDF로 인쇄하려고 할 때 헤드리스 Chrome이 중단됨

  28. 28

    서버 그룹을 시작 / 중지 할 때 Wildfly 시간 초과를 늘리는 방법은 무엇입니까?

  29. 29

    PDF를 만들 때 wicked_pdf 시간 초과

뜨겁다태그

보관