我已经把我的问题简化为一个简化的代码,使它更容易理解,所以我们开始吧。
确切的事情我想要的是下载一个JPG图像按下一个按钮,但事情是,图像是动态创建的代码,如何?我使用dompdf创建一个PDF文件从零开始HTML代码,然后我必须将PDF转换为JPG,但我不知道如何做到这一点,这里有一些可视化的解释和代码:
简单的HTML按钮,用于调用生成文件的文件
单击时下载的PDF文件
下面是我的代码:
按钮的代码(超简单)
button.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Button download</title>
</head>
<body>
<?php $name = "Mike"; ?>
<button><a href="generate.php?name=<?php echo $name; ?>">BUTTON</a></button>
</body>
</html>
和生成文件的代码:
generate.php
<?php
$name = $_GET['name'];
?>
<?php
ob_start();
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Generate file</title>
</head>
<body>
<?php echo $name; ?>
</body>
</html>
<?php
$html = ob_get_clean();
require_once 'dompdf/autoload.inc.php';
use Dompdf\Dompdf;
$dompdf = new Dompdf();
$options = $dompdf->getOptions();
$options->set(array('isRemoteEnabled' => true));
$dompdf->setOptions($options);
$dompdf->loadHtml($html);
$dompdf->render();
$dompdf->stream("file.pdf", array("Attachment" => true));
?>
(重要:当我点击按钮时,它会自动下载PDF文件,我希望它是相同的,但该PDF转换为JPG)
所以我需要的是,当我点击按钮而不是下载PDF时,它必须下载JPG。
1条答案
按热度按时间aemubtdh1#
要实现这一点,您可以使用Imagick -一个本地PHP扩展,可以快速简单地处理图像。
这样你就可以将PDF文件逐页导出为JPG格式。你也可以对上面的代码片段进行微调,例如添加SetResolution()方法。更多相关信息可以在这里找到:https://www.php.net/manual/en/book.imagick.php