17
17
18
18
namespace Vianetz \Pdf \Model ;
19
19
20
- class PdfMerge
20
+ use Vianetz \Pdf \Model \Merger \Fpdi ;
21
+ use Vianetz \Pdf \NoDataException ;
22
+
23
+ class PdfMerge implements PdfInterface
21
24
{
22
25
/** @var \Vianetz\Pdf\Model\MergerInterface */
23
26
private $ merger ;
24
27
25
- public function __construct (MergerInterface $ merger )
28
+ /** @var int */
29
+ private $ pageCount = 0 ;
30
+
31
+ public function __construct (MergerInterface $ merger = null )
26
32
{
33
+ if ($ merger === null ) {
34
+ $ merger = new Fpdi ();
35
+ }
36
+
27
37
$ this ->merger = $ merger ;
28
38
}
29
39
30
40
/**
31
41
* @return \Vianetz\Pdf\Model\PdfMerge
32
42
*/
33
- public static function createWithMerger (MergerInterface $ merger )
43
+ public static function create (MergerInterface $ merger = null )
34
44
{
35
45
return new self ($ merger );
36
46
}
37
47
48
+ /**
49
+ * @deprecated
50
+ * @return \Vianetz\Pdf\Model\PdfMerge
51
+ */
52
+ public static function createWithMerger (MergerInterface $ merger )
53
+ {
54
+ return self ::create ($ merger );
55
+ }
56
+
38
57
/**
39
58
* {@inheritDoc}
40
59
*
@@ -58,8 +77,8 @@ public function mergePdfFile($pdfFile, $pdfBackgroundFile = null, $pdfBackground
58
77
* {@inheritDoc}
59
78
*
60
79
* @param string $pdfString
61
- * @param null| string $pdfBackgroundFile
62
- * @param null| string $pdfBackgroundFileForFirstPage
80
+ * @param string|null $pdfBackgroundFile
81
+ * @param string|null $pdfBackgroundFileForFirstPage
63
82
*
64
83
* @return void
65
84
*/
@@ -68,6 +87,7 @@ public function mergePdfString($pdfString, $pdfBackgroundFile = null, $pdfBackgr
68
87
$ pageCount = $ this ->merger ->countPages ($ pdfString );
69
88
for ($ pageNumber = 1 ; $ pageNumber <= $ pageCount ; $ pageNumber ++) {
70
89
$ this ->merger ->addPage ();
90
+ $ this ->pageCount ++;
71
91
72
92
if ($ pageNumber === 1 && ! empty ($ pdfBackgroundFileForFirstPage )) {
73
93
$ this ->merger ->importBackgroundTemplateFile ($ pdfBackgroundFileForFirstPage );
@@ -80,10 +100,35 @@ public function mergePdfString($pdfString, $pdfBackgroundFile = null, $pdfBackgr
80
100
}
81
101
82
102
/**
103
+ * @deprecated use self::getContents() instead
104
+ *
83
105
* @return string
106
+ * @throws \Vianetz\Pdf\NoDataException
84
107
*/
85
108
public function getResult ()
86
109
{
110
+ return $ this ->getContents ();
111
+ }
112
+
113
+ /**
114
+ * {@inheritDoc}
115
+ */
116
+ final public function getContents ()
117
+ {
118
+ if ($ this ->pageCount === 0 ) {
119
+ throw new NoDataException ('No data to print. ' );
120
+ }
121
+
87
122
return $ this ->merger ->getPdfContents ();
88
123
}
124
+
125
+ /**
126
+ * {@inheritDoc}
127
+ */
128
+ final public function saveToFile ($ fileName )
129
+ {
130
+ $ pdfContents = $ this ->getContents ();
131
+
132
+ return @file_put_contents ($ fileName , $ pdfContents ) !== false ;
133
+ }
89
134
}
0 commit comments