很抱歉这个问题因为它使用Codeigniter困扰了我很长时间。 这就是我在做的事情。 如下所示,我正在显示一个表单,其中有一个按钮“下载”。 此下载按钮应将该图像下载到PDF文件中的详细信息 写在上面(那些在RED框中)。
所以这就是我正在做的过程。
我现在可以像下面这样动态创建一个图像。我可以在图像中写入文本(参见图像中的2015文本)
我的问题是,当我点击“下载”按钮时,它不应该显示 浏览器中的图像,但自动将其下载到服务器上的文件夹中,然后调用函数MPDF将其转换为PDF文件。这可能吗?
代码:
这是用户点击“下载”按钮时调用的方法
public function download_pdf() {
$data['image'] = $this -> get_photo();
$this -> mpdf_convert_pdf();
}
这是动态创建图像的功能。创建后,应将其下载到服务器上的指定文件夹位置。
function get_photo(){
//Create an Image on the Fly
header('Content-Type: image/jpg');
$imgpath = site_url() . 'assets/images/2316.jpg';
$img = @imagecreatefromjpeg($imgpath);
$white = imagecolorallocate($img, 0, 0, 0);
$font_path = 'assets/fonts/arial.ttf';
$text = "2015!";
imagettftext($img, 100, 0, 300, 300, $white, $font_path, $text);
imagejpeg($img);
imagedestroy($img);
//Copy an Image from URL into a server folder
$content = file_get_contents('http://localhost/run_ms/ccertificates/get_photo');
file_put_contents('C:\xampp\htdocs\run_ms\assets\images\thumb\Test.png', $content);
}
这是将图像转换为PDF文件的部分。
public function mpdf_convert_pdf() {
include ('application/third_party/mpdf/mpdf.php');
$mpdf = new mPDF('c', 'Legal', '', '', 5, 5, 5, '5', '5', '0');
//Display output
$html = '<img src="C:\xampp\htdocs\run_ms\assets\images\thumb\Test.png">';
//display PDF file
$mpdf -> WriteHTML($html);
$mpdf -> Output('Converted_pdf', 'D');
exit ;
}
非常感谢专家您可以分享给我的这个查询的任何输入。
答案 0 :(得分:0)
所以重点是,在您点击的每个“下载”按钮中,pdf应该打开到新标签并首先显示数据?
答案 1 :(得分:0)
为了不在浏览器中显示创建的图像,您需要指定将其保存到服务器的路径。由于我之前的问题是如何下载创建的图像而不是在浏览器中显示。
为此,您需要在fm上指定路径 imagejpeg
所以不要这样做:
imagejpeg($img);
应该这样做:
imagejpeg($img,'C:\xampp\htdocs\rn_ms\assets\images\thumb\test.png');
第二个参数是它将保存在服务器中的路径和文件名,如PHP手册(http://php.net/manual/en/function.imagejpeg.php)中所述。因此,如果未指定路径,它将显示在浏览器中,但如果已指定,则它将作为文件下载到指定的服务器路径中。
希望这对其他开发者有所帮助。 :)