[转载]Vtiger5.4.0實戰手冊(七)

    這是個複雜的題目。要出PDF的: Invoice, Purchase Order, Quote, Sales Order ,,等。有以下幾個問題需要解決:


    1: PDF 中文亂碼

    2: PDF 中間有個討厭的浮水印,Approved, Auto created, Paid...要去掉,,不好看

    3: PDF lay out ,,格式要改一下

    4: PDF 字型,,看能不能用Windows的true type,, 在中文字型,Linux還是不如Windows


1:中文亂碼:


     這兩個更改的地方都是 function SetFont


     (1) 在 vtlib/Vtiger/PDF  打開 TCPDF.php ,在 73行左右的 

                          if ($size == 0) {

                                $size = $this->FontSizePt;

                          }

      底下插入 $family = 'stsongstdlight';


    (2)  在 include/tcpdf 打開 tcpdf.php , 在 3064行左右的


                          if ($size == 0) {

                                $size = $this->FontSizePt;

                          }

      底下插入 $family = 'stsongstdlight';


    這樣PDF的中文就不會亂碼了,,可是字型有點醜,字的間距不平均。。。有時間再來改。


2: 去掉浮水印 watermark。


     起初,以爲只要把有watermark的命令comment掉就可以了。。用 grep -iR 'watermark' ./* 指令,在vtigercrm以下的目錄搜尋,找出有watermark的檔案,,都給他comment掉。。還是不行。既然,不能去掉浮水印,,那我讓浮水印的內容爲空,,可以吧。最後終於找到罪魁禍首了,是function getWatermarkContent() , 用  grep -iR 'getwatermarkcontent' ./* 把所有包含這個function的檔案找出來,在一個個改,共有5個檔案:

./include/InventoryPDFController.php

./modules/PurchaseOrder/PurchaseOrderPDFController.php

./modules/Invoice/InvoicePDFController.php

./modules/SalesOrder/SalesOrderPDFController.php

./modules/Quotes/QuotePDFController.php


方法如下:


找到 function getWatermarkContent ()

   function getWatermarkContent() {

        //return $this->focusColumnValue('invoicestatus');  // 把這行comment掉

        return ''; // return空字串,就沒有watermark了。。不然填進去你要的內容也行,,,比如說,,"出來行的,遲早要還的" , 或是 "做生意要講信用,付款要準時"

    }



3: 格式 Lay out,很複雜,到目前還沒搞清楚PDF是由那些檔案生成的,,是tcpdf,,還是fpdf。 如果不直接改source code,有個module可以解決 --  PDFMaker


     到這離下載PDFMaker的module,?group_id=334&release_id=860,然後在module manager 安裝。安裝完之後,在menu的tools裏面會出現 PDF Maker,點進去,系統提示還要安裝mpdf。到這下載mpdf   ,然後解壓縮到 modules/PDFMaker 底下,把目錄名改爲mpdf。


     在回到tools -> PDF Maker,,可以編輯4個PDF檔 ,分別是 Invoice, SO,PO,Quote,,,這個方法不錯,,,但是,,我還是想直接改PDF的source code....慢慢研究吧。。


     Vtiger的editor還不是很好用,有時要直接編輯source code。改着改着,,竟然打不開編輯畫面了,,應該是改壞了。。。咋辦呢? 解法如下:


     進phpmyadmin直接編輯database,打開table pdfmaker,field body就是PDF的內容,奇怪的是,,這是一個bin檔,叫做 BLOB-4.7KiB,click一下,,就會下載,用gedit打開看一下。。。。啊就是文字檔啊。。檢查一下內容哪裏有問題,,修正完之後,存檔。再把它存回database。。這樣就能打開,繼續編輯了


      還有另外一個問題: 錯位,文字重疊。這個會發生在有文字以外的符號,,比如說減號 - ,括號()等。解法如下:


      把減號改爲全型的,,就是比減號長的那個。或者是用table 的td把符號隔離。不然就多打幾個空格把符號和後面的文字隔開。


      後記: 奇怪的是裝到hostmonster之後,PDF竟然是亂碼,,,怪了。比對一下自己的server 和hostmonster在PDFMaker目錄底下有那些內容不同,,結果發現ttfonts和ttfontdata和config_fonts.php在字型的設定上不同,,,乾脆吧PDFMaker整個目錄從自己的server上傳到hostmonster。 問題解決。hostmonster上用PDFmaker出invoice沒亂碼了。


内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/11188.html