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

在我们公司,我们需要将扫描的 PDF 文件存储在基于 PHP 的系统上。通常,大多数扫描的 PDF 文件都过大,因为其中的图像以非常高的质量存储。

使用一些在线转换工具,我可以将扫描的 PDF 文件减少多达 80%,而不会失去可读性。(意味着文件是可压缩的)

我使用 TCPDF 来处理 PDF 文件,但我找不到一种直接的方法来减小图像大小而不扭曲 PDF 布局。

是否可以使用 TCPDF 来实现这一点(或欢迎任何其他库)

请注意:我不创建 PDF 文件。它是由扫描仪完成的。我需要压缩已经创建的带有图像的 PDF 文件。


至尊宝的传说
浏览 180回答 2
2回答

陪伴而非守候

您可以在创建 pdf 之前压缩图像,如下所示:compressedImage($source, $path, $quality); //before create pdf// Compress image functionfunction 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.

繁星点点滴滴

您可以实现两种方式:您可以先通过这种类型的库减小图像大小,然后生成 pdf 文件。或者,您可以在通过 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() )请参阅此处的文档
打开App,查看更多内容
随时随地看视频慕课网APP