Base.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. <?php
  2. namespace Pdf\Lib;
  3. use Dever;
  4. Dever::apply('fpdf/chinese', 'pdf');
  5. class Base
  6. {
  7. public function init($page = 'P', $size = 'mm', $type = 'A4')
  8. {
  9. $this->pdf = new Pdf($page, $size, $type);
  10. $this->pdf->AddGBFont();
  11. $this->pdf->Open();
  12. $this->pdf->AddPage();
  13. $this->pdf->font(10);
  14. return $this->pdf;
  15. }
  16. }
  17. class Pdf extends \PDF_Chinese
  18. {
  19. public function __construct($name, $size, $page)
  20. {
  21. parent::__construct($name, $size, $page);
  22. }
  23. /*
  24. font:表示字体;
  25. style:可选参数,表示样式,默认为普通样式;
  26. 取值:B:粗体 I:斜体 U:下划线
  27. size:可选参数,表示字体大小,默认为12pt;
  28. */
  29. public function font($size, $style = '', $font = 'GB')
  30. {
  31. $this->SetFont($font, $style, $size);
  32. return $this;
  33. }
  34. /*
  35. width:增加单元格宽度。
  36. height:增加单元格高度。
  37. text:放置在单元格中的文本。
  38. border:单元格边框。
  39. ln:换行高度,默认为0,即换一行。
  40. align:对齐方式,默认居左,R时居右,C时居中。
  41. fill:是否颜色填充,默认false。
  42. link:添加链接,默认无链接.
  43. * Cell()函数是FPDF中输出文字的主要方式之一。
  44. */
  45. public function text($text, $align = 'L', $width = 0, $height = 8, $border = 0, $ln = 0, $link = '', $fill = false)
  46. {
  47. if (!$height) {
  48. $height = 8;
  49. }
  50. if (!$width) {
  51. $this->br();
  52. }
  53. $this->Cell($width, $height, $this->convert($text), $border, $ln, $align, $fill, $link);
  54. return $this;
  55. }
  56. public function left($text, $width = 0, $border = 0, $height = 8)
  57. {
  58. $this->text($text, 'L', $width, $height, $border);
  59. return $this;
  60. }
  61. public function right($text, $width = 0, $border = 0, $height = 8)
  62. {
  63. $this->text($text, 'R', $width, $height, $border);
  64. return $this;
  65. }
  66. public function center($text, $width = 0, $border = 0, $height = 8)
  67. {
  68. $this->text($text, 'C', $width, $height, $border);
  69. return $this;
  70. }
  71. public function img($file, $x, $y = false, $w = 30, $h = 30)
  72. {
  73. if (!$y) {
  74. $y = $this->y();
  75. }
  76. $this->Image(Dever::pic($file), $x, $y, $w, $h);
  77. return $this;
  78. }
  79. public function hr($str = '-', $name = '')
  80. {
  81. $text = str_pad($name, 142, $str, STR_PAD_BOTH);
  82. $this->text($text);
  83. return $this;
  84. }
  85. public function br($num = 1, $size = null)
  86. {
  87. for ($i = 0; $i < $num; $i++) {
  88. $this->Ln($size);
  89. }
  90. return $this;
  91. }
  92. public function y()
  93. {
  94. return $this->GetY();
  95. }
  96. public function x()
  97. {
  98. return $this->GetX();
  99. }
  100. public function convert($string)
  101. {
  102. return Dever::convert($string);
  103. }
  104. /*
  105. name:可选参数,表示要储存的文件名。
  106. dest:可选参数,操作内容。
  107. 取值:
  108. I:将PDF文档直接在浏览器中显示。
  109. D:下载PDF文档。
  110. F:保存为本地文件。
  111. S:返回一个字符串值。
  112. */
  113. public function out($name, $dest = 'I')
  114. {
  115. $this->Output($this->convert($name), $dest);
  116. }
  117. }