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

0

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

PDF_open_file ($p, $DocFile);

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

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

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

Теги:
pdf
web
pdflib

2 ответа

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 ().
1

Решение Rina 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(). Чтобы загрузить и установить шрифт, используйте

Ещё вопросы

Сообщество Overcoder
Наверх
Меню