【问题标题】:PHP mPDF save file as PDFPHP mPDF 将文件保存为 PDF
【发布时间】:2012-09-16 10:53:12
【问题描述】:

我有一个使用 mPDF 的页面,当您运行时在浏览器中显示一个 PDF,它也可以从这里保存为 PDF 没问题。我想要发生的是当页面运行并生成一个 PDF 时,该页面在服务器上保存为 PDF。

这是当前代码:

<?php
include $_SERVER['DOCUMENT_ROOT'].'/include/seo-check/lib/WSAclient.php';
include $_SERVER['DOCUMENT_ROOT'].'/include/seo-check/lib/WSAParser.php';

$reportID= $_GET['reportid'];

$WSAclient = new WSAclient(WSA_USER_ID,WSA_API_KEY);

$result=$WSAclient->viewReport($reportID,WSA_SUBSCRIPTION_ID,'xml','EN');

unset($WSAclient);

ob_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>PDF Report</title>
<!--Add your CSS here-->
</head>
<body>    
<?php  
echo WSAParser::viewReportResponse($result);
?>
</body>
</html>
<?php
$HTMLoutput = ob_get_contents();
ob_end_clean();


//Convert HTML 2 PDF by using MPDF PHP library
include $_SERVER['DOCUMENT_ROOT'].'/include/seo-check/lib/MPDF/mpdf.php';
$mpdf=new mPDF(); 

$mpdf->WriteHTML($HTMLoutput);
$mpdf->Output();
?>

就像我说的那样,这可以很好地输出 PDF,但有人可以告诉我如何保存为 PDF 吗?

【问题讨论】:

    标签: php pdf save mpdf


    【解决方案1】:

    Go trough this link表示Output()的第一个参数是文件路径,第二个是保存模式-需要设置为'F'

     $upload_dir = public_path(); 
                 $filename = $upload_dir.'/testing7.pdf'; 
                  $mpdf = new \Mpdf\Mpdf();
                  //$test = $mpdf->Image($pro_image, 0, 0, 50, 50);
    
                  $html ='<h1> Project Heading </h1>';
                  $mail = ' <p> Project Heading </p> ';
                  
                  $mpdf->autoScriptToLang = true;
                  $mpdf->autoLangToFont = true;
                  $mpdf->WriteHTML($mail);
    
                  $mpdf->Output($filename,'F'); 
                  $mpdf->debug = true;
    

    例子:

     $mpdf->Output($filename,'F');
    

    示例 #2

    $mpdf = new \Mpdf\Mpdf();
    $mpdf->WriteHTML('Hello World');
    
    // Saves file on the server as 'filename.pdf'
    $mpdf->Output('filename.pdf', \Mpdf\Output\Destination::FILE);
    

    【讨论】:

      【解决方案2】:

      试试这个:

      $mpdf->Output('my_filename.pdf','D'); 
      

      因为:

      D - 表示下载
      F - 表示仅文件保存

      【讨论】:

      • 用这个为我节省了一些时间。谢谢!
      【解决方案3】:

      mPDF docs表示Output()的第一个参数是文件路径,第二个是保存模式-需要设置为'F'

      $mpdf->Output('filename.pdf','F');
      

      【讨论】:

      • 你我的朋友是一个救生员,花了几个小时试图找到它。谢谢!
      • 这对我不起作用,但是将其更改为 D 而不是 F!它们是什么意思?
      • D - 发送到浏览器并强制下载,F - 保存到文件。我提供的文档链接对此进行了解释。
      • 还有哪些选项,F是什么意思?
      【解决方案4】:

      可以这样完成。它对我来说很好。如果没有设置,还要将目录权限设置为 777 或 775。

      ob_clean();
      $mpdf->Output('directory_name/pdf_file_name.pdf', 'F');
      

      【讨论】:

      • 这是一个更好的答案,因为它指定了如何将其保存到目录中。 +1
      • 这对我有用,还要确保你指定了输出文件的路径
      • @kinsleykajiva。你能解释一下我们从哪里得到输出路径吗?这就是我的代码的样子,但文件没有保存在服务器上`$mpdf->WriteHTML($echomsg); $_Globals['SITE_ROOT']=realpath(dirname(FILE)); $path = str_replace('\\', '/', $_Globals['SITE_ROOT']); $src= "../wp-content/themes/krystal/files/filename.pdf"; $mpdf->输出($src,'F'); $msg= "";回声$味精; `
      • @Far 如果您使用 Linux,您是否设置了允许 PHP 写入文件夹的文件夹权限?如果是这样,请检查 .temp 文件夹中是否有任何数据。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多