- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
关于此的主题有很多,但没有一个能解决我的问题。我想做的很简单 - 生成一个条形图,然后将该图嵌入到一个 pdf 文件中,我将使用名为 TCPDF 的库生成该文件。 .
我使用 TCPDF 生成 HTML 内容没有任何问题,但在生成图表并将其包含在 pdf 文件中时,我遇到了各种各样的问题。
生成图表
我正在使用名为 svggraph 的库创建图表。 。生成图表非常简单,唯一的问题是通过包含主类文件发送 header 。发送 header 后,TCPDF 无法生成 PDF 文档。
我现在的设置:
generatereport.php - TCPDF 在此页面上生成 pdf 文档graph.php - SVGGraph 在此页面上生成条形图
我已经尝试过:
file_get_contents('graph.php')
from generatereport.php
- 当我使用内置的 writeHTML
时,pdf 报告中没有输出任何内容code> TCPDF 提供的函数echo file_get_contents('graph.php')
- header 已发送,但这是预期的。好消息是图表已正确显示。目标(我希望发生的事情)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 文件。
最佳答案
使用fetch
- 见下文
<?php
require_once 'svggraph/SVGGraph.php';
$graph = new SVGGraph(500, 400);
$graph->Values(1, 4, 8, 9, 16, 25, 27);
$output = $graph->fetch('LineGraph');
?>
然后将其提供给 TCPDF(因为不带选项的 fetch
会生成 XML 声明和文档类型)这应该生成以下格式的 $output
:
<svg style="overflow: hidden; position: relative;" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1226" version="1.1" height="826"><image transform="matrix(1.0364,-0.3305,0.3305,1.0364,-41.846,108.0143)" preserveAspectRatio="none" x="10" y="10" width="205" height="154" xlink:href="wallpaper.jpg" opacity="1" stroke-width="1"></image><rect transform="matrix(1.0364,-0.3305,0.3305,1.0364,-41.846,108.0143)" x="165" y="114" width="50" height="50" r="0" rx="0" ry="0" fill="#C0C0C0" stroke="#000" opacity="0" stroke-width="1"></rect><image transform="matrix(1.1575,0.2385,-0.2385,1.1575,-442.1395,-145.4163)" preserveAspectRatio="none" x="500" y="10" width="205" height="154" xlink:href="wallpaper.jpg" opacity="1" stroke-width="1"></image><rect transform="matrix(1.1575,0.2385,-0.2385,1.1575,-442.1395,-145.4163)" x="655" y="114" width="50" height="50" r="0" rx="0" ry="0" fill="#C0C0C0" stroke="#000" opacity="0" stroke-width="1"></rect></svg>
这样喂
$pdf->ImageSVG('@' . $output, $x=15, $y=30, $w='', $h='', $link='http://www.tcpdf.org', $align='', $palign='', $border=1, $fitonpage=false);
与 $VSOverFlow 的上述评论一致。
当然,您也可以将输出保存在文件中,然后像这样提供文件的路径
$pdf->ImageSVG($file='images/file.svg', $x=15, $y=30, $w='', $h='', $link='', $align='', $palign='', $border=0, $fitonpage=false);
关于tcpdf - 使用 TCPDF 在 PDF 文件中生成图表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18304565/
我相信 TCPDF 中没有本地方法来创建阴影。我有什么想法可以用其他方法创造这样的效果吗?我首先考虑在每个边缘(对于矩形)旁边创建一个小渐变,但发现没有办法创建具有不同 Alpha channel 的
我已经通读了之前关于该主题的主题,但都是陈旧的、未回答的和/或关于创建自定义字体的更具体的内容。 在 TCPDF 中: $pdf->SetFont('times', '', 10); 我创建的 pdf
在 TCPDF 中有 GetCellHeight()用于测量细胞的高度。 如何测量 TCPDF 中字符串(或字符串块)的长度或宽度? 最佳答案 获取字符串长度的方法是 GetStringWidth()
我正在设置 tcpdf 来为客户即时生成发票,但是当我添加图像时,边框从我的表格中消失了。这是代码: /* if ($status == "Paid") { $pdf->Image("/wp-
我正在使用 TCPDF 生成 pdf。我可以使用 SetMargins($left, $top, $right = -1, $keepmargins = false) 为左、上和右设置边距,但不能为底
我正在使用 TCPDF 生成 pdf。我可以使用 SetMargins($left, $top, $right = -1, $keepmargins = false) 为左、上和右设置边距,但不能为底
从版本 5.9 开始,我还没有找到控制 TCPDF 的 MultiCell 中行距的方法。我也没有找到任何有助于通过使用 Cell 来模拟相同行为的方法,例如返回不适合 Cell 宽度的文本部分的方法
我正在努力了解 header 函数在 tcpdf 中的工作方式。 是否可以将 $pdf->writeHTML 用于标题? http://www.tcpdf.org/examples/example_0
为了创建自定义页眉和页脚,我使用了 TCPDF 的 header()和 footer()函数,但是当我尝试使用函数 $this->image() 在标题中包含图像时, 无法显示图像。文档中的其他图像工
我正在使用 tcpdf 用 PHP 生成 PDF 文件,并且以 .svg 文件的形式嵌入 SVG 图像没有问题,其中包含表示图像的 XML 标记。但是,我希望能够使用该 XML,例如作为 PHP 字符
关于此的主题有很多,但没有一个能解决我的问题。我想做的很简单 - 生成一个条形图,然后将该图嵌入到一个 pdf 文件中,我将使用名为 TCPDF 的库生成该文件。 . 我使用 TCPDF 生成 HTM
第一张图片显示了使用 TCPDF 时的标准 header 布局: 我想做的是右对齐文本,如下所示,但我无法弄清楚如何做到这一点: 请大家给点建议!谢谢。 最佳答案 实现此目的的一种方法是使用 writ
我花了一个多小时研究这个问题,但似乎找不到答案。 我在 TCPDF 中使用 writeHTMLCell 。使用 writeHTMLCell 时,我需要一些文本以适合特定区域。 我见过一个例子here
我正在使用 TCPDF 从 HTML 代码生成 PDF,但无法正确呈现某些 HTML 特殊字符。这是我的准系统代码: require_once('../libraries/tcpdf_6_0_020/
我有以下 svg 文件: http://jsfiddle.net/wptn28c5/ 呈现: 但是,通过使用 tcpdf ($pdf->imageSVG()) 我得到一个呈现的 pdf 文件: 最佳
如何导入现有 pdf文件到新创建的 pdf使用 TCPDF? 所以假设我目前正在做发票部分。一旦用户点击打印发票,我将开始收集数据,然后创建一个 PDF使用 TCPDF .但是,如果可用,我需要“附加
我有以下 tcpdf 代码: SetCreator(PDF_CREATOR); $pdf->SetAuthor('Stimart'); $pdf->SetTitle('test
有谁知道如何使用 PHP TCPDF 导出 PDF/X-1a:2001 PDF 文件图书馆。我研究了很多,但找不到解决方案。有人请指教。解决方案需要在 PHP 中。 最佳答案 我不是 TCPDF 方面
我有一个基于数据生成 PDF 文件的网站。 我在一个免费的虚拟主机上试过了,没问题,但是当我把它上传到我的服务器时,我得到了这个错误: TCPDF 错误:无法打开图像文件:/var/www/html/
我正在使用 TCPDF 来签署 PDF,但是在运行 example 52 时我收到此错误: Warning: openssl_pkcs7_sign() [function.openssl-pkcs7-
我是一名优秀的程序员,十分优秀!