1. 程式人生 > >使用tcpdf軟體 線上預覽pdf檔案

使用tcpdf軟體 線上預覽pdf檔案

<?php

require_once('/var/www/html/htdocs/tcpdf/config/lang/eng.php');//包含兩個檔案就載入tcpdf庫
require_once('/var/www/html/htdocs/tcpdf/tcpdf.php');

require_once('/var/www/html/htdocs/database.php');

$thbgcolor ="bgcolor=\"#C9D6A6\"";//定義變數
$tdbgcolor0="bgcolor=\"#DFE3E6\"";
$tdbgcolor1="bgcolor=\"#EDF1F4\"";
$tdbgcolor2="bgcolor=\"#66CCFF\"";
$tdbgcolor3="bgcolor=\"#B0C4DE\"";
$tdbgcolor4="bgcolor=\"#FFE4C4\"";

define("MSSP_TABDEF", "border=\"1\" cellpadding=\"1\" cellspacing=\"1\"");//定義常量
define("MSSP_TABDEF2", " border=\"1\" cellpadding=\"1\" cellspacing=\"1\" width=\"%50\"");
define("MSSP_TDWIDTH", " width=\"76\" ");
define("MSSP_TDWIDTH2", " width=\"65\" ");
define("MSSP_TDWIDTH3", " width=\"68\" ");
define("MSSP_TDWIDTH4", " width=\"76\" ");
define("MSSP_TDWIDTH5", " width=\"78\" ");

$Product_info_total = 0;

$Contract_ID= $_REQUEST['Contract_ID'];//接收資料

$pdf_filename=$Contract_ID;

header("Content-Disposition: attachment; filename=$pdf_filename.pdf");

$sql = "select c.no Contract_No, c.Date Contract_Date, e.Name Employee_Name  from tbl_contract c, tbl_employee e where c.id=65 and e.id=Employee_ID";
//從資料庫查出合同為65的合同名稱 合同日期和銷售


display_content_pdf($Contract_ID,$msspdb,$pdf_filename);//header("/htdocs/download/" . $pdf_filename);


function display_content_pdf($Contract_ID,$msspdb,$pdf_filename)
{
// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

// set default header data
$pdf->SetHeaderData(PDF_HEADER_LOGO, '30', '','*****有限公司');//頭內容想查詢常量,需到/tcpdf/config/tcpdf_config.php中查詢
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));

// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);

//set margins
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);

//set auto page breaks
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);

//set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);

//set some language-dependent strings
//$pdf->setLanguageArray($l);//以上為固定的一些樣式,可以改變,tcpdf_config.php檔案更改常量

// ---------------------------------------------------------
// set font
$pdf->AddPage('Landscape','A4'); // 橫向列印
$pdf->SetFont('stsongstdlight', '', 12);//stsongstdlight是字型,這種字型很小,可以使用dejavusans是utf - 8的Unicode字型,如果你只需要列印標準ASCII字元,您可以使用核心字型像。helvetica或次減少檔案大小。
$html = '<h2>***有限公司—用印申請單</h2>';
$pdf->writeHTML($html, true, false, true, false, '');// writeHTML($html, $ln=true, $fill=false, $reseth=false, $cell=false, $align='')

$html = display_contract_content_pdf($pdf, $Contract_ID,$msspdb);

// Dest:設定PDF輸出的方式。I,預設值,在瀏覽器中開啟;D,點選下載按鈕,PDF檔案會被下載下來;
// F,檔案會被儲存在伺服器中;S,PDF會以字串形式輸出;E:PDF以郵件的附件輸出。

$pdf->Output("contract_" . $pdf_filename . ".pdf","I");

}

function  display_contract_content_pdf($pdf, $Contract_ID,$msspdb)
{
global $thbgcolor ;
global $tdbgcolor0;
global $tdbgcolor1;
global $tdbgcolor2;

$sql = "
select 
c.no Contract_No, c.Date Contract_Date, c.Customer Contract_Customer, c.Verb_Date Contract_Verb_Date, Payment_Method,
Net_Cost,Tax_Rate,Date_Clause,Sales_Date,
Service_Cost,Capital_cost,Assessment_cost,Total_cost,Gross_Sales,Gross_Profit,Gross_margin,
Business_Date,Business_Name,Department_Date,Department_Name Department_Manager_Name,Executive_Date,Executivet_Name,
e.Name Employee_Name,
d.Name Department_Name
from tbl_contract c, tbl_employee e, tbl_department d
where 
c.id=$Contract_ID 
and e.id=Employee_ID 
and e.Department_ID = d.ID
";

$maxrows = 10;
$result = mysql_query($sql,$msspdb) or die('fail:'.mysql_error());
while ($rs = mysql_fetch_array($result))
{

$pdf->AddPage('Landscape','A4'); // 橫向列印
 $pdf->SetFont('stsongstdlight', 'B', 18);
$pdf->Cell(0, 1, '****合同—用印申請單', 0, 1, 'C');
 $pdf->SetFont('stsongstdlight', '', 7);

$thtml = '<br><br><br><table '.MSSP_TABDEF2 . '>';

$html = sprintf("<tr> <td %s align=\"right\">日期:</td><td>%s</td>", $tdbgcolor0, $rs['Contract_Date']);
$thtml .= $html; 
$html = sprintf(" <td %s align=\"right\">合同編號:</td><td>%s</td>", $tdbgcolor0, $rs['Contract_No']);
$thtml .= $html; 
 $thtml .= "</tr> "; 

$html = sprintf("<tr> <td %s align=\"right\">銷售負責人:</td><td>%s</td>", $tdbgcolor0, $rs['Employee_Name']);
 $thtml .= $html; 
$html = sprintf(" <td %s align=\"right\">客戶名稱:</td><td>%s</td>", $tdbgcolor0, $rs['Contract_Customer']);
$thtml .= $html; 
 $thtml .= "</tr> "; 
 
$html = sprintf("<tr> <td %s align=\"right\">部門:</td><td>%s</td>", $tdbgcolor0, $rs['Department_Name']);
 $thtml .= $html; 
$html = sprintf(" <td %s align=\"right\">合同簽訂日期:</td><td>%s</td>", $thbgcolor, $rs['Contract_Verb_Date']);
 $thtml .= $html; 
 $thtml .= "</tr> "; 

 $thtml .= "</table>"; 

$thtml .= '<table '.MSSP_TABDEF . '>';

$html = sprintf("<tr> <td %s align=\"center\">合同產品資訊表(銷售人員填寫)</td>", $tdbgcolor0);
 $thtml .= $html; 
$html = sprintf(" <td %s align=\"center\">考核成本資訊表(產品經理填寫)</td>", $tdbgcolor2);
$thtml .= $html; 
 $thtml .= "</tr>"; 
 $thtml .= "<tr>"; 
$thtml .= '<td>';
$thtml .= display_contract_product_info_pdf($Contract_ID,$msspdb,$maxrows);//呼叫方法
 $thtml .= "</td> "; 

$thtml .= '<td>'; 
$thtml .= display_contract_assessment_info_pdf($Contract_ID,$msspdb,$maxrows);//呼叫方法
 $thtml .= "</td> ";  
 $thtml .= "</tr> "; 
 
 $thtml .= "<tr>"; 
$thtml .= '<td>';
$thtml .= display_contract_clause_info_pdf($Contract_ID,$msspdb,4,$rs['Payment_Method'],
$rs['Net_Cost'],$rs['Tax_Rate'],$rs['Date_Clause'],$rs['Employee_Name'],$rs['Sales_Date']);//呼叫方法
$thtml .= "</td> "; 

$thtml .= '<td>'; 
 $thtml .= display_contract_other_info_pdf($Contract_ID,$msspdb,3,$rs['Service_Cost'],$rs['Capital_cost'], 
 $rs['Assessment_cost'],$rs['Total_cost'],$rs['Gross_Sales'],$rs['Gross_Profit'],$rs['Gross_margin'],
 $rs['Business_Date'],$rs['Business_Name'],
 $rs['Department_Date'],$rs['Department_Manager_Name'],
 $rs['Executive_Date'],$rs['Executivet_Name']);//呼叫方法
 $thtml .= "</td> ";  
 $thtml .= "</tr> "; 
 $thtml .= "</table>"; 
 
 $pdf->writeHTML($thtml, true, false, true, false, '');
}
return $thtml;
}
?>

相關推薦

使用tcpdf軟體 線上pdf檔案

<?php require_once('/var/www/html/htdocs/tcpdf/config/lang/eng.php');//包含兩個檔案就載入tcpdf庫 require_once('/var/www/html/htdocs/tcpdf/tcpdf.

Jquery.media.js實現網頁線上pdf檔案

近期在工作中遇到了需要在網站預覽pdf檔案的需求,網上的資料很多,我使用了其中一種,即使用 Jquery.media.js包實現。 首先需要準備兩個內容: 1,jquery.js,任意版本 2,jquery.media.js,可以從網上搜,或者去下面我提供的地方下載(是我上傳的),

ionic3專案實現線上PDF檔案

這裡參考了大牛提供的預覽外掛完成自己需要實現的功能,ng2-pdf-viewer,該外掛不支援ionic3的懶載入,廢話少說,直接擼程式碼。 第一步,安裝 ng2-pdf-viewer npm install ng2-pdf-viewer --save 第二步,在專案中新建頁面

瀏覽器中線上pdf檔案(不使用外掛)

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>demo</title> <script src="jquer

java線上pdf檔案或圖片檔案

在專案中需要使用到線上瀏覽檔案功能,由於專案中只能上傳pdf和圖片檔案,所有就只做了預覽pdf和圖片的功能。 在頁面中的程式碼如下: <a onclick="show(show_attach?filePath="+path+"&type="+type+")"

關於Android 線上PDF檔案

Android PdfViewer: 專案地址: https://github.com/barteksc/AndroidPdfViewer 功能很強大, 使用也比較廣, 親測可以使用. 唯一的缺點 :新增到專案中 會使apk增加16M, 這是最不能接受

jquery.media.js 外掛實現線上PDF檔案

 程式碼: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content

html頁面線上PDF檔案

依賴:jquery.media.js,自行百度下載 下載後放入指定位置,例:/static/js/lib/jquery.media.js 靜態頁面核心程式碼: <div id="pdf_preview"></div> 以上靜態頁面還需要引入js

前端實現線上pdf、word、xls、ppt等檔案

1、前端實現pdf檔案線上預覽功能 方式一: 通過a標籤href屬性實現 pdf檔案理論上可以在瀏覽器直接開啟預覽但是需要開啟新頁面。在僅僅是預覽pdf檔案且UI要求不高的情況下可以直接通過a標籤href屬性實現預覽 <a href="文件地址"></

jsp實現線上pdf、word、xls、ppt等檔案

最近在做一個共享數字化平臺,一些所涉功能知識記錄一下。 、其他教程寫得太老了,可能到如今已經不再適用。 1、jsp實現pdf檔案線上預覽功能 方式一、pdf檔案理論上可以在瀏覽器直接開啟預覽但是需要開啟新頁面。在僅僅是預覽pdf檔案且UI要求不高的情況下可以直

.net mvc使用FlexPaper外掛實現線上PDF,EXCEL,WORD的方法

  FlexPaper外掛可以實現在瀏覽器中線上預覽pdf,word,excel等。 在網上看到很多關於這個外掛實現預覽的技術,但是很難做到word和excel線上預覽。 pdf很好實現。   首先下載相關的外掛資訊,這裡不多說了。   其中這個外掛主要需要配合As

網頁上pdf檔案的幾種方案

          網頁上檢視pdf的方案: 1.使用adobe reader的外掛   2.使用線上office控制元件  3.使用火狐開源專案pdf.js(瀏覽器需支援html5)  4.將pdf轉換為swf檔案  5.使用pdfobject.js     下面我來講一

H5通過流的方式PDF檔案實踐總結:

前言: 最近領導讓研究H5如何通過後端返回流的方式去預覽PDF檔案,通過實踐,現總結如下: 外掛目錄如下圖: 當下載下來後,為做測試,將目錄檔案直接部署線上伺服器,去直接訪問viewer.html看是否能成功,輸入地址: ‘線上地址域名:’ + p

實現線上PDF的幾種解決方案

因客戶需要實現PDF的預覽處理,在網上找了一些PDF線上預覽的解決方案,有的用PDFJS的線上預覽方式,有的使用PDFObject的嵌入式顯示,有的通過轉換JPG/PNG方式實現間接顯示的方式,開始是想通過簡單的方式,能夠使用JS外掛實現預覽最好,可是線上預覽總是有一些不足,如不同瀏覽器的相容問題,甚至不同的

vue專案中使用pdf.jspdf檔案

    專案要求需要預覽pdf檔案,網上找了很久,大多數都是推薦pdf.js,自己起了解了一下,最後決定用pdf.js, 但是發現,在vue中使用這個很少!!!!!所以我就寫這一篇幫助一下vue使用pdfjs的朋友! 其實 這和前端框架無關的,直接使用pdf.js原生

pdf.jspdf檔案

專案中需要做一個office線上預覽的功能,所以用到了pdf.js 下載對應官方檔案, 然後 <a href="plug-in/pdfjs/web/viewer.html?file=./../../../${dmdocPage.mainFile.swfpath}

移動端利用pdf.js實現線上pdf文件

專案中要求在移動端實現線上預覽pdf檔案,通過一番折騰,最後選擇用pdf.js實現。1、下載pdf.js    官網地址:https://mozilla.github.io/pdf.js/2、各種配置    下載下來的檔案包,就是一個demo,我們仿照這個demo做就可以啦 

vue外掛開發 使用pdf.js實現手機端線上pdf文件

        目前大多數PC瀏覽器支援線上預覽pdf檔案,但大多數手機瀏覽器還未支援,嘗試用手機瀏覽器開啟一個pdf檔案會彈出是否下載的提示框。網上查了一些資料,在實現的過程中,還是走了比較多的彎路,最後採用了倍受推薦的pdf.js外掛來實現(文末附Demo)。     

FlexPaper+SWFTool+操作類=線上PDF

引言 由於客戶有線上預覽PDF格式的需求,在網上找了一下解決方案,覺得FlexPaper用起來還是挺方便的,flexpaper是將pdf轉換為swf格式的檔案預覽的,所以flexpaper一般和swftool配合使用,在程式執行時將pdf檔案轉換為swf格式的檔案。

使用pdf.js線上pdf

預覽pdf使用pdf.js,相容ie和chrome,並且使用ie是可以免安裝外掛 1.下載pdf.js   https://github.com/mozilla/pdf.js/releases/download/v1.8.188/pdfjs-1.8.188-dist.zip