1 ###############################################################################
3 # PDF¤òºîÀ®¤¹¤ë¥¢¥¯¥·¥ç¥ó¥Ï¥ó¥É¥é¡Ê¥Õ¥Ã¥¯¡Ë¥×¥é¥°¥¤¥ó
5 ###############################################################################
6 package plugin::pdf::PDFMaker;
10 use plugin::pdf::PDFParser;
12 #==============================================================================
14 #==============================================================================
18 return bless $self,$class;
21 #==============================================================================
22 # ¥¢¥¯¥·¥ç¥ó¥Ï¥ó¥É¥é¡ÊPDF¥á¥Ë¥å¡¼²¡²¼»þ¡Ë
23 #==============================================================================
27 $self->{dir} = $wiki->config('pdf_dir');
28 my $cgi = $wiki->get_CGI;
30 my $pagename = $cgi->param("page");
32 $pagename = $wiki->config("frontpage");
35 # ¥Ú¡¼¥¸¤¬Â¸ºß¤¹¤ë¤«¥Á¥§¥Ã¥¯
36 unless($wiki->page_exists($pagename)){
37 return $wiki->error("¥Ú¡¼¥¸¤¬¤¢¤ê¤Þ¤»¤ó¡£");
39 # »²¾È¸¢¤¬¤¢¤ë¤«¤É¤¦¤«¥Á¥§¥Ã¥¯
40 unless($wiki->can_show($pagename)){
41 return $wiki->error("¥Ú¡¼¥¸¤Î»²¾È¸¢¸Â¤¬¤¢¤ê¤Þ¤»¤ó¡£");
44 my $filename = $self->{dir}."/".&Util::url_encode($pagename).".pdf";
47 $self->make_pdf($pagename,$wiki->get_page($pagename),$wiki);
50 my $pdftime = (stat($filename))[9];
51 my $wikitime = $wiki->get_last_modified($pagename);
52 if($pdftime < $wikitime){
53 $self->make_pdf($pagename,$wiki->get_page($pagename),$wiki);
57 $pagename =~ tr|/";|-':|; # ´ö¤Ä¤«ÃÖ´¹½èÍý¤ò¤¹¤ë
59 print "Pragma: no-cache\n";
60 print "Cache-Control: no-cache\n";
61 print "Content-Type: application/pdf\n";
62 print Util::make_content_disposition("$pagename.pdf", "inline");
63 open(DATA,$filename) or die $!;
73 #==============================================================================
75 #==============================================================================
81 my $parser = plugin::pdf::PDFParser->new($wiki,$page);
82 $parser->parse($source);
83 $parser->save_file($self->{"dir"}."/".Util::url_encode($page).".pdf");