обработка PDF файлов в php скриптах

12
verhmax
На сайте с 01.12.2005
Offline
191
6062

лобрый день. насчёт того что генерировать pdf файлы можно, то я уже знаю. а вот разбирать готовый pdf на части, извлекать картинки можно? если да, то ткните носом где читать.

DC
На сайте с 08.09.2007
Offline
17
#1

Насчёт картинок - точно не знаю, а вот текст можно вытягивать...

Для начала стоит посмотреть сюда http://php.net/manual/en/ref.pdf.php

там в комментах можно много интересного найти

а дальше нада гуглить на эту тему... ;)

самому интересно, но времени не хватает

Чудеса случаются... это вам любой программист скажет... Скрипты (php, mysql, javascript и т.д.) любой сложности и вёрстка на заказ т.: +38(099)0569716, icq: 296874736
T
На сайте с 19.12.2006
Offline
101
#2

Немного не в тему, хотя и про ПДФ.

Недавно понадобилось превьюшки из ПДФ-ок делать.

На сервере должен быть ImageMagic (встречается не так уж редко).



$sPDFFileOrig = 'test.pdf';
$sPDFThumbOut = 'test.png';

exec('convert "'.$sPDFFileOrig.'[0]" -colorspace RGB -geometry 200 "'.$sPDFThumbOut.'"' );

Получается симпатичная превьюшка первой страницы PDF файла 200 пикселей шириной.

А если нужна другая страница - просто ставим ее номер (начинается с нуля) здесь: [0]

V
На сайте с 15.02.2007
Offline
117
#3

http://pecl.php.net/package/haru

http://ru2.php.net/haru - документация

или

http://pecl.php.net/package/pdflib

http://ru2.php.net/manual/ru/book.pdf.php - документация

Это поможет, модули PECL^а ... естественно должены быть установлены на сервере.

Progr@mmer\.
На сайте с 14.10.2007
Offline
44
#4

Offtopic:

telemad, может знайте как по средствам ImageMagic сделать превью к флэшке? Скиньте, пожалуйста в личку.

Вашей девушке не хватает романтики? Черпните её на сайте «Я Люблю Романтику» (http://iloveromantics.ru/). Романтический форум (http://forum.iloveromantics.ru/) для отдыха от нудной работы.
verhmax
На сайте с 01.12.2005
Offline
191
#5

а как можно склеить два pdf файла? тоесть есть заглавная страница (это один файл) и остальные страницы в другом файле. надо склеить эти два pdf и получить один. как это можно сделать?

T
На сайте с 19.12.2006
Offline
101
#6
Progr@mmer\.:
Offtopic:
telemad, может знайте как по средствам ImageMagic сделать превью к флэшке? Скиньте, пожалуйста в личку.

скинул.

здесь продублирую, может кто-нить тоже интересуется.

Оказывается, это не так просто, как кажется.

ImageMagick не может делать превьюшки из флешевых роликов. Он вообще плоховато с флешем работает пока (по мнению некоторых форумчан имиджмаджика).

Есть способ конвертации флеша в картинки - что-то типа флешевого actionscript, который читает swf, делает принтскрин и передает POST-ом данные скрипту PHP, который и создает на основе переданных данных картинку (используется GD).

Вроде, очень ресурсоемкая процедура.

Вот, нашел в нете немного (все на буржуйском):

http://www.sephiroth.it/tutorials/fl...reen/index.php

http://forum.sephiroth.it/forumdispl...f=8&order=desc

http://jerryscript.hostrocket.com/fl...wing2JPEG.html

verhmax
На сайте с 01.12.2005
Offline
191
#7

у меня ещё проблема со вставкой картинки в pdf файл

$pdf = pdf_new();

pdf_open_file($pdf, 'test12.pdf');

pdf_begin_page($pdf, 500, 700);

$im = pdf_open_image_file($pdf, "png", "logo.png");

pdf_place_image($pdf, $im, 50, 150, 1.0);

pdf_close_image($pdf, $im);

pdf_end_page($pdf);

pdf_close($pdf);

$data = pdf_get_buffer($pdf);

header("Content-type: application/pdf");

header("Content-disposition: inline; filename=test12.pdf");

header("Content-length: " . strlen($data));

echo $data;

документ создаётся, но он повреждён:( почему так? в чём проблема?

T
На сайте с 19.12.2006
Offline
101
#8
verhmax:
у меня ещё проблема со вставкой картинки в pdf файл

$pdf = pdf_new();
pdf_open_file($pdf, 'test12.pdf');
pdf_begin_page($pdf, 500, 700);

$im = pdf_open_image_file($pdf, "png", "logo.png");
pdf_place_image($pdf, $im, 50, 150, 1.0);
pdf_close_image($pdf, $im);

pdf_end_page($pdf);
pdf_close($pdf);

$data = pdf_get_buffer($pdf);
header("Content-type: application/pdf");
header("Content-disposition: inline; filename=test12.pdf");
header("Content-length: " . strlen($data));
echo $data;


документ создаётся, но он повреждён:( почему так? в чём проблема?

попробуйте сперва $data = pdf_get_buffer($pdf) сделать

а потом уже закрывать pdf_close($pdf) и освобождать ресурсы

кстати,

PDF_close -- Close pdf resource [deprecated]

This function is deprecated since PDFlib version 6, use PDF_end_document() instead.

verhmax
На сайте с 01.12.2005
Offline
191
#9

результат не поменялся, а вот насчёт pdf_close я особо не разобрался

verhmax добавил 15.05.2008 в 17:10

может от версии зависит?

у меня вот такое стоит

PDF Support enabled

PDFlib GmbH Binary-Version 7.0.0p3

PECL Version 2.1.3

Revision $Revision: 1.5 $

T
На сайте с 19.12.2006
Offline
101
#10

попробуйте этот код.

и гляньте, все ли в порядке с созданной пдф-кой (test.pdf)


$pdf = pdf_new();
PDF_begin_document($pdf, 'test12.pdf');
PDF_begin_page_ext($pdf, 500, 700);

$im = PDF_load_image($pdf, "png", "logo.png");
PDF_fit_image($pdf, $im, 50, 150);
PDF_close_image($pdf, $im);

PDF_end_page($pdf);
$data = PDF_get_buffer($pdf);
PDF_end_document($pdf);

$filename = 'test.pdf';
$handle = fopen($filename, 'w+');
fwrite($handle, $data);
fclose($handle);
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий