Generate Custom PDF Using Print Module In Drupal

Please follow the below steps to Generate custom pdf:

1: First you need to install and enable print module.
2: Download dompdf from github dompdf on github.
3: Put dompdf library in “/sites/all/modules/print/lib/dompdf”.
4: Add below code at the starting of the custom module file.

use Dompdf\Dompdf;

5: Create your html structure that you want to print in pdf and set your html structure to $result like below example.

$result = '<table>
      <tr>
        <td>
          fitst row first column
        </td>
        <td>
          fitst row second column
        </td>
      </tr>
    </table>';

6: Add condition for print module and not empty result.

if (module_exists('print') && !empty($result))

7: If condition is TRUE then under condition add library path like that 

$file_path_include = drupal_get_path('module', 'print') .'/lib/dompdf/autoload.inc.php';
    require_once $file_path_include;

8: Create object for Dompdf.

$dompdf = new Dompdf();

9: Add your html structure in object’s load_html method.

$dompdf->load_html($result);

10: Add below line to generate output.

$dompdf->render();
    $pdfoutput = $dompdf->output();

11: Set file name and file path that you want to store. Keep the name dynamic if there are multiple pdfs by appending date-time.

$filename = 'demo.pdf';
    $filepath = 'sites/default/files/pdf/demo.pdf';

12: Write file using below code. This will generate pdf at “sites/default/files/pdf/demo.pdf”.

$fp = fopen($filepath, "w+");
    fwrite($fp, $pdfoutput);
    fclose($fp);

Here is the full code:

use Dompdf\Dompdf;

    $result = '<table>
      <tr>
        <td>
          fitst row first column
        </td>
        <td>
          fitst row second column
        </td>
      </tr>
    </table>';

    if (module_exists('print') && !empty($result)) {
      $dompdf = new Dompdf();
      $dompdf->load_html($result);
      $dompdf->render();
      $pdfoutput = $dompdf->output();
      $filename = 'demo.pdf';
      $filepath = 'sites/default/files/pdf/demo.pdf';
      $fp = fopen($filepath, "w+");
      fwrite($fp, $pdfoutput);
      fclose($fp);
    }

Hope this demo helps you.Need more assistance regarding Drupal Web Design Services…!

Floating Icon 1Floating Icon 2