20467


WEBアプリケーションからPDFで帳票を出力させようとしています。  
テンプレートを読み込んで、その上に追記するため、  
FPDI(ver 1.6.0) + TCPDF(ver 6.2.12)の組み合わせで出力しています。

MultiCellで長文を出力する際に、文字列が一塊として出るように自動調整され、  
中途半端に改行したくてもできません。  
※２行分しか表示できる幅がないため、横幅で可能な限り表示できるようにしたい。

例：全角9文字まで出力できるセルに【 あいうえお かきくけこ さしすせそ 】を出力する際  
▼表示したい内容  
あいうえお かきく  
けこ さしすせそ  
▼実際  
あいうえお  
かきくけこ  
さしすせそ  
※三行目は見えない

[code]

    //表示処理 
    $target= 'あいうえお かきくけこ さしすせそ'; 
    $cell_w = 45; 
    $cell_h = 12; 
    $this->Receipt->MultiCell($cell_w, $cell_h, $target, 1, 'L', 0, 0, $col, $row, true, 0, false, true, $cell_h, 'M', false);
    
[/code]

どうすれば自動調整をなくせるでしょうか？  
よろしくお願い致します。


CC BY-SA 3.0
2015-12-25T23:43:48.700
20382
2015-12-30T03:58:35.813
10977
question
php pdf
TCPDFのMultiCellの改行について


こんにちは。

確かにテストしてみると同じような現象が起きますね。  
あいうえお・・・といった文字列以外にもテストしましたが、正しくスペースを表示したり改行したりと曖昧な結果になってしまいました。

解決策としては、MultiCellの引数でHtmlモードをオンにして、スペースの代わりにお馴染みの`&nbsp;`を使うことで解決しました。お試しください。

[code]

    $targetHtml = str_replace(" ", "&nbsp;", $target) // Html形式に変換
    
    $cell_w = 45; 
    $cell_h = 12; 
    
    //12番目の引数をfalseからtrueに
    $this->Receipt->MultiCell($cell_w, $cell_h, $targetHtml, 1, 'L', 0, 0, $col, $row, true, 0, true /* ishtml=true */ , true, $cell_h, 'M', false); 
    
[/code]


CC BY-SA 3.0
2015-12-30T03:58:35.813
20467
2015-12-30T03:58:35.813
13097
20382
answer