【问题标题】:How to show Page no on every page in PDF Laravel如何在 PDF Laravel 的每一页上显示页码
【发布时间】:2021-07-14 05:05:12
【问题描述】:

我正在使用 Laravel DOMPDF 一切正常,除了我想在每个页面上都显示页面编号,目前还没有显示。

我的控制器:

public function generatePDF()
    {
       try
        {
            $id = hexdec($_GET['id']);
            $data = DB::table('table_name')
            ->where('id','=',$id)
            ->get();       
            $pdf = PDF::loadView('pages.myPDF', compact('data'));
            return $pdf->download($caseName.'.pdf');
          }
          catch(\Exception $ex)
          {
              return $ex->getMessage();
          }   
    }

我的查看文件:

<html>
<head>
</head>
<style type="text/css" media="all">
    @page {
    header: page-header;
    footer: page-footer;
}

@page{
    header:page-header;
    margin-top:105t;
}

.w3-Times-New-Roman {
  font-family: "Lobster", serif;
}
</style>

<body>
    <script>
    if ( isset($pdf) ) {
        $font = Font_Metrics::get_font("helvetica", "bold");
        $pdf->page_text(72, 18, "Header: {PAGE_NUM} of {PAGE_COUNT}", $font, 6, array(0,0,0));
    }
   </script>    
        <div style="font-family: Times New Roman; font-size: 12px;word-spacing: 3px; text-align: justify; color:#000;"> <?php
            $array1 = array("<blockquote>\r\n<p>","</p>\r\n</blockquote>");
            $array2 = array("<blockquote>","</blockquote>");
            $array3 = array("<i><u>","</u></i>"); 
            $value = str_replace($array1, $array3, $data[0]->columnName);
            $value = str_replace($array2, $array3, $value);
          ?>
          {!!$value!!}
        </div><br>

</body>

</html>

但这并不是在 PDF 的每一页上都生成 no。请帮助我如何实现这一目标。

【问题讨论】:

  • 检查这是你的答案:stackoverflow.com/questions/41272819/…
  • 是的,但它说未定义的变量 PAGE_NUM。更新我的视图文件。
  • 您是否按照答案中给出的步骤进行操作?
  • 嗨 Kaleem Shoukat,我不会通过任何问题,但是如何在控制器中获取页码值?
  • 从 /config/dompdf.php 启用 DOMPDF_ENABLE_PHP 你做到了吗?

标签: laravel


【解决方案1】:

按照以下步骤来实现它:

  • 通过命令发布供应商文件

    php artisan vendor:publish
    
  • 从 /config/dompdf.php 启用 DOMPDF_ENABLE_PHP

  • 从控制器传递 $pdf 对象

使用 php artisan vendor:publish 创建一个位于 config/dompdf.php 的配置文件,这将允许您定义本地配置以更改一些设置(默认纸张等)。您还可以使用 ConfigProvider 设置某些键。

【讨论】:

  • 好的,谢谢,但在配置文件夹中没有这样的文件 dompdf.php
  • 你是通过composer安装的吗?
  • 收到此错误。调用未定义的方法 niklasravnsborg\LaravelPdf\Pdf::set_options()"
  • 仔细阅读您正在使用的软件包的文档。页码必须有参数。
  • 如果对你有帮助请点赞,谢谢!
【解决方案2】:

试试这个

$pdf = App::make('dompdf.wrapper');
    $pdf->loadView('welcome', ['data'=>$data]);
    $pdf->output();
    $dom_pdf = $pdf->getDomPDF();

    $canvas = $dom_pdf ->get_canvas();
    $canvas->page_text(520, 10, "Page {PAGE_NUM} of {PAGE_COUNT}", null, 10, array(0, 0, 0));

    return $pdf->download('safsa.pdf');;

在视野中

 <footer>
            <div class="pagenum-container" style="float: right">Page
                <span class="pagenum"></span>
            </div>
        </footer>

风格

footer .pagenum:before {
            content: counter(page);
        }
footer { position: fixed; bottom: -60px; left: 0px; right: 0px; height: 50px; }

【讨论】:

    猜你喜欢
    • 2021-07-30
    • 2019-10-16
    • 2021-06-25
    • 1970-01-01
    • 1970-01-01
    • 2019-08-13
    • 2012-07-26
    • 2017-05-07
    • 2015-04-24
    相关资源
    最近更新 更多