- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用基于 PHP 的通用 CMS,我想创建一个脚本来读取 pdf 创建的缩略图并将其缓存。有很多不同的答案,我确实在使用不同版本的 imagick 时遇到了一些问题,但这是对我有用的脚本。
有些人可能会发现它很有用,如果它被优化了,也许有人可以建议我?
<?php
$loc = *the file location*;
$pdf = *the file name*;
$format = "jpg";
$dest = "$loc$pdf.$format";
if (file_exists($dest))
{
$im = new imagick();
$im->readImage($dest);
header( "Content-Type: image/jpg" );
echo $im;
exit;
}
else
{
$im = new imagick($loc.$pdf.'[0]');
$im->setImageFormat($format);
$width = $im->getImageheight();
$im->cropImage($width, $width, 0, 0);
$im->scaleImage(110, 167, true);
$im->writeImage($dest);
header( "Content-Type: image/jpg" );
echo $im;
exit;
}
?>
最佳答案
利用 PHP 和 ImageMagick 创建 PDF 缩略图
http://stormwarestudios.com/articles/leverage-php-imagemagick-create-pdf-thumbnails/
在本文中,我们讨论了使用 PHP 和 ImageMagick 从给定的 PDF 生成缩略图,将它们存储在临时(或“缓存”)目录中,并将它们提供给网络。
我们最近的一位客户要求显示通过我们为他们部署的 Joomla CMS 发布的 PDF 缩略图。
要求相当简单,但执行起来有点复杂。在安装 ImageMagick、ImageMagick PHP 绑定(bind)(顺便说一句,它不起作用,并且设计了一个解决方法)并侦查了一些代码之后,确定了以下解决方案:
<?php
function thumbPdf($pdf, $width)
{
try
{
$tmp = 'tmp';
$format = "png";
$source = $pdf.'[0]';
$dest = "$tmp/$pdf.$format";
if (!file_exists($dest))
{
$exec = "convert -scale $width $source $dest";
exec($exec);
}
$im = new Imagick($dest);
header("Content-Type:".$im->getFormat());
echo $im;
}
catch(Exception $e)
{
echo $e->getMessage();
}
}
$file = $_GET['pdf'];
$size = $_GET['size'];
if ($file && $size)
{
thumbPdf($file, $size);
}
?>
以上代码假定您已经为临时目录提供了适当的权限(通常是 chmod 755 或 chmod 777,取决于您的勇气水平),并且您已经将以上代码片段保存在一个名为 thumbPdf.php 的文件中,并将其放置在您的网络服务器上可见的位置。
从 GET 获取参数后,代码检查目标临时目录,如果不存在所需的图像,则使用 ImageMagick 的转换程序生成 PDF 缩略图,缩小到适当的比例,并将图像保存在临时目录。最后,它将缩略图重新加载到 ImageMagick PHP 对象中,并将内容输出到浏览器。
调用上面的代码相当容易;只需从图像标记内部调用 PHP 脚本,如下所示:
<img src="/path/to/thumbPdf.php?pdf=your.pdf&size=200" />
上面的代码将从“your.pdf”的第一页生成一个缩略图,大小为 200 像素宽和适当比例的高度。
祝您好运,网站管理员工作愉快!
关于php - 在 PHP 中创建 PDF 缩略图并缓存它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12783477/
我有一个具有可变数量子元素的固定大小的 div。我不知道 children 的大小。目标是缩小它们以适合父级。 例子: .parent { width: 100px; height: 100p
我是一名优秀的程序员,十分优秀!