обработка на pdf file с php

r_a_s

Registered
Здравейте, как мога да направя динамичен pdf файл, тоест имам някаква информация в mysql за обяви и на всяка обява, като я извеждам да има различна информация в pdf файл? Никога не съм правил такова нещо и нямам никаква представа, как може да стане?
 
r_a_s каза:
Здравейте, как мога да направя динамичен pdf файл, тоест имам някаква информация в mysql за обяви и на всяка обява, като я извеждам да има различна информация в pdf файл? Никога не съм правил такова нещо и нямам никаква представа, как може да стане?

Предполагам имаш елементарни познание по PHP и MySQL.
Трябва ти тази библиотека: http://www.fpdf.org/
После гледаш Tutorials и разбираш как става номера - http://www.fpdf.org/

В най-елементарния си вид:

Код:
<?php
require('fpdf.php');

$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Hello World!');
$pdf->Output();
?>
 
Благодаря ти, само че това ми отваря pdf файла като php страница.
Мен ме интересува, дали има начин да си е pdf файл, който да се сваля?
 
Свалих този class те са 4 файла, обаче в usage.php и Sql2PdfReport.class.php ми дава тези грешки - Warning: Unknown: failed to open stream: No such file or directory in Unknown on line 0

Fatal error: Unknown: Failed opening required 'E:/xampp/htdocs/Нова папка/usage.php' (include_path='.;E:\xampp\php\PEAR') in Unknown on line 0
 
r_a_s каза:
Свалих този class те са 4 файла, обаче в usage.php и Sql2PdfReport.class.php ми дава тези грешки - Warning: Unknown: failed to open stream: No such file or directory in Unknown on line 0

Fatal error: Unknown: Failed opening required 'E:/xampp/htdocs/Нова папка/usage.php' (include_path='.;E:\xampp\php\PEAR') in Unknown on line 0
Прочети как се конфигурира, провери си локалните пътища и като начало НЕ използвай имена на пътища/папки на кирилица по ред причини (като Нова папка-освен,че е на кирилица има и интервал, което трябва да е urlencoded, за да се подаде на браузъра), поне докато не го настроиш да работи...
 
Всичко съм направил както трябва, а ми дава тези грешки - Warning: fopen(/projects/rupom/phpclasses/sql2pdfreport/first_test.html): failed to open stream: No such file or directory in E:\xampp\htdocs\dsa\Sql2PdfReport.class.php on line 173
Can not open file /projects/rupom/phpclasses/sql2pdfreport/first_test.html

Даже направих тези папки /projects/rupom/phpclasses/sql2pdfreport/ с html файла и пак ми дава същите грешки :)
 
r_a_s каза:
Даже направих тези папки /projects/rupom/phpclasses/sql2pdfreport/ с html файла и пак ми дава същите грешки :)
Kak направи линукски път под windows? :lol: fopen опитва да отвори файл от Unix FS Can not open file /projects/rupom/phpclasses/sql2pdfreport/first_test.html
Това трябва да е E:\xampp\htdocs\dsa\projects\rupom\phpclasses\sql2pdfreport\
Папката ти е dsa , доколкото става ясно, а URL на класа в този случай е (ако си направил вярно горното) :
http://localhost/dsa/projects/rupom/phpclasses/sql2pdfreport/
При тебе пътищата са E:\xampp\htdocs\dsa\имена на файловете тук. Така трябва да е и в конфигурацията на класа, който ще използваш. Най-добре ползвай relative path, etc. /dsa/sql2pdfreport/
Дадох ти линк към отлични библиотеки. Този клас е със 100% одобрение. Не съм работил с него и нямам време да го разучавам вместо теб, защото и без това може да си избереш друго в крайна сметка. Автора дава support b blog-a cu.
Отдели му малко време да го разучиш, прочети му кода и ще имаш много повече полза, отколкото може да получиш във форума :)
 
r_a_s каза:
Благодаря ти, само че това ми отваря pdf файла като php страница.
Мен ме интересува, дали има начин да си е pdf файл, който да се сваля?


Това, което съм ти дал ще ти свърши работа според мен. Смисъл като дадеш Ctrl+S и ти записва .pdf файл. Ако теб те притеснява, че в браузъра е .php , спокойно можеш да го направиш на .pdf с .htaccess файл.
 
r_a_s каза:
Да, deam0n точно това ми трябва, как да го направя :)

Правиш .htaccess файл

Код:
RewriteEngine on
RewriteRule ^(.*)\.pdf$ $1.php

И когато отвориш http://tvoqtsait.com/file.pdf то един вид отваря все едно http://tvoqtsait.com/file.php
 
Мерси deam0n с .htaccess изглежда по-добре, с Ctrl + S става да се сваля въпроса е, че не всеки ще се сети да го направи и за това исках автоматично да сваля файла. С този код ми сваля празен pdf -
Код:
<?php
  $file = 'proba.php';

  if (file_exists($file)) {
  header('Content-Description: File Transfer');
  header('Content-Type: application/octet-stream');
  header("Content-Type: application/force-download");
  header('Content-Disposition: attachment; filename=' . urlencode(basename($file)));
  // header('Content-Transfer-Encoding: binary');
  header('Expires: 0');
  header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
  header('Pragma: public');
  header('Content-Length: ' . filesize($file));
  ob_clean();
 flush();
  readfile($file);
 exit;
}
?>
 
Код:
<?php
header('Content-disposition: attachment; filename=proba.php');
header('Content-type: application/pdf');
readfile('proba.php');
?>

Така става ли?
 
ццц то ми го сваля ама като proba.php, а на тази страница ми е pdf-a и трябва да се сваля само той, а то ми сваля самата страница :)
 
r_a_s каза:
ццц то ми го сваля ама като proba.php, а на тази страница ми е pdf-a и трябва да се сваля само той, а то ми сваля самата страница :)

Добре от твоя код ако махнеш exit() какво става?
 
Явно не четете документацията на FPDF, и по-специално какво е казано за Output() метода:

Output

string Output([string name, string dest])
Description

Send the document to a given destination: browser, file or string. In the case of browser, the plug-in may be used (if present) or a download ("Save as" dialog box) may be forced.
The method first calls Close() if necessary to terminate the document.
Parameters

name
The name of the file. If not specified, the document will be sent to the browser (destination I) with the name doc.pdf.

dest
Destination where to send the document. It can take one of the following values:
I: send the file inline to the browser. The plug-in is used if available. The name given by name is used when one selects the "Save as" option on the link generating the PDF.
D: send to the browser and force a file download with the name given by name.]
F: save to a local file with the name given by name (may include a path).
S: return the document as a string. name is ignored.

С други думи:

PHP:
$pdf->Output("some-file-name.pdf", "D");
 

Back
Горе