在Adobe Reader中打开PHP PDF文件

时间:2019-06-27 08:55:53

标签: php html

我在网络驱动器上保存了许多PDF文件。所有pdf文件都链接到任务。我想在阅读器中打开它们,而不是下载它或在chrome标签中打开。

我可以使用以下正确的任务来获得正确的PDF文件:

echo "<b>Documenten: </b><br>"; 
    $documentenwo = "SELECT * FROM DOCUMENT INNER JOIN DOCUMENT_REF_WO ON DOCUMENT.ID = DOCUMENT_REF_WO.DOCUMENT_ID WHERE DOCUMENT_REF_WO.WORKORDER_BASE_ID='".$base."' AND DOCUMENT_REF_WO.WORKORDER_LOT_ID='".$lot."' AND DOCUMENT_REF_WO.WORKORDER_SPLIT_ID='".$split."' AND ID NOT LIKE '%.stp' AND ID NOT LIKE '%.dxf'";   
    $STH = $pdo->prepare($documentenwo);
    $STH->execute();
    while($row = $STH->fetch(PDO::FETCH_ASSOC)){ 
        $file_patch = $row["DOC_FILE_PATH"];
        if(!empty(trim($file_patch))){
            $file_patch = trim($file_patch);
            $file_patch = str_replace("M:", "file://local/data", $file_patch);
        }
        $id = $row["ID"];
        $path = $file_patch."/".$id;   
        echo "<p><a href=".$file_patch."/".$id." target='_blank'><i class='fa fa-download'></i> ".$row["ID"]."</a></p>";          
    }

当我打开pdf文件时,它将在chrome pdf查看器中为openend。

我想从Adobe Reader的原始位置打开它。不下载。只需从原始位置打开文件即可。

为什么?

当某人在其中1个文档中有注释时,该注释将保存在其原始位置,以便其他所有人都可以在pdf文件中看到其注释。

1 个答案:

答案 0 :(得分:1)

我在使用Intranet php webapp时遇到了同样的情况。用户不想在浏览器选项卡中从网络服务器查看pdf,而是希望直接在Acrobat Pro中进行编辑。 当然,您有两个障碍,php是基于服务器的,不允许javascript在客户端计算机上运行程序。 经过思考和思考,我找到了一种解决方法,ajax将请求一个php脚本,该脚本将组成一个批处理文件以文件(网络路径)为参数打开acrobat pro。因此,在警告文件危险类型后,您下载了.cmd,执行该命令后,它将在所需的程序中打开该文件。 如果要使用默认程序以外的其他程序,只需将路径添加到程序可执行文件即可。 而且它是可自毁的,因此您的下载文件夹中不会有太多的.cmd。

文件名为acrobat.php?filename = path_to_the_file(网络路径)

<?php 
extract($_REQUEST);
$filename = realpath($filename);
$filename = str_replace("D:\\Pdf_folder\\","\\\\Server_name\\Pdf_folder\\",$filename); //replace internal server path to network path
function acrobat($filename) {
   header("Content-type: text/plain");
header("Content-Disposition: attachment; filename=acrobat.cmd");
print $filename; //dowload file called acrobat.cmd
}
//call the function with the command to open pdf by default program.
 acrobat( "start \"\" \"$filename\" ".PHP_EOL." DEL \"%~f0\"");