2017-02-12 1 views
1

Я хочу создать очень простой pdf с php, который будет загружен при загрузке страницы.Как создать pdf-файл с php?

Это моя страница pdf.php

<?php 
$p = PDF_new(); 

if (PDF_begin_document($p, "", "") == 0) { 
    die("Error: " . PDF_get_errmsg($p)); 
} 

PDF_set_info($p, "Creator", "hallo.php"); 
PDF_set_info($p, "Author", "Rainer Schaaf"); 
PDF_set_info($p, "Title", "Hallo Welt (PHP)!"); 

PDF_begin_page_ext($p, 595, 842, ""); 

$font = PDF_load_font($p, "Helvetica-Bold", "winansi", ""); 

PDF_setfont($p, $font, 24.0); 
PDF_set_text_pos($p, 50, 700); 
PDF_show($p, "Hallo Welt!"); 
PDF_continue_text($p, "(sagt PHP)"); 
PDF_end_page_ext($p, ""); 

PDF_end_document($p, ""); 

$buf = PDF_get_buffer($p); 
$len = strlen($buf); 

header("Content-type: application/pdf"); 
header("Content-Length: $len"); 
header("Content-Disposition: inline; filename=hallo.pdf"); 
print $buf; 

PDF_delete($p); 
?> 

Когда я загружаю pdf.php я получаю пустую страницу и ничего не происходит. Я что-то забыл?

+1

Вы забыли заглянуть в вашей страницу журнала ошибок HTTP серверов, где вы можете прочитать, какова фактическая проблема. – arkascha

+0

ah ok, ошибка: 'fatal error: Uncaught Error: Call to undefined function PDF_new()' – Jarla

+0

А, ок, это то, с чего вы можете начать, верно? PHP не предлагает некоторую встроенную функцию, создающую объект PDF, для этого вам нужно загрузить некоторую библиотеку. Обычными альтернативами являются 'tcpdf' или' fpdf', другие существуют. После того, как вы установили и включили эту библиотеку (вручную или автоматически), вы можете продолжить. – arkascha

ответ

0

Вот шаг за шагом учебник:

  1. скачать TCPDF: https://sourceforge.net/projects/tcpdf/
  2. Поместите скачанный папку tcpdf в той же папке, где у вас есть свой create-pdf.php.

Это пример для create-pdf.php:

<?php 

/** 
* Creates an example PDF TEST document using TCPDF 
* @package com.tecnick.tcpdf 
* @abstract TCPDF - Example: Default Header and Footer 
* @author Nicola Asuni 
* @since 2008-03-04 
*/ 

// Include the main TCPDF library (search for installation path). 
require_once('tcpdf/tcpdf.php'); 

// create new PDF document 
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); 

// set document information 
$pdf->SetCreator(PDF_CREATOR); 
$pdf->SetAuthor('Nicola Asuni'); 
$pdf->SetTitle('TCPDF Example 001'); 
$pdf->SetSubject('TCPDF Tutorial'); 
$pdf->SetKeywords('TCPDF, PDF, example, test, guide'); 

// set default header data 
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 001', PDF_HEADER_STRING, array(0,64,255), array(0,64,128)); 
$pdf->setFooterData(array(0,64,0), array(0,64,128)); 

// set header and footer fonts 
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN)); 
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); 

// set default monospaced font 
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED); 

// set margins 
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); 
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER); 
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER); 

// set auto page breaks 
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); 

// set image scale factor 
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); 

// set some language-dependent strings (optional) 
if (@file_exists(dirname(__FILE__).'/lang/eng.php')) { 
    require_once(dirname(__FILE__).'/lang/eng.php'); 
    $pdf->setLanguageArray($l); 
} 

// --------------------------------------------------------- 

// set default font subsetting mode 
$pdf->setFontSubsetting(true); 

// Set font 
// dejavusans is a UTF-8 Unicode font, if you only need to 
// print standard ASCII chars, you can use core fonts like 
// helvetica or times to reduce file size. 
$pdf->SetFont('dejavusans', '', 14, '', true); 

// Add a page 
// This method has several options, check the source code documentation for more information. 
$pdf->AddPage(); 

// set text shadow effect 
$pdf->setTextShadow(array('enabled'=>true, 'depth_w'=>0.2, 'depth_h'=>0.2, 'color'=>array(196,196,196), 'opacity'=>1, 'blend_mode'=>'Normal')); 

// Set some content to print 
$html = <<<EOD 
<h1>Welcome to <a href="http://www.tcpdf.org" style="text-decoration:none;background-color:#CC0000;color:black;">&nbsp;<span style="color:black;">TC</span><span style="color:white;">PDF</span>&nbsp;</a>!</h1> 
<i>This is the first example of TCPDF library.</i> 
<p>This text is printed using the <i>writeHTMLCell()</i> method but you can also use: <i>Multicell(), writeHTML(), Write(), Cell() and Text()</i>.</p> 
<p>Please check the source code documentation and other examples for further information.</p> 
<p style="color:#CC0000;">TO IMPROVE AND EXPAND TCPDF I NEED YOUR SUPPORT, PLEASE <a href="http://sourceforge.net/donate/index.php?group_id=128076">MAKE A DONATION!</a></p> 
EOD; 

// Print text using writeHTMLCell() 
$pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true); 

// --------------------------------------------------------- 

// Close and output PDF document 
// This method has several options, check the source code documentation for more information. 
$pdf->Output('example_001.pdf', 'I'); 

//============================================================+ 
// END OF FILE 
//============================================================+ 

Других примеров: https://tcpdf.org/examples/

Видеоурок:

+0

Я не думаю, что это необходимо. Стек не является личным блогом. –

+0

Я думал, что это полезно для других людей. Должен ли я удалить его? – Jarla

+0

Что вы подразумеваете под личным. Это из документации tcpdf, которую вы мне предложили – Jarla