require_once('vendor/autoload.php');
use \ConvertApi\ConvertApi;
//get api key: https://www.convertapi.com/a/si
ConvertApi::setApiSecret('xxx');
$result = ConvertApi::convert('pdf', ['File' => '/dir/test.png']);
# save to file
$result->getFile()->save('/dir/file.pdf');
/**
* jpg To pdf WEB
*
* @method convertJpgToPdf
*/
public function convertJpgToPdf(Request $request)
{
try {
//get list of files
$files = Storage::files('JpgToPdf');
/*get count of files and ,
* check if any files contain
* if any files contains
* then
* get the files name
* delete one by one
*/
if(count($files) >1 )
{
foreach($files as $key => $value)
{
//get the file name
$file_name = basename($value);
//delete file from the folder
File::delete(storage_path('app/JpgToPdf/'. $file_name));
}
}
if ($request->has('jpeg_file'))
{
$getPdfFile = $request->file('jpeg_file');
$originalname = $getPdfFile->getClientOriginalName();
$path = $getPdfFile->storeAs('JpgToPdf', $originalname);
}
// file name without extension
$filename_without_ext = pathinfo($originalname, PATHINFO_FILENAME);
//get the upload file
$storagePath = storage_path('app/JpgToPdf/' . $originalname);
$imagick = new Imagick();
$imagick->setResolution(300, 300);
$imagick->readImage($storagePath);
$imagick->setImageCompressionQuality( 100 );
$imagick->mergeImageLayers(Imagick::LAYERMETHOD_FLATTEN);
$imagick->setImageAlphaChannel(Imagick::ALPHACHANNEL_REMOVE);
$imagick->writeImage( storage_path('app/JpgToPdf/') . $filename_without_ext .'.pdf' );
return response()->download(storage_path('app/JpgToPdf/') . $filename_without_ext .'.pdf' );
} catch (CustomModelNotFoundException $exception) {
// Throws error exception
return $exception->render();
}
}
5条答案
按热度按时间yi0zb3m41#
如果您的计算机上安装了ImageMagick,您可以使用ImageMagick bindings for PHP执行一些简单的PHP代码来完成此任务:
或者,如果你没有ImageMagick,你可以使用一个商业API,如Zamzar,它支持通过PHP将图像转换为PDF(更多信息见文档)。
使用此选项的代码为:
b4wnujal2#
将图像包裹在
HTML
中,并使用一些HTML to PDF converter
,如fpdf
或mpdf
dphi5xsq3#
您可以使用convertapi服务,易于安装:
要转换多个文件和其他选项,请选中https://github.com/ConvertAPI/convertapi-php
6tdlim6h4#
这里使用的是Php 7.4,Laravel 7+,ImageMagick-7.1.0-Q16和Ghostscript gs10.00.0,如果文件夹JpgToPdf中包含任何文件,请删除它们,依此类推。
6qfn3psc5#
对于只有几张图片,可以用Chrome网络浏览器手动轻松地完成。你不需要互联网连接。
1.使用
.html
扩展名将以下内容保存在图像的同一文件夹中:1.用谷歌浏览器打开html文件,
1.选择“保存为PDF”,将其保存在本地
1.或者,您可以通过Google云打印将副本发送到smatphone