Pdf и fb2 средствами php

327
.
Вот столкнулся с проблемой у меня ест тхт файл и мне нужно этот тхт файл сгенерирувать в форматы Pdf и fb2 средствами php.
Может кто знает как это сделать.
.
http://habrahabr.ru/post/170755/
.
Koenig
(\/)____o_O____(\/)
Foks, fb2 могу показать как сделал, правда с базы берет текст, сам допилишь под себя
<?php

/**
 * @package     JohnCMS
 * @link        http://johncms.com
 * @copyright   Copyright (C) 2008-2011 JohnCMS Community
 * @license     LICENSE.txt (see attached file)
 * @version     VERSION.txt (see attached file)
 * @author      http://johncms.com/about
 */

defined('_IN_JOHNCMS') or die('Error: restricted access');

ob_end_clean();
ob_start();

$type = isset($_GET['type']) && in_array($_GET['type'], array('txt', 'fb2')) ? $_GET['type'] : redir404();

$image_lib = file_exists('../files/library/images/big/' . $id . '.png') ? chunk_split(base64_encode(file_get_contents('../files/library/images/big/' . $id . '.png'))) : '';


switch ($type) {
    
case 'txt' :
$out .= mysql_result(mysql_query("select `text` from " . $db_tab_text . " where `id`=" . $id . " limit 1"), 0);
break;

case 'fb2' :
$out = '<?xml version="1.0" encoding="utf-8"?>' . PHP_EOL 
. '<FictionBook xmlns="http://www.gribuser.ru/xml/fictionbook/2.0" xmlns:l="http://www.w3.org/1999/xlink">' . PHP_EOL
. '<stylesheet type="text/css">' . PHP_EOL
. '.body{font-family : Verdana, Geneva, Arial, Helvetica, sans-serif;' . PHP_EOL
. '}' . PHP_EOL
. '.p{margin:0.5em 0 0 0.3em; padding:0.2em; text-align:justify;' . PHP_EOL
. '}' . PHP_EOL
. '</stylesheet>' . PHP_EOL
. '<description>' . PHP_EOL
. '<title-info>' . PHP_EOL
. '<genre>sf_history</genre>' . PHP_EOL
. '<author>' . PHP_EOL
. '<first-name>Имя автора</first-name>' . PHP_EOL
. '<last-name>Фамилия автора</last-name>' . PHP_EOL
. '</author>' . PHP_EOL
. '<book-title>Имя книги</book-title>' . PHP_EOL
. '<annotation></annotation>' . PHP_EOL
. '<date>Дата</date>' . PHP_EOL
. '<coverpage>' . PHP_EOL;

if ($image_lib) {
$out .= '<image l:href="#cover.png"/></coverpage>' . PHP_EOL;
}

$out .= '<lang>ru</lang>' . PHP_EOL
. '</title-info>' . PHP_EOL
. '<document-info>' . PHP_EOL
. '<author><nickname></nickname>' . PHP_EOL
. '</author>' . PHP_EOL
. '<program-used>Lib converter jcms</program-used>' . PHP_EOL
. '<date value=""></date>' . PHP_EOL
. '<src-url>http://johncms.com</src-url>' . PHP_EOL
. '<id></id>' . PHP_EOL
. '<version>1.0</version>' . PHP_EOL
. '<history><p>book</p></history>' . PHP_EOL
. '</document-info>' . PHP_EOL
. '</description>' . PHP_EOL
. '<body>' . PHP_EOL
. '<title>';
$out .= '<p>' . mysql_result(mysql_query("select `name` from " . $db_tab_text . " where `id`=" . $id . " limit 1"), 0) . '</p>' . PHP_EOL;
$out .= '</title>' . PHP_EOL
. '<section>';
$out .= '<p>' . str_replace('<p></p>' , '<empty-line/>', str_replace(PHP_EOL, '</p>' . PHP_EOL . '<p>' , mysql_result(mysql_query("select `text` from " . $db_tab_text . " where `id`=" . $id . " limit 1"), 0))) . '</p>' . PHP_EOL;
$out .= '</section>' . PHP_EOL
. '</body>' . PHP_EOL;

if ($image_lib) {
$out .= '<binary id="cover.png" content-type="image/png">' . PHP_EOL;
$out .= $image_lib;
$out .= '</binary>' . PHP_EOL;
}
$out .= '</FictionBook>';    
break;
}
 

echo $out;  
header ('Content-Type: application/octet-stream');
header('Content-Description: inline; File Transfer'); 
header('Content-Disposition: attachment; filename="book' . time() . '.' . $type . '";', false); 
header('Content-Transfer-Encoding: binary'); 
header('Content-Length: ' . ob_get_length());
ob_flush();
flush();
?>
.
Foks, ты пол не верно отметил при регистрации?
.
Jahak
Foks, FPDF тебе в помощь.

http://phpclub.ru/detail/article/fpdf - Введение в FPDF
.
Jahak
Есть ещё pdf.js.
.
L!MP, Да)
Всего: 7