为了账号安全,请及时绑定邮箱和手机立即绑定

使用 PHP 和 TCPDF 降低 PDF 文件中图像的分辨率

使用 PHP 和 TCPDF 降低 PDF 文件中图像的分辨率

PHP
至尊宝的传说 2022-07-22 16:35:58
在我们公司,我们需要将扫描的 PDF 文件存储在基于 PHP 的系统上。通常,大多数扫描的 PDF 文件都过大,因为其中的图像以非常高的质量存储。使用一些在线转换工具,我可以将扫描的 PDF 文件减少多达 80%,而不会失去可读性。(意味着文件是可压缩的)我使用 TCPDF 来处理 PDF 文件,但我找不到一种直接的方法来减小图像大小而不扭曲 PDF 布局。是否可以使用 TCPDF 来实现这一点(或欢迎任何其他库)请注意:我不创建 PDF 文件。它是由扫描仪完成的。我需要压缩已经创建的带有图像的 PDF 文件。
查看完整描述

2 回答

?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

您可以在创建 pdf 之前压缩图像,如下所示:


compressedImage($source, $path, $quality); //before create pdf


// Compress image function

function compressedImage($source, $path, $quality) {


            $info = getimagesize($source);


            if ($info['mime'] == 'image/jpeg'){

                $image = imagecreatefromjpeg($source);


            }elseif ($info['mime'] == 'image/gif'){

                $image = imagecreatefromgif($source);


            }elseif ($info['mime'] == 'image/png'){ 

                $image = imagecreatefrompng($source);

            }


            imagejpeg($image, $path, $quality);

            return $path;


    }

或者使用来自 tcpdf 的类,比如


public  

setJPEGQuality( $quality )

//------------------//

SetCompression( $compress = true )

Activates or deactivates page compression. When activated, the internal representation of each page is compressed, which leads to a compression ratio of about 2 for the resulting document. Compression is on by default. Note: the Zlib extension is required for this feature. If not present, compression will be turned off.


查看完整回答
反对 回复 2022-07-22
?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

您可以实现两种方式:

  1. 您可以先通过这种类型的库减小图像大小,然后生成 pdf 文件。或者,

  2. 您可以在通过 tcpdf 生成 pdf 时设置图像宽度和高度。如下所示:

Image( $file, $x = '', $y = '', $w = 0, $h = 0, $type = '', $link = '', $align = '', $resize = false, $dpi = 300, $palign = '', $ismask = false, $imgmask = false, $border = 0, $fitbox = false, $hidden = false, $fitonpage = false, $alt = false, $altimgs = array() )

请参阅此处的文档


查看完整回答
反对 回复 2022-07-22
  • 2 回答
  • 0 关注
  • 137 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信