Moodle 加载白页 TCPDF

Moodle loads white page TCPDF

我想在 Moodle 中生成自定义 PDF(然后使用每门课程的数据进一步开发它)。我阅读了 TCPDF 的示例,但系统每次在尝试测试它们时都会抛出 error

printpdf.php 在我的 local folder 我有:

require_once ('/tcpdf.php');

$pdf = new TCPDF(P, 'mm', 'A4', true, 'UTF-8', false);

$pdf->SetTitle('Example');
$pdf->SetProtection(array('modify'));
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);
$pdf->SetAutoPageBreak(false, 0);
$pdf->AddPage();

尝试调用页面 mymoodle/local/custom/classes/printpdf.php 时,它显示:

Warning: require_once(/tcpdf.php): failed to open stream: No such file or directory in C:\xampp\htdocs\mymoodle\local\custom\classes\local\printpdf.php on line 24

Fatal error: require_once(): Failed opening required '/tcpdf.php' (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\mymoodle\local\custom\classes\local\printpdf.php on line 24

先尝试加载配置文件

require_once('../../../../config.php');

然后加载相对于lib目录的库

require_once($CFG->libdir . '/tcpdf.php');

您不应直接在 Moodle 中使用 TCPDF 库 - 对此有一个包装器可以使其正常工作。

require_once(dirname(__FILE__).'/../../../../config.php');
require_once($CFG->libdir.'/pdflib.php');

$pdf = new pdf();

请注意,您可能需要调整第一行中“/../”的数量,具体取决于您在顶级目录下的嵌套深度。

另请注意,您似乎已将代码放在 'classes' 目录中,而没有定义 PHP class;最终用户直接访问的脚本应该放在插件的 classes 目录之外。