启用字体子设置时,laravel-dompdf得到错误“未定义索引:glyf”

如何解决启用字体子设置时,laravel-dompdf得到错误“未定义索引:glyf”

我正在尝试使用pdf库生成laravel-dompdf文件。

这是我使用的字体样式:

        @font-face {
            font-family: 'Hiragino Sans';
            src: url('fonts/Hiragino Sans GB W3.ttf') format('truetype');
            font-weight: normal;
        }
        @font-face {
            font-family: 'Hiragino Sans';
            src: url('fonts/Hiragino Sans GB W6.ttf') format('truetype');
            font-weight: bold;
        }

这是控制器中的代码:

return PDF::loadView('pdf.presaleorder')->save('test.pdf');

一切正常,但是生成的pdf文件太大,大于20MB。我发现可以通过将enable_font_subsetting中的config/dompdf.php字段更改为true来减小它的大小。

但是当我生成pdf文件时,它引发了错误:

 ErrorException  : Undefined index: glyf

  at G:\Project\Laravel\EventPayment\vendor\phenx\php-font-lib\src\FontLib\TrueType\File.php:329
    325|    *
    326|    * @return Table
    327|    */
    328|   public function getTableObject($name) {
  > 329|     return $this->data[$name];
    330|   }
    331| 
    332|   public function setTableObject($name,Table $data) {

  1   Illuminate\Foundation\Bootstrap\HandleExceptions::handleError("Undefined index: glyf","G::\Project\Laravel\EventPayment\vendor\phenx\php-font-lib\src\FontLib\TrueType\File.php",["glyf]"])
      G:\Project\Laravel\EventPayment\vendor\phenx\php-font-lib\src\FontLib\TrueType\File.php:32\Project\29                                                                                                
                                                                                                9        
  2   FontLib\TrueType\File::getTableObject("glyf")
      G:\Project\Laravel\EventPayment\vendor\phenx\php-font-lib\src\FontLib\TrueType\File.php:2001                                                                                              1        

  Please use the argument -v to see more details.

当我添加参数-v时,显示了更多的跟踪错误

 2   FontLib\TrueType\File::getTableObject("glyf")
      G:\Project\Laravel\EventPayment\vendor\phenx\php-font-lib\src\FontLib\TrueType\File.php:201

  3   FontLib\TrueType\File::setSubset()
      G:\Project\Laravel\EventPayment\vendor\dompdf\dompdf\lib\Cpdf.php:1171

  4   Dompdf\Cpdf::processFont()
      G:\Project\Laravel\EventPayment\vendor\dompdf\dompdf\lib\Cpdf.php:931

  5   Dompdf\Cpdf::o_font("add")
      G:\Project\Laravel\EventPayment\vendor\dompdf\dompdf\lib\Cpdf.php:3196

  6   Dompdf\Cpdf::output()
      G:\Project\Laravel\EventPayment\vendor\dompdf\dompdf\src\Adapter\CPDF.php:1213

  7   Dompdf\Adapter\CPDF::output([])
      G:\Project\Laravel\EventPayment\vendor\dompdf\dompdf\src\Dompdf.php:932

  8   Dompdf\Dompdf::output()
      G:\Project\Laravel\EventPayment\vendor\barryvdh\laravel-dompdf\src\PDF.php:157

  9   Barryvdh\DomPDF\PDF::output()
      G:\Project\Laravel\EventPayment\vendor\barryvdh\laravel-dompdf\src\PDF.php:167

  10  Barryvdh\DomPDF\PDF::save("test.pdf")
      G:\Project\Laravel\EventPayment\app\Services\OrderService.php:2170

  11  App\Services\OrderService::createOrderPdf()
      G:\Project\Laravel\EventPayment\app\Console\Commands\CreateOrderPdf.php:41

  12  App\Console\Commands\CreateOrderPdf::handle(Object(App\Services\OrderService))
      G:\Project\Laravel\EventPayment\vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php:32

  13  call_user_func_array()
      G:\Project\Laravel\EventPayment\vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php:32

  14  Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
      G:\Project\Laravel\EventPayment\vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php:90

  15  Illuminate\Container\BoundMethod::callBoundMethod(Object(Illuminate\Foundation\Application),Object(Closure))
      G:\Project\Laravel\EventPayment\vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php:34

  16  Illuminate\Container\BoundMethod::call(Object(Illuminate\Foundation\Application),[])    
      G:\Project\Laravel\EventPayment\vendor\laravel\framework\src\Illuminate\Container\Container.php:576

  17  Illuminate\Container\Container::call()
      G:\Project\Laravel\EventPayment\vendor\laravel\framework\src\Illuminate\Console\Command.php:183

  18  Illuminate\Console\Command::execute(Object(Symfony\Component\Console\Input\ArgvInput),Object(Illuminate\Console\OutputStyle))
      G:\Project\Laravel\EventPayment\vendor\symfony\console\Command\Command.php:255

  19  Symfony\Component\Console\Command\Command::run(Object(Symfony\Component\Console\Input\ArgvInput),Object(Illuminate\Console\OutputStyle))
      G:\Project\Laravel\EventPayment\vendor\laravel\framework\src\Illuminate\Console\Command.php:170

  20  Illuminate\Console\Command::run(Object(Symfony\Component\Console\Input\ArgvInput),Object(Symfony\Component\Console\Output\ConsoleOutput))
      G:\Project\Laravel\EventPayment\vendor\symfony\console\Application.php:1000

  21  Symfony\Component\Console\Application::doRunCommand(Object(App\Console\Commands\CreateOrderPdf),Object(Symfony\Component\Console\Input\ArgvInput),Object(Symfony\Component\Console\Output\ConsoleOutput))
      G:\Project\Laravel\EventPayment\vendor\symfony\console\Application.php:271

  22  Symfony\Component\Console\Application::doRun(Object(Symfony\Component\Console\Input\ArgvInput),Object(Symfony\Component\Console\Output\ConsoleOutput))
      G:\Project\Laravel\EventPayment\vendor\symfony\console\Application.php:147

  23  Symfony\Component\Console\Application::run(Object(Symfony\Component\Console\Input\ArgvInput),Object(Symfony\Component\Console\Output\ConsoleOutput))
      G:\Project\Laravel\EventPayment\vendor\laravel\framework\src\Illuminate\Console\Application.php:90

  24  Illuminate\Console\Application::run(Object(Symfony\Component\Console\Input\ArgvInput),Object(Symfony\Component\Console\Output\ConsoleOutput))
      G:\Project\Laravel\EventPayment\vendor\laravel\framework\src\Illuminate\Foundation\Console\Kernel.php:133

  25  Illuminate\Foundation\Console\Kernel::handle(Object(Symfony\Component\Console\Input\ArgvInput),Object(Symfony\Component\Console\Output\ConsoleOutput))
      G:\Project\Laravel\EventPayment\artisan:37

有人解决吗?

我正在使用

laravel: 5.8
barryvdh/laravel-dompdf: 0.8.7
dompdf/dompdf: 0.8
windows 10

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 <select id="xxx"> SELECT di.id, di.name, di.work_type, di.updated... <where> <if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 <property name="dynamic.classpath" value="tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams['font.sans-serif'] = ['SimHei'] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -> systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping("/hires") public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate<String
使用vite构建项目报错 C:\Users\ychen\work>npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-