Как избежать разрыва страницы в dompdf - PullRequest
0 голосов
/ 05 марта 2019

Я показываю ответы на некоторые вопросы в моем PDF. Но в некоторых случаях вопрос на одной странице и ответ придут на следующую страницу. Я хочу избежать этой ситуации. Я хочу отобразить вопрос и ответ на той же странице, либо на первой, либо на следующей странице. Я пробовал CSS, как показано ниже:

.questiontext
{
  unbreakable: true
}

Но это не работает для меня. Пожалуйста, помогите мне. Я добавил PDF помощник и просмотрите страницу, как показано ниже.

$d_arr=date('Y-m-d H:i:s');
$location_name="test"       
$list_content=$this->generate_form_list($submission_id,$client_id); 


        $filename_proposalpdf="formname.pdf";
        $this->load->helper(array('dompdf', 'file'));
        pdf_create_proposal($list_content,$filename_proposalpdf,true);

в генерации списка форм я добавил страницу просмотра, как показано ниже:

public function generate_form_list($id,$client_id)
{
    $data['form_data']=$this->Mobile_app_model->get_form_list($id,$client_id);
    $data['client_data']=$this->Mobile_app_model->get_client_data($client_id);
    $data['client_idsss']=$client_id;
    return $this->load->view('pdf_formlist',$data,true);
}

На странице просмотра только что я отобразил данные, как показано ниже:

<?php
foreach($task_data as $fdata)
{ 
  echo '<p class="questiontext">';echo $fdata['question_text'];echo '</p>';
  echo '<p id="lableanswer">';echo $fdata['answer'];echo '</p>';echo '<br/>';
}
?>

Пожалуйста, помогите мне, как сделать так, чтобы оба были на одной странице.

1 Ответ

1 голос
/ 05 марта 2019

Свойство unbreakable используется для предотвращения разрывов строк, а не разрывов страниц.

То, что вы ищете:

.question 
{
  page-break-inside: avoid;
}

Более подробную ссылку можно найти в этом Внешняя ссылка

Что касается вашего комментария ниже, проблема заключается в том, что вам нужно заключить вопрос и ответ в один элемент, стилизованный в page-break-inside: avoid;

.dontsplit
{
  page-break-inside: avoid;
}

<?php
foreach($task_data as $fdata)
{
  echo '<div class="dontsplit">'; 
  echo '<p class="questiontext">';echo $fdata['question_text'];echo '</p>';
  echo '<p id="lableanswer">';echo $fdata['answer'];echo '</p>';echo '<br/>';
  echo '</div>';
}
?>

Если вы стилизуете класс dontsplit с помощью page-break-inside: avoid;, вы получите весь блок вопросов-ответов, чтобы избежать разрывов страниц.

...