2012-07-19 72 views
0

问题:需要将base64代码中的PNG图像转换为PDF文件,该文件从PHP文件textarea,一个PNG图像(带有扩展名的二进制文件.png - image.png)并将图像存储在服务器上。然后在PHP和FPDF类的帮助下生成一个PDF文件(example1.pdf),插入之前保存的PNG图像。生成的PDF文件也存储在服务器上。使用PHP生成PDF文件(包含PNG图像)

这里是文件createPdfFromBase64.php,我已经变成:

<?php 
    #header('Content-Type: image/png'); 

    $base64 = $_POST['base64']; // Получаем base64 код PNG изображения из <textarea id="base64" name="base64"></textarea> 

    #echo("$base64"); 

    $base64 = str_replace(' ','+',$base64); // If you want to save data that is derived from a Javascript canvas.toDataURL() function, you have to convert blanks into plusses. If you do not do that, the decoded data is corrupted. 

    $data = base64_decode($base64); // Декодирует данные base64 и записывает их в переменную $data 

    echo("$data"); 

    $filename = "image.png"; 

    // Пишем содержимое в файл image.png 
    file_put_contents($filename, $data); // Сохраняем изображение image.png на сервере 

    // Подключаем класс FPDF, для генерации PDF документа 
    require('/home/u552896297/public_html/FPDF/fpdf.php'); 

    // Создаем FPDF объект 
    $pdf= new FPDF(); 

    // Устанавливаем свойства документа 
    $pdf->SetAuthor('Evgeniy Privalov'); // Устанавливаем автора PDF документа. 
    $pdf->SetTitle('PDF generator'); // Устанавливаем title PDF документа. 

    // Настройки страницы. Теперь когда главное сделано, приступим к созданию страницы. 
    $pdf->AddPage('P'); // Книжная ориентация страницы 
    $pdf->SetDisplayMode('real','default'); //Функция SetDisplayMode определяет как будет отображена страница. Вы можете определить параметры увеличения и разметки. В примере мы используем 100% увеличение и разметку по умолчанию, определенную в программе, используемой для просмотра. 

    // Вставляем PNG картинку в верхний левый угол с разрешением в 300 точек на дюйм (300dpi) 
    $pdf->Image('image.png', 10, 10, -300); 

    // В конце мы выведем наш результат используя функцию Output 
    $pdf->Output('example1.pdf', 'F'); // Здесь мы указали имя файла и параметр вывода, в данном случае "F". "F"-параметр сохранит результат в файл example1.pdf 
?> 

index.html文件是在这里 - http://print-online.16mb.com/。必须先按“保存名片”(“Сохранитьвизитку”),然后单击“转换为PDF”(“КонвертироватьвPDF”)。

但是生成PDF文件时,错误FPDF错误:没有一个PNG文件:image.png

请帮我解决这个问题!

UPD: image.png文件是在服务器上创建的,但它不会出现在您的浏览器中! http://print-online.16mb.com/image.png

+0

您链接到的PNG文件不是有效的PNG文件。它是如何产生的? – ifunk 2012-07-19 11:35:11

+0

从base64数据:image/png; base64,iVBORw0KGgoAAAANSUhEUgAAAfQAAAH0CAYAAADL1t + KAAAgAElEQ ...与PHP函数base64_decode()和写入文件:file_put_contents($ filename,$ data); – eprivalov 2012-07-19 11:59:30

回答