pdflib: показать в браузере и одновременно сохранить на сервере pdf файл

Кто-нибудь знает, как шоу в браузере и спасти на сервере в то же время PDF-файл?
Я использую PHP и PDFLIB для создания PDF,
и в начале я делаю:

PDF_open_file ($p, $DocFile);

Где $ DocFile указывает место на сервере, где я пишу PDF.
И в конце, когда я закончил генерировать PDF, чтобы сохранить PDF где-нибудь на сервере, я делаю:

$b = PDF_close ($p);
$b = PDF_delete ($p);

Я могу сохранить файл на сервере, но сейчас я хочу сохранить файл pdf на сервере и одновременно отобразить его в браузере.
Как я могу это сделать?
Я использую Pdflib v7 с php v5.

0

Решение

Я нашел себе решение, я положил его сюда, если кому-то нужно:


<?
PDF_open_file ($p, "/tmp/test.pdf");
$pdf = pdf_new();
pdf_open_file($pdf, "/tmp/test.pdf");
pdf_set_info($pdf, "Author", "Horvath Tamas");
pdf_set_info($pdf, "Title", "Szamla");
pdf_set_info($pdf, "Creator", "ARBOMedia.net Kft");
pdf_set_info($pdf, "Subject", "Szamla");
pdf_begin_page($pdf, 595, 842);
pdf_add_outline($pdf, "Page 1");
pdf_set_font($pdf, "Times-Roman", 30, "host");
pdf_set_value($pdf, "textrendering", 1);
pdf_show_xy($pdf, "Hello world", 50, 750);
pdf_moveto($pdf, 50, 740);
pdf_lineto($pdf, 330, 740);
pdf_stroke($pdf);
pdf_end_page($pdf);
pdf_close($pdf);
pdf_delete($pdf);
$len = filesize("/tmp/test.pdf");
header("Content-type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=test.pdf");
readfile("/tmp/test.pdf");
?>

2

Другие решения

Решение, которое предлагает Rina Certi, в целом подходит (за исключением некоторого неправильного использования некоторых API), но вы можете сделать это и наоборот:

  • создать PDF в памяти
  • извлечь файл PDF через PDF_get_buffer () из памяти и отправить его клиенту а также сохраните эти данные на диск, используя PHP fwrite () или file_put_contents ().

Кстати, PDF_open_file (), PDF_close () устарели начиная с PDFlib 6.
Пожалуйста, используйте взамен PDF_begin_document () и PDF_end_document ().
Чтобы загрузить и установить шрифт, пожалуйста, используйте

1

По вопросам рекламы [email protected]