【问题标题】:fopen(C:\xampp\htdocs\prolearning\storage\fonts/fopen(C:\xampp\htdocs\prolearning\storage\fonts/
【发布时间】:2018-11-04 19:25:15
【问题描述】:

我正在尝试在 laravel 中生成 pdf 文件,但出现错误 ErrorException (E_WARNING) fopen(C:\xampp\htdocs\prolearning\storage\fonts/\2af8d92bcac2cf6390f0434ec5aa8fe6.ufm):无法打开流:没有这样的文件或目录。 请帮忙。我的控制器编写了这两行代码,

$pdf = PDF::loadView('pdf/personalpdf', compact('user','result'));
                return $pdf->stream('invoice.pdf/personalpdf');

其他代码可以工作,我可以显示数据,但无法生成 pdf 文件。

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use DB;
use PDF;
use Auth;

class PdfController extends Controller
{
public function personalpdf()
    {
        if(\Auth::check()){
            $user = \Auth::user();
            $user_id = $user->id;
            $result = DB::table('education')->where('education.degree' ,'=','PHD')->where('user_id' ,'=', $user_id)->get();
           // return view('pdf/personalpdf',compact('user', 'result'));
            $pdf = PDF::loadView('pdf/personalpdf', compact('user','result'));
            return $pdf->stream('invoice.pdf/personalpdf');

        }else {
            return view('pdf/personalpdf');
        }
    }
}

我安装了 dompdf,所有其他代码都可以,我是从 totural 完成的。但现在得到给定的错误 fopen(C:\xampp\htdocs\prolearning\storage\fonts/\2af8d92bcac2cf6390f0434ec5aa8fe6.ufm): failed to open stream: No such file or directory 路线代码在这里。

Route::get('pdf/personalpdf','PdfController@personalpdf');

请帮忙,提前谢谢。

【问题讨论】:

  • 你应该检查pdf路径。
  • pdf路径没问题,
  • 你用的是什么库?
  • 它似乎正在从您的 storage 目录中请求一个 font,这是不寻常的。该字体是否存在于该目录中?
  • 好像需要在存储文件夹github.com/barryvdh/laravel-dompdf/issues/269创建一个fonts文件夹

标签: php mysql laravel


【解决方案1】:

是的,我今天遇到了同样的挑战,并在存储文件夹中创建了一个名为“fonts”的空文件夹,对我有用。

【讨论】:

  • 是的。在该路径创建一个空文件夹..对我有用。谢谢。!!
【解决方案2】:

您可以使用默认字体,如

$pdf = PDF::loadView('pdf/personalpdf', compact('user','result'))->setOptions(['defaultFont' => 'sans-serif']);

【讨论】:

    【解决方案3】:

    fopen(C:\xampp\htdocs\prolearning\storage\fonts/\2af8d92bcac2cf6390f0434ec5aa8fe6.ufm):无法打开流:没有这样的文件或目录。

    或目录。

    步骤

    1. 在存储中创建“fonts”文件夹
    2. 创建文件“2af8d92bcac2cf6390f0434ec5aa8fe6.ufm”或其他在“fonts”文件夹中显示错误的“文件名”
    3. 授予“字体”文件夹权限

    【讨论】:

      【解决方案4】:

      您可以使用各种方法来解决此问题。

      使用默认字体

      $pdf = PDF::loadView('pdf/personalpdf', compact('user','result'))->setOptions(['defaultFont' => 'sans-serif']);
      

      创建文件夹

      mkdir /home/mykarnik/public_html/storage/fonts/
      

      如果上述方法不起作用,请制作相关文件

      mkdir /home/mykarnik/public_html/storage/fonts/{font-file-name.ufm}
      

      如果您使用的是 Linux,请授予权限(与问题无关,但适用于查看此问题并使用 Linux 开发的人)

      sudo chown -R www-data:www-data /home/mykarnik/public_html/storage/fonts/
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-11-03
        • 2017-07-21
        • 2013-12-27
        • 2020-04-23
        • 2020-10-24
        • 2020-09-17
        • 2012-10-10
        相关资源
        最近更新 更多