[dokuwiki] Re: pdf export
- From: Heikko Ellermaa <heikko.ellermaa@xxxxxxxxxxxxx>
- To: dokuwiki@xxxxxxxxxxxxx
- Date: Wed, 30 Aug 2006 18:18:24 +0300
Ah, bugger, this require line is not needed. Always introduce yourself
with buggy code, right ;-) Sorry, my bad and thanks. Corrected file is
attached.
This is my configuration:
// Path to Ghostscript executable
define('GS_PATH','/usr/bin/gs');
// Path to font metric files (AFM files).
// NOTE: Trailing backslash required
define('TYPE1_FONTS_REPOSITORY',HTML2PS_DIR."/fonts");
The afm files were already present there, additionally I copied
according ttf font files manually to the same folder. Seemed to work.
But overall, to get the html2pdf library working, try first with the
/demo/index.php script supplied by them. It has a web form where you can
fiddle with different options and so...
br,
Heikko
Guy Sheffer wrote:
Hi Heikko,
I tried here to fiddle about with this code,
for a start the script "destination.prodownload.class.php"
doesn't seem to be present. I only found
"destination.download.class.php".
I seem to have got it all running with the folowing configuration in the
config file:
// Path to Ghostscript executable
define('GS_PATH','/usr/bin/gs');
// Path to font metric files (AFM files).
// NOTE: Trailing backslash required
define('TYPE1_FONTS_REPOSITORY',"/usr/share/fonts/type1/gsfonts/");
However it only returned a blank pdf page.
Guy
On Wed, 2006-08-30 at 12:18 +0300, Heikko Ellermaa wrote:
Hi!
I created a simple (well, more or less) solution to get the wiki
content
into a pdf file. Now I'm asking for comments, suggestions and a
second
opinion.
Here's what worked for me:
1) I donwloaded the "html2ps and html2pdf" PHP library from
http://www.tufat.com/script19.htm. It worked amazingly vell for
almost
every html page I tested it with (has image support, loads of options
and so on)
2) Based on the samples in html2pdf I created the attached
url2pdf.php
script into 'samples' directory of html2pdf and configured the whole
thing work in my webserver.
3) Now we reach the connection to dokuwiki. In the main.php I added
manually a PDF button (I really could not find a way to create the
button automagically with dokuwiki scripts as these allowed only
posting
to dokuwiki itself). So here's the listing of the PDF button code
which
I placed right after the History button:
<form class="button" method="get"
action="http://localhost/html2pdf/samples/url2pdf.php"><div
class="no"><input type="hidden" name="url" value="<?=
"http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] ?>" /><input
type="submit" value="Save as PDF" class="button" title="ALT+F"
accesskey="f" /></div></form>
4) The result - I have button which prompts me of saving the page as
PDF. Very useful. And quite clean.
So it's kind of a hack, and I am writing because if there's a better
way
to create the button and to know the _real_ _absolute_ url for the
current wiki page then please let me know. If you find it any other
way
useful or someone can import this to be a dokuwiki feature then this
would be even nicer.
best regards,
Heikko
IMPORTANT: The contents of this email and any attachments are
confidential. They are intended for the named recipient(s) only.
If you have received this email in error, please notify the system
manager or the sender immediately and do not disclose the contents to
anyone or make copies thereof.
*** PineApp scanned this email for viruses, vandals, and malicious
content. ***
HTML document attachment (url2pdf.php)
'print', 'renderimages' => true,
'renderforms' => true, 'renderlinks' => true,
'mode' => 'html', 'debugbox' => false,
'draw_page_border' => false ); $media =
Media::predefined('A4'); $media->set_landscape(false);
$media->set_margins(array('left' => 10,
'right' => 10, 'top' => 10,
'bottom' => 10)); $media->set_pixels(1024); $g_px_scale =
mm2pt($media->width() - $media->margins['left'] -
$media->margins['right']) / $media->pixels; $g_pt_scale = $g_px_scale
* 1.43; $pipeline = new Pipeline; $pipeline->fetchers[] = new
FetcherURL; $pipeline->data_filters[] = new DataFilterDoctype();
$pipeline->data_filters[] = new DataFilterUTF8("");
$pipeline->data_filters[] = new DataFilterHTML2XHTML;
$pipeline->parser = new ParserXHTML;
$pipeline->pre_tree_filters = array(); $pipeline->layout_engine = new
LayoutEngineDefault; $pipeline->post_tree_filters = array();
$pipeline->output_driver = new OutputDriverFPDF(); $time = time();
$pipeline->destination = new DestinationDownload($url);
$pipeline->process($url, $media); $message = sprintf("
Processing of '%s' completed in %u seconds", $url, time() - $time);
error_log($message); flush(); $time = time(); ?>
'print',
'renderimages' => true,
'renderforms' => true,
'renderlinks' => true,
'mode' => 'html',
'debugbox' => false,
'draw_page_border' => false
);
$media = Media::predefined('A4');
$media->set_landscape(false);
$media->set_margins(array('left' => 10,
'right' => 10,
'top' => 10,
'bottom' => 10));
$media->set_pixels(1024);
$g_px_scale = mm2pt($media->width() - $media->margins['left'] - $media->margins['right']) / $media->pixels;
$g_pt_scale = $g_px_scale * 1.43;
$pipeline = new Pipeline;
$pipeline->fetchers[] = new FetcherURL;
$pipeline->data_filters[] = new DataFilterDoctype();
$pipeline->data_filters[] = new DataFilterUTF8("");
$pipeline->data_filters[] = new DataFilterHTML2XHTML;
$pipeline->parser = new ParserXHTML;
$pipeline->pre_tree_filters = array();
$pipeline->layout_engine = new LayoutEngineDefault;
$pipeline->post_tree_filters = array();
$pipeline->output_driver = new OutputDriverFPDF();
$time = time();
$pipeline->destination = new DestinationDownload($url);
$pipeline->process($url, $media);
$message = sprintf("
Processing of '%s' completed in %u seconds", $url, time() - $time);
error_log($message);
flush();
$time = time();
?>
- Follow-Ups:
- [dokuwiki] Re: pdf export
- From: Guy Sheffer
- References:
- [dokuwiki] Re: pdf export
- From: Guy Sheffer
Other related posts:
- » [dokuwiki] pdf export
- » [dokuwiki] Re: pdf export
- » [dokuwiki] Re: pdf export
- » [dokuwiki] pdf export
- » [dokuwiki] Re: pdf export
- » [dokuwiki] Re: pdf export
- » [dokuwiki] Re: pdf export
- » [dokuwiki] Re: pdf export
- » [dokuwiki] Re: pdf export
- » [dokuwiki] Re: pdf export
- » [dokuwiki] Re: pdf export
- » [dokuwiki] Re: pdf export
- » [dokuwiki] Re: pdf export
- » [dokuwiki] Re: pdf export
- » [dokuwiki] Re: pdf export
- » [dokuwiki] Re: pdf export
- » [dokuwiki] Re: pdf export
- » [dokuwiki] Re: pdf export
- » [dokuwiki] Re: pdf export
- » [dokuwiki] Re: pdf export
- » [dokuwiki] Re: pdf export
Hi Heikko, I tried here to fiddle about with this code,
for a start the script "destination.prodownload.class.php" doesn't seem to be present. I only found "destination.download.class.php".
I seem to have got it all running with the folowing configuration in the config file:
// Path to Ghostscript executable
define('GS_PATH','/usr/bin/gs');// Path to font metric files (AFM files). // NOTE: Trailing backslash required
define('TYPE1_FONTS_REPOSITORY',"/usr/share/fonts/type1/gsfonts/");
However it only returned a blank pdf page.
Guy
On Wed, 2006-08-30 at 12:18 +0300, Heikko Ellermaa wrote:
contentHi!
I created a simple (well, more or less) solution to get the wiki
into a pdf file. Now I'm asking for comments, suggestions and asecond
almostopinion.
Here's what worked for me:
1) I donwloaded the "html2ps and html2pdf" PHP library from http://www.tufat.com/script19.htm. It worked amazingly vell for
every html page I tested it with (has image support, loads of options and so on)url2pdf.php
2) Based on the samples in html2pdf I created the attached
script into 'samples' directory of html2pdf and configured the whole thing work in my webserver.posting
3) Now we reach the connection to dokuwiki. In the main.php I added manually a PDF button (I really could not find a way to create the button automagically with dokuwiki scripts as these allowed only
to dokuwiki itself). So here's the listing of the PDF button codewhich
"http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] ?>" /><inputI placed right after the History button:
<form class="button" method="get" action="http://localhost/html2pdf/samples/url2pdf.php"><div class="no"><input type="hidden" name="url" value="<?=
type="submit" value="Save as PDF" class="button" title="ALT+F" accesskey="f" /></div></form>way
4) The result - I have button which prompts me of saving the page as PDF. Very useful. And quite clean.
So it's kind of a hack, and I am writing because if there's a better
to create the button and to know the _real_ _absolute_ url for the current wiki page then please let me know. If you find it any otherway
useful or someone can import this to be a dokuwiki feature then this would be even nicer.confidential. They are intended for the named recipient(s) only.
best regards, Heikko
IMPORTANT: The contents of this email and any attachments are
If you have received this email in error, please notify the systemmanager or the sender immediately and do not disclose the contents to
anyone or make copies thereof.
*** PineApp scanned this email for viruses, vandals, and maliciouscontent. ***
HTML document attachment (url2pdf.php)
'print', 'renderimages' => true,
'renderforms' => true, 'renderlinks' => true,
'mode' => 'html', 'debugbox' => false,
'draw_page_border' => false ); $media =
Media::predefined('A4'); $media->set_landscape(false);
$media->set_margins(array('left' => 10,
'right' => 10, 'top' => 10,
'bottom' => 10)); $media->set_pixels(1024); $g_px_scale =
mm2pt($media->width() - $media->margins['left'] -
$media->margins['right']) / $media->pixels; $g_pt_scale = $g_px_scale
* 1.43; $pipeline = new Pipeline; $pipeline->fetchers[] = new
FetcherURL; $pipeline->data_filters[] = new DataFilterDoctype();
$pipeline->data_filters[] = new DataFilterUTF8("");
$pipeline->data_filters[] = new DataFilterHTML2XHTML;
$pipeline->parser = new ParserXHTML;
$pipeline->pre_tree_filters = array(); $pipeline->layout_engine = new
LayoutEngineDefault; $pipeline->post_tree_filters = array();
$pipeline->output_driver = new OutputDriverFPDF(); $time = time();
$pipeline->destination = new DestinationDownload($url);
$pipeline->process($url, $media); $message = sprintf("
Processing of '%s' completed in %u seconds", $url, time() - $time);
error_log($message); flush(); $time = time(); ?>
- [dokuwiki] Re: pdf export
- From: Guy Sheffer
- [dokuwiki] Re: pdf export
- From: Guy Sheffer