У меня есть приложение, которое было сделано кем-то другим, и теперь меня просят изучить один вопрос.
Когда создается отчет в формате pdf, он выдает ошибку. Это приложение использует FPDF для создания PDF-файла
FPDF error: Could not include font metric file
Раньше он выдавал следующую ошибку
Warning: FPDF::include(helveticab.php) [function.FPDF-include]: failed to open stream: No such file or directory Warning: FPDF::include() [function.include]: Failed opening 'helveticab.php' for inclusion FPDF error: Could not include font metric file
Это было разрешено, включая папку шрифтов с helveticab.php и другими php-файлами, связанными с другими шрифтами
Но ошибка ошибки FPDF: не может содержать метрический файл шрифта. При поиске в сети возможные причины были
каталог шрифтов отсутствует
Не имеет прав доступа для файлов шрифтов.
Я не уверен, какое разрешение необходимо предоставить папке шрифта или файлам в папке. Любая помощь в этом отношении будет очень полезной.
Я была такая же проблема. Проблема заключалась в неправильном пути к папке со всеми шрифтами. Итак, я добавил обновленную следующую строку в файле PHP, чтобы отобразить правильный путь к папке со всеми шрифтами.
определить ( 'FPDF_FONTPATH', 'класс / fpdf_font /');
Итак, дважды проверьте путь, который определяет эта строка, и он должен работать нормально.
Я верю, что вы уже извлекли файл zip-файла fpdf на свой локальный хост или систему
Как только zip-файл будет извлечен, вы увидите структуру каталогов, как показано ниже.
и вставьте приведенный ниже код в файл test.php
<?php define('FPDF_FONTPATH','font/'); //above line is import to define, otherwise it gives an error : Could not include font metric file require('fpdf.php'); $pdf = new FPDF(); $pdf->AddPage(); $pdf->SetFont('Arial','B',16); $pdf->Cell(40,10,'Hello World!'); $pdf->Output(); ?>
Теперь наслаждайтесь
Моя проблема заключалась в том, что из-за загрузки библиотеки fpdf со страницы некоторые из скриптов, которые они там используют, используют шрифт Arial, но этот шрифт специально не был включен в каталог шрифтов. Я просто добавил define('FPDF_FONTPATH','fpdf/font/');
с относительным путем к директории fpdf и сменил шрифт на Courier и готов!
В моем случае я использую Linux (Debian), у меня была такая же проблема, и каталоги были правильными. Я решил добавить 777 разрешений в каталог / font. И теперь это работает как шарм =)))
если вы используете внешний класс, который расширяет FPDF
как имя файла Custom_pdf.php
в этом файле вы написали свои коды котиков
require_once('fpdf.php') class Custom_PDF extends FPDF{ ... }
то вы включили в свое кодирование, как
require_once('custom_pdf.php'); $pdf = new Custom_pdf(); $pdf->Write(); .... $pdf->output();
это проблема …
Поэтому вы прямо размещаете код в нужном файле
require_once('fpdf.php') class Custom_PDF extends FPDF{ .... } $pdf = new Custom_pdf(); $pdf->Write(); ... $pdf->output();
он будет отлично работать …
благодаря
извините за ошибки на английском языке …