*/
// must be run within Dokuwiki
if (!defined('DOKU_INC')) die();
if (!defined('DOKU_LF')) define('DOKU_LF', "\n");
if (!defined('DOKU_TAB')) define('DOKU_TAB', "\t");
require_once DOKU_INC.'inc/parser/xhtml.php';
class renderer_plugin_dw2pdf extends Doku_Renderer_xhtml {
private $lastheadlevel = -1;
private $current_bookmark_level = 0;
/**
* Make available as XHTML replacement renderer
*/
public function canRender($format){
if($format == 'xhtml') return true;
return false;
}
/**
* Simplified header printing with PDF bookmarks
*/
function header($text, $level, $pos) {
if(!$text) return; //skip empty headlines
$hid = $this->_headerToLink($text,true);
// add PDF bookmark
$bookmark = '';
$bmlevel = $this->getConf('maxbookmarks');
if($bmlevel && $bmlevel >= $level){
// PDF readers choke on invalid nested levels
if ($this->lastheadlevel == -1)
$this->lastheadlevel = $level;
$step = $level - $this->lastheadlevel;
if ($step > 0)
$this->current_bookmark_level += 1;
else if ($step <0) {
$this->current_bookmark_level -= 1;
if ($this->current_bookmark_level < 0)
$this->current_bookmark_level = 0;
}
$this->lastheadlevel = $level;
$bookmark = '