2015-08-07 6 views
0

У меня есть файл php, который сохраняет два изображения на сервер и создает pdf-файл этих сохраненных изображений с использованием dompdf. Я могу сохранить изображения в определенную папку, но не смог создать PDF. может кто-нибудь сказать мне, что я здесь делаю неправильно? Вот мой код.Невозможно создать PDF-файл с использованием DOMPDF

<?php 

ini_set('display_errors', 1); 
error_reporting(E_ALL^E_NOTICE); 
$data1 = $_POST['data1']; 
$data2 = $_POST['data2']; 

if(isset($data1)) { 
$uri1 = substr($data1,strpos($data1,",")+1); 
$uri2 = substr($data2,strpos($data2,",")+1); 

$path =$_SERVER["DOCUMENT_ROOT"].'/divya/custom_product/sites/default/files/cart'; 
$id = "test"; 
$type ="order"; 
$file1 = $path .'/'.$id.'-'.$type.'1.png'; 
$file2 = $path .'/'.$id.'-'.$type.'2.png'; 

$a=base64_decode($uri1); 
$b=base64_decode($uri2); 

file_put_contents($file1, $a); 
file_put_contents($file2, $b); 
} 
?> 
<?php 
require_once("dompdf_config.inc.php"); 
require_once("sites/all/modules/print/lib/dompdf/dompdf_config.inc.php"); 


$tbl = '<html style="margin:20px 20px 0px; padding:0;"> 
<body style="margin:0; padding:0;"> 

<table style="margin:0px 0px 5px 3px;"> 
<tr> 
<td style="width:220px;vertical-align:top;">'.$file1.'</td> 
<td style="width:220px;vertical-align:top;">'.$file2.'</td> 
</tr> 
</table> 

</body> 
</html>'; 
$dompdf = new DOMPDF; 
$dompdf->load_html($tbl); 
$dompdf->render(); 
$pdfoutput = $dompdf->output(); 
// Checks whether there is an output folder inside sites/default/files 
if (!is_dir('public://output')) { 
mkdir("public://output", 0777); 
// Creates a folder and changes its permissions} 
$filename = 'sites/default/files/output/' . 'sample.pdf' 
$fp = fopen($filename, "w+"); 
fwrite($fp, $pdfoutput); 
// Writes the pdf output to a file 
fclose($fp); 
?> 
+0

Так что нет ошибки/сбои здесь, просто нет PDF, где вы ожидаете? Как выглядит $ pdfoutput? Это похоже на содержимое PDF или оно пустое? Кроме того, путь, который вы пишете, выглядит относительным, вы уверены, что можете попасть туда из своего рабочего каталога PHP? – killthrush

+0

Вы назвали этот код внутри любого js .. ??? – Abin

+0

@killthrush У меня есть файл js, где я показываю 2 изображения, которые я упоминал внутри 2 холстов. Затем изображения отправляются на php через ajax для сохранения на сервер. Я показал код выше в вопросе, где изображения получаются как data1 и data2 и сохраняется на сервере. Все это происходит без ошибок, но я не могу создать PDF этих изображений. – Aby

ответ

-2

Включили ли вы регистрацию ошибок? Журналы ошибок, много раз, говорят вам точно, что не так

+1

Это комментарий не ответ –

0

После просмотра DOMPDF wiki here я понял, что режим по умолчанию - это передать файл обратно клиенту, не обязательно сохранять его в файл , Поэтому я начал копать еще кое-что.

This question был опубликован раньше; они используют для вас аналогичный код, но для записи файла используйте гораздо более простой файл_put_contents(). По-прежнему стоит попытаться написать простой текстовый файл сначала в это место, чтобы исключить любые проблемы с файловой системой.

0

Вы не хватает круглые скобки в создании класса DOMPDF:

$dompdf = new DOMPDF(); 
+0

heh, good catch - я полностью пропустил это – killthrush

+0

В этом документе не говорится об этом, хотя это не является требованием для этого в PHP (если конструктор не принимает аргумент). Есть [несколько] (http://stackoverflow.com/q/1945989/264628) [вопросы] (http://stackoverflow.com/q/28914283/264628) на этом [topic] (http: // stackoverflow .com/д/9325491/264628). – BrianS

Смежные вопросы