将PDF文件转换为以html格式获得的JPG文件 - PHP / HTML

时间:2017-08-08 08:35:05

标签: php html pdf jpeg imagick

我正在尝试将带有单个页面的pdf转换为jpg文件,以便我可以将其作为图像上传到数据库。我在使用Imagemagick时遇到了一些问题(当我读取文件并写入文件时没有任何反应,尽管我没有收到任何错误)。

以下是html中的表单:

<form enctype="multipart/form-data" class="generalForm" onsubmit="return validateForm()" action="../includes/connect.php" method="POST">
            <label class="headLabel">DODAJ</label>
            <br>
            <br>
            <input class="inputTextSub" id="naziv" name="naziv" placeholder="naziv" onfocus="this.placeholder = ''" onblur="this.placeholder = 'naziv'" type="text">
            <br>
            <br>
            <input class="inputTextSub" id="opis" name="opis" placeholder="opis" onfocus="this.placeholder = ''" onblur="this.placeholder = 'naziv'" type="text">
            <br>
            <br>
            <input class="inputTextSub" id="datumz" name="datumz" type="date">
            <br>
            <br>
            <input class="inputTextSub" id="datumk" name="datumk" type="date">
            <br>
            <br>
            <label class="inputTextSub">prioriteta</label>
            <select class="inputSelSub" id="pr" name="pr">
                <option value=1>1</option>
                <option value=2>2</option></select>
            <br>
            <br>
            <label class="inputTextSub">format</label>
            <select class="inputSelSub" id="format" name="format">
                <option value=A3>A3</option>
                <option value=A4>A4</option></select>
            <br>
            <br>
THIS --->   <input type="file" name="inputfile" id="file" class="inputfile" />
            <br>
            <line id="addWarn" style="font-family: 'Ubuntu'; font-size:1em; -webkit-text-fill-color: white; letter-spacing: 2px;"></line>
            <br>
            <br>
            <input class="button" style="margin-top:2em;" name="save" type="submit" value=" shrani ">
        </form>

这是php中的代码:

if(isset($_POST['save'])){
if(!$_POST['naziv']==""&&!$_POST['opis']==""&&!$_POST['datumz']==""
&&!$_POST['datumk']==""&&isset($_POST['pr'])
&&isset($_POST['format'])&&$_FILES['inputfile']['size']>0){
    $naziv = $_POST['naziv'];
    $opis = $_POST['opis'];
    $datumz = $_POST['datumz'];
    $datumk = $_POST['datumk'];
    $pr = $_POST['pr'];
    $format = $_POST['format'];
    $file = file_get_contents($_FILES['inputfile']['tmp_name']);
    $modId = $_SESSION['mod_id'];

    $img = new Imagick();
    $img->readImage($_FILES['inputfile']['tmp_name']);
    $img->writeImage('tempImg.jpg');


    $stmt = $GLOBALS['conn']->prepare(
    "INSERT INTO `deska`(`mod_id`, `naziv`, `opis`, `datumz`, `datumk`, 
    `prioriteta`, `slika`, `tip`, `datumSpremembe`) 
    VALUES (?,?,?,?,?,?,?,?,CURRENT_DATE)"
    );

    $stmt->bind_param('issssibs',$modId,$naziv,$opis,$datumz,$datumk,$pr,$null,$format);
    $stmt->send_long_data(6,$file);

    if(!$stmt->execute()){
        die(mysqli_error($GLOBALS['conn']));
    }
    $stmt->close();

    header("location: ../sub/dodaj.php");
    }else{
    header("location: ../sub/dodaj.php");

}

正如我先前所说:我很想通过html表单上传PDF文件,然后将其更改为JPEG文件。 专注于Imagick对象,我知道查询对于我想要做的事情是不正确的,但现在这不是问题。我只是想将pdf保存为图像:)。 谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

你可以使用ImageMagick, 如果您使用的是Ubuntu服务器,则可以通过

安装图像魔术
sudo apt-get install imagemagick

并按convert input.pdf output.jpg

运行

你可以使用

从PHP自己运行命令
$result = shell_exec('convert input.pdf output.jpg');

您可以使用高级图像转换器 https://www.2jpeg.com/

安装后从php

调用它
$result = shell_exec('2jpeg.exe -src “source” -dst “destination” -oper Rasterize res:300');