这方面有很多话题,没有一个能解决我的问题。我想做的很简单——生成一个条形图,然后将此图嵌入到我将使用名为TCPDF的库生成的 pdf 文件中。
我使用 TCPDF 生成 HTML 内容没有问题,但是在生成图形并将其包含在 pdf 文件中时,我遇到了各种问题。
生成图表
我正在使用一个名为svggraph的库创建图表。生成图非常简单,唯一的问题是通过包含主类文件来发送标头。发送标头时,TCPDF 无法生成 PDF 文档。
我现在的设置:
generatereport.php - TCPDF 在此页面上生成 pdf 文档 graph.php - SVGGraph 在此页面上生成条形图
我试过了:
file_get_contents('graph.php')
from - 当我使用TCPDF 提供generatereport.php
的内置功能时,pdf 报告中没有输出任何内容writeHTML
- require_once('graph.php') - 标头已发送错误
echo file_get_contents('graph.php')
- 标头已发送,但这是意料之中的。好消息是图表显示正确。
目标(我希望发生的事情)
TCPDF 有一个内置ImageSVG
函数用于此确切目的。第一个参数可以取一个 SVG 数据的 XML 字符串;这里的问题是我不知道如何从graph.php
页面返回 XML 数据(我已经阅读了我能找到的每个文档页面)。
有没有人有使用这两个库中的任何一个的经验?
谢谢!
编辑:一些代码
图.php:
<?php
require_once 'svggraph/SVGGraph.php';
$graph = new SVGGraph(500, 400);
$graph->Values(1, 4, 8, 9, 16, 25, 27);
$graph->Render('LineGraph', true, true)
?>
生成报告.php
$html = file_get_contents('http://localhost:8080/vu/graph.php');
if(!empty($file)){
//$pdf->Write(0, $html, '', 0, 'L', true, 0, false, false, 0);
//$pdf->writeHTML($html, true, false, true, false, '');
$pdf->ImageSVG('@' . $html, $x=15, $y=30, $w='', $h='', $link='http://www.tcpdf.org', $align='', $palign='', $border=1, $fitonpage=false);
}
该@
符号告诉函数正在向它发送 XML 数据,而不是 SVG 文件。