2014-11-20 6 views
0

ли кто-нибудь знает, как показать в браузере и Сохранить на сервере в то же время файл PDF? Я использую PHP и PDFLib для создания PDF, и в начале я делать:PDFlib: Показать в браузере и сохранить на сервере в то же время PDF-файл

PDF_open_file ($p, $DocFile);

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

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

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

ответ

2

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

<? 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"); ?>

+0

PDF_open_file(), PDF_begin_page() и PDF_end_page(), PDF_add_outline() устарели с давних времен (PDFlib 6). Используйте вместо этого PDF_begin_document(), PDF_begin_page_ext(), PDF_end_page_ext() или PDF_create_bookmark(). PDF_set_font() не является допустимой функцией PDFlib. Чтобы загрузить и установить шрифт, используйте PDF_load_font(), а также PDF_setfont(), где вы применяете дескриптор шрифта, который вы получаете из PDF_load_font(). – Rainer

1

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

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

BTW, PDF_open_file(), PDF_close() являются устаревшими, поскольку PDFlib 6. Пожалуйста, используйте PDF_begin_document() и PDF_end_document() вместо этого. Для загрузки и установки шрифта используйте

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