【问题标题】:How can reduce height and download pdf using FPDF?如何降低高度并使用 FPDF 下载 pdf?
【发布时间】:2017-05-29 00:05:16
【问题描述】:

我有一个在 laravel 中使用 Fpdf 生成 pdf 的功能。 我的问题是:

  1. 毕竟 Cell 我还有一些额外的空间。我需要删除它。请在下面找到图片。
  2. 如何将此 pdf 文件下载到我的系统中。目前它只是显示在浏览器中。代码示例如下。

代码

控制器:Controller.php

public function index()
    {
        $orders = Order::select('firstname', 'lastname', 'street', 'postal', 'country')->get();
        foreach ($orders as $order){
            Fpdf::SetMargins(5, 5, 5);
            Fpdf::AddPage('L', array(60,90), 'A4');
            Fpdf::SetAutoPageBreak(TRUE, 0);
            Fpdf::SetFont('helvetica', '', 7); //IF bold letter SetFont('Arial','B',14)
            Fpdf::SetTextColor(0, 0, 0);
            Fpdf::Cell(10,5,iconv('UTF-8', 'windows-1252', 'Falls unzustellbar, zurück an Absender'),0,"1","L");
            Fpdf::SetFont('','U');
            Fpdf::Cell(10,5,iconv('UTF-8', 'windows-1252', 'schrillALARM.jetzt c/o 365group • Grasgasse 2 • 93047 Regensburg'),0,"1","L");
            Fpdf::SetFont('helvetica', '', 11);
            Fpdf::Cell(10,5,$order->firstname,0,1,"L");
            Fpdf::Cell(10,5,$order->lastname,0,1,"L");
            Fpdf::Cell(10,5,$order->street,0,1,"L");
            Fpdf::Cell(10,5,$order->postal,0,1,"L");
            Fpdf::Cell(10,5,$order->country,0,1,"L");
        }
        Fpdf::Output();
        exit;
    }

路由:Route::get('/test', 'Controller@index');

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    为了保存,只需在输出调用字符串中指定输出路径和文件名

    Fpdf::Output([string dest [, string name [, boolean isUTF8]]])  
    

    但是,对于您的空白区域,当您构建 PDF 文档时,您可以使用以下之一的默认大小:A3、A4、A5、Letter、Legal,其中 A4 为默认值。但是,您也可以声明自定义尺寸。这很可能是您正在寻找的内容,因为您需要使用尺寸来获得所需的空白空间量。 FPDF首先拿出画布然后填充它,所以你的空白来自一个太大的画布。这可以在构造函数中完成,也可以像您所做的那样在 AddPage 中完成。

    VIA 构造函数:

    //(L)andscape or (P)ortrait, unit type (mm millimeters), array size in mm
    $pdf = new FPDF('L','mm',array(100,150));
    

    VIA AddPage(很可能是您要查找的内容): 目前你有:

    Fpdf::AddPage('L', array(60,90), 'A4');
    

    但是,参数应该是横向/纵向、预定义或自定义大小的数组,然后是旋转。所以试试这个:

    Fpdf::AddPage('L', array(60,90));
    

    现在您需要处理这些数字,很可能是 90,然后将其缩短以摆脱空白。

    【讨论】:

      【解决方案2】:

      没有使用 FDPF 的经验,但你可以通过这种方式下载:

      Route::get(
          'download/pdf/{pdf}',
          function ($pdf) {
              $file = // Get file
              return response()->download($file);
          }
      );
      

      或者只是从你的控制器使用

      return response()->download($pdf);
      

      【讨论】:

        猜你喜欢
        • 2019-06-22
        • 2021-12-12
        • 2023-01-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多