PHP判斷字串編碼是不是utf8並轉換的方法

來源:互聯網
上載者:User
PHP判斷字串編碼是否utf8並轉換的方法
為了能夠使PHP具有操作PDF格式文檔的能力,你必須先在你的系統裡安裝PDFLib擴充庫,如果你使用的是Linux系統,你可以從 http://www.pdflib.com/pdflib/index.html下載一個並進行編譯,如果你使用的是Windows系統,那就更簡單了,只需要下載一個編譯好的PDFLib庫,然後在PHP的設定檔裡把相應的行的注釋去掉即可。


extension=php_pdf.dll

如果是動態裝載,也可以是參照下面的命令:


dl("php_pdf.dll");



  此外,你還必須有一個Adobe Acrobat PDF閱讀器,用來瀏覽PDF格式,如果你沒有,你可以從 http://www.adobe.com/免費下載。

一旦你做好了前期準備,就可以建立PDF檔案了,下面就是一個簡單的例子:



// 建立一個新的PDF文檔控制代碼 $pdf = PDF_new(); // 開啟一個檔案 PDF_open_file($pdf, "PDFTest.pdf"); // 開始一個新頁面(A4) PDF_begin_page($pdf, 595, 842); // 得到並使用字型對象 $arial = PDF_findfont($pdf, "Arial", "host", 1); PDF_setfont($pdf, $arial, 10); // 輸出文字 PDF_show_xy($pdf, "This is an exam of PDF Documents, It is a good Lib,",50, 750); PDF_show_xy($pdf, "If you like,please try yourself!", 50, 730); // 結束一頁 PDF_end_page($pdf); // 關閉並儲存檔案 PDF_close($pdf); ?>


  然後儲存成PHP檔案,在瀏覽器裡進行瀏覽,PHP就會執行上面的代碼,它產生一個新的PDF檔案,並儲存到指定的位置。

  現在我們分析一下什麼的代碼,要使用PHP建立PDF檔案,有四個步驟:1,建立文檔控制代碼;2,註冊文檔的字型和顏色;3,用PDFLib提供的函數向檔案控制代碼寫文字或畫圖;4,儲存文檔。

首先,建立PDF文檔控制代碼,文法如下:


$pdf = PDF_new();

  這個任務是由PDF_new()函數完成的,它返回一個PDF文檔的控制代碼,這個控制代碼將會被後續的所有操作使用。

  下一步要做的,就是給PDF檔案一個名字,由PDF_open_file()函數完成,它需要先前建立的檔案控制代碼和自訂的檔案名稱做參數:


PDF_open_file($pdf, "PDFTest.pdf");

  一旦我們建立了文檔,就可以用PDF_begin_page()函數在其中插入新頁面了:


PDF_begin_page($pdf, 595, 842);

  然後用PDF_end_page()結束頁面。

  注意這裡,在PDF_begin_page()函數裡,有另外兩個參數,他們分別代表頁面尺寸的寬和高,單位是磅(point,1磅等於1/72英寸),或許在這裡數學並不是你的強項,PHP還提供了大多數標準頁面尺寸,象A4等,上面的例子就是使用A4的尺寸。

  在調用 PDF_begin_page()函數和 PDF_end_page()函數之間的代碼是向PDF文檔了寫內容的,內容可以是文字、圖象以及幾何圖形等。例子中只是寫了一行文字,先得到一個字型,然後把文字寫到文檔裡。通過 PDF_findfont()PDF_setfont()函數選擇和註冊字型是很方便的, PDF_findfont()函數預備了一種文檔中要使用的字型,需要的參數有字型的名字,使用的編碼,字型是否要嵌入到PDF檔案中。 PDF_findfont()函數返回一個字型對象,它將會在PDF_setfont()函數裡使用。


$arial = PDF_findfont($pdf, "Arial", "host", 1); PDF_setfont($pdf,$arial, 10); 


  一旦我們設定了字型,就可以使用 PDF_show_xy()函數向頁面中的指定位置寫字串了。


PDF_show_xy($pdf, "This is an exam of PDF Documents, It is a good Lib,",50, 750); PDF_show_xy($pdf, "If you like,please try yourself!", 50, 730); 


   PDF_show_xy()函數用來向頁面寫內容,最後兩個參數是要寫入的字串的座標位置,注意座標的原點(0,0)是在文檔的左下角。一旦文字寫完了,頁面就可以關閉了 PDF_end_page(),當然你也可以寫更多的頁。所有的頁面寫完之後,用 PDF_close()函數關閉文檔,此時文檔就回儲存到調用 PDF_open_file()函數時指定的檔案名稱和路徑下,文檔控制代碼隨之銷毀。

  PDFLib庫能做的事情還遠不止這些,還可以在頁面裡加入圖象,我們以前面的檔案為例,在文字的下面添加一個圖象檔案,下面的語句實現了添加圖象功能:


$image = PDF_open_image_file($pdf, "jpeg", "PDFImageTest.jpg"); PDF_place_image($pdf, $image, 50, 650, 0.25); 


  是不是很簡單? PDF_open_image_file()函數開啟一個圖形檔案,可以接受的圖象類型有:GIF, JPEG, TIFF 和 PNG,該函數返回圖象控制代碼, PDF_place_image()函數利用前面的圖象控制代碼,把圖象插入到PDF文檔中。注意這裡的座標位置是指圖象的左下角,最後一個參數是圖象顯示時的比例因素,1是與實際大小一樣顯示,0.5是按原來尺寸的一半顯示。

  除了在PDF文檔裡畫出現有的圖象以外,PDF模組還提供了許多函數來讓我們畫出幾何圖形。比如:直線、圓、長方形等幾何圖案,下面就是一段畫直線的實現方法:

$pdf = PDF_new(); PDF_open_file($pdf, "LineExam.pdf"); PDF_begin_page($pdf, 595, 842); $arial = PDF_findfont($pdf, "Arial", "host", 1); PDF_setfont($pdf, $arial, 12); // 設定直線的顏色 PDF_setcolor($pdf, "stroke", "rgb", 0, 0, 0); // 在左上方放置一個Logo標識 $image = PDF_open_image_file($pdf, "jpeg", "logo.jpg"); PDF_place_image($pdf, $image, 50, 785, 0.5); // 在Logo標識下畫出直線 PDF_moveto($pdf, 20, 780); PDF_lineto($pdf, 575, 780); PDF_stroke($pdf); // 在頁面底部畫出另外一條直線 PDF_moveto($pdf, 20,50); PDF_lineto($pdf, 575, 50); PDF_stroke($pdf); // 輸出一些文字 PDF_show_xy($pdf, "Meng's Corporation", 200, 35); PDF_end_page($pdf); PDF_close($pdf); 

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.