Changes between Version 38 and Version 39 of TracWikiPrintPlugin
- Timestamp:
- Feb 8, 2013, 4:39:55 AM (11 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
TracWikiPrintPlugin
v38 v39 10 10 * Customizable front page for PDF book format 11 11 * Automatic creation of Table of Contents if ![[PageOutline]] or ![[TOC]] Macro is used 12 13 The style of the resulting PDF or HTML can be fully customized using CSS files. 12 * The style of the resulting PDF or HTML can be fully customized using CSS files. 14 13 15 14 == News == 15 * '''2013-02-07: Wiki'''. Cleaned up page and added more useful information. 16 16 * '''2011-09-26: Version 1.9.2'''. New option ''omit_macros'' to specify a list of macros to be removed on PDF. 17 17 * '''2011-09-23: Version 1.9.1'''. Included ''omit_links'' and ''rebase_links'' options in .ini section. … … 23 23 * '''2008-04-07: Version 1.1'''. Fix problems with images and attachments with no !wiki:PageName, now it should work. 24 24 25 == Usage instructions==25 == Install == 26 26 There are several '''dependencies''': 27 27 … … 35 35 To install dependencies (PIL/!!ReportLab/HTML5Lib/Pygments/pyPDF): 36 36 37 * Debian:37 * On Debian/Ubuntu: 38 38 * `aptitude install python-imaging python-reportlab python-html5lib python-pygments python-pypdf` 39 * Fedora:39 * On Fedora/Redhat: 40 40 * `yum install python-imaging python-reportlab python-html5lib python-pygments pyPdf` 41 41 … … 51 51 wikiprint.* = enabled 52 52 }}} 53 Whenenabled, two new administrative panels will be available under the '''Wikiprint''' section, and 3 new formats will be available in the ''Download in other formats'' section at the end of the wiki page:53 After enabled, two new administrative panels will be available under the '''Wikiprint''' section, and 3 new formats will be available in the ''Download in other formats'' section at the end of the wiki page: 54 54 55 55 * PDF Article … … 57 57 * Printable HTML 58 58 59 If you're behind a proxy, add something like this to your .wsgi file so '''remote''' resources can be downloaded when creating pdfs: 59 == Settings == 60 If you're behind a '''proxy''', add something like this to your .wsgi file so '''remote''' resources can be downloaded when creating pdfs: 60 61 61 62 {{{ … … 64 65 os.environ['no_proxy'] = '.company.com' 65 66 }}} 67 If you're using '''apache with authentication''', add something like this to your apache .conf file so '''local''' resources can be downloaded when creating pdfs (where `your.ip.address` is replaced with the output of `hostname -i`): 66 68 67 If you're using apache with authentication, add something like this to your apache .conf file so '''local''' resources can be downloaded when creating pdfs (where `your.ip.address` is replaced with the output of `hostname -i`):68 69 {{{ 69 70 ... … … 76 77 ... 77 78 }}} 78 79 Additional options can be set by creating a ''wikiprint'' section in ''trac.ini'': 79 Additional options can be set by creating a ''wikiprint'' section in ''trac.ini'' (you can specify either local paths or remote urls for css and html files): 80 80 81 81 {{{ 82 82 [wikiprint] 83 83 toc_title = Table of Contents 84 #CSS and content files (or URLS, using http://...) 85 css_url = c:/path/to/file.css 86 article_css_url = c:/path/to/article.css 87 book_css_url = c:/path/to/book.css 88 frontpage_url = c:/path/to/frontpage.html 89 extracontent_url = c:/path/to/extracontent.html 90 rebase_links = http://anotherserver.com/path 91 omit_links = False 92 84 css_url = /path/to/file.css 85 article_css_url = /path/to/article.css 86 book_css_url = /path/to/book.css 87 frontpage_url = /path/to/frontpage.html 88 extracontent_url = /path/to/extracontent.html 93 89 httpauth_user = wikiprint_user 94 90 httpauth_password = *password* 91 92 rebase_links = http://anotherserver.com/path 93 omit_links = false 95 94 }}} 96 95 Most of these options can be also set from the web administrative interface: … … 98 97 [[Image(wiki:TracWikiPrintPlugin:admin_options.jpg, 60%, border=1)]] 99 98 100 Not available in administrative interface yet: 99 === Customizing styles === 100 !WikiPrint allows customization of documents by three different options: 101 101 102 * ''' rebase_links''': When generating PDF or printable HTML, change the base URL to the base URL specified with this option. Useful for changing local references (something like "http://localhost:8080") to a global address (like http://mycompany.com/trac).103 * ''' omit_links''': Remove internal wiki links from generated PDFs.104 * ''' omit_macros''': A comma separated list of macro names that will be omited when converting the wiki document to the selected output (PDF or printable HTML).102 * '''css_url''': A path or URL to a file with CSS styles that will be applied to the exported output. If left blank, a default CSS is used. If you are creating a custom CSS, use the default CSS as start, and change as needed. Some tweaking is needed in order to make xhtml2pdf/PISA library generate PDF correctly. 103 * '''article_css_url''': A path or URL to a file with CSS styles that will be used only when exporting to '''PDF Article''' format. The default one defines the page margins, and creates ''header'' and ''footer'' frames, which contents will be defined in the ''extracontent_url'' file. 104 * '''book_css_url''': A path or URL to a file with CSS styles that will be used only when exporting to '''PDF Book''' format. The default one defines the default page with no header or footer, which will be used for the front page, and a ''standard'' templage page, which will be used for successive pages, with header and footer. 105 105 106 === Some notes === 107 ==== xhtml2pdf special tags and styles ==== 108 !WikiPrint works by converting one or some Wiki pages to HTML, adding some CSS styles and replacing special tags, and then passing the output to the xhtml2pdf library, so in order to understand how to customize the output using CSS, and to use some special html tags used by xhtml2pdf, you'll have to check the [attachment:"pisa-en.pdf" xhtml2pdf manual]. 106 For more information about the styles that affect the PDF output, see the [attachment:"pisa-en.pdf" xhtml2pdf manual]. 109 107 110 Also, check the default ''css'' and ''extra_content'' files, as they provide usage examples. To see the contents of the default files, leave the corresponding field blank in the administration panel, and click the '''View''' button. 108 === Customizing front page, header, footer, contents === 109 * '''frontpage_url''': A path or URL to a file with HTML ('''It doesn't have to be a well formed xhtml document, so don't include begin/end tags, body, etc., see the default one'''), that will be used as the front page when exporting to ''PDF Book''. Some special tags can be used to insert the title, version, date, etc. See ''Tag Replacement'' 110 * '''extracontent_url''': A path or URL to a file with HTML that will be inserted at the beginning of the document before passing it to to ''xhtml2pdf''. This should be used to define the contents of the '''header''' and '''footer'''. See xhtml2html documentation, and the default article CSS contents and default extra contents for an example. 111 111 112 ==== Images and links ==== 113 !WikiPrint exports the wiki format to HTML first, then converts the HTML to PDF using xhtml2pdf library. Links and image references in the wiki to html conversion are made as absolute URLS. 114 115 In order to generate the PDF, ''xhtml2pdf'' library will try to download the images from their absolute URL (exactly as your web browser would do). 116 117 For example, if you access the trac project from your browser using the URL http://myserver/trac/myproject, but address of ''myserver'' is locally resolved at your workstation (via /etc/hosts or similar), and not globally known, then ''xhtml2pdf'' will fail to resolve ''myserver'' and won't be able to download the images from http://myserver/trac/myproject/. In that case, use the server IP instead. 118 119 '''Authentication and permissions''' 120 121 When using cookie based authentication (like AccountManager), the ''xhtml2pdf'' library is given a temporary cookie to authenticate in behave of the user, so the conversion process will have the same permissions as the user downloading the .pdf, but '''you must make sure that the project URL is accessible locally from the trac server itself'''. 112 === Authentication === 113 When using cookie based authentication (like AccountManager), the ''xhtml2pdf'' library is given a temporary cookie to authenticate in behave of the user, so the conversion process will have the same permissions as the user downloading the .pdf, but '''you must make sure that the project URL is accessible locally from the trac server itself'''. 122 114 123 115 Optionally, is HTTP Basic or Digest authentication is used, wikiprint can be configured to log in using '''httpauth_user''' and '''httpauth_password''' options. 124 116 125 === Security Concerns === 117 === Not available in administrative interface yet: === 118 * '''rebase_links''': When generating PDF or printable HTML, change the base URL to the base URL specified with this option. Useful for changing local references (something like "http://localhost:8080") to a global address (like http://mycompany.com/trac). 119 * '''omit_links''': Remove internal wiki links from generated PDFs. 120 * '''omit_macros''': A comma separated list of macro names that will be omited when converting the wiki document to the selected output (PDF or printable HTML). 121 122 == Permissions == 126 123 Wikiprint defines three new permissions: 127 124 128 125 * WIKIPRINT_ADMIN: Allow users to acces the ''Wikiprint Options'' admin page, and configure wikiprint options. 129 126 * WIKIPRINT_BOOK: Allow users to access the ''Make Book'' admin page. 130 * WIKIPRINT_FILESYSTEM: When setting up header, footer, style, etc. the user can enter a path to a file from the file system. In order for this to work, the user must have this ''WIKIPRINT_FILESYSTEM'' permission. Otherwise, this could mean a security risk, as the user might display ''/etc/passwd'' or critical files. This is not a WikiPrint problem, as anyone with TRAC_ADMIN permissions would be able to install and run a potentially insecure plugin. So, make sure you trust users with TRAC_ADMIN permissions, and you give WIKIPRINT_FILESYSTEMpermission only to trusted users.127 * WIKIPRINT_FILESYSTEM: When setting up header, footer, style, etc. the user can enter a path to a file from the file system. In order for this to work, the user must have this ''WIKIPRINT_FILESYSTEM'' permission. Otherwise, this could mean a security risk, as the user might display ''/etc/passwd'' or critical files. This is not a WikiPrint problem, as anyone with TRAC_ADMIN permissions would be able to install and run a potentially insecure plugin. So, make sure you trust users with TRAC_ADMIN permissions, and you give WIKIPRINT_FILESYSTEM permission only to trusted users. 131 128 132 == = Export formats ===129 == Exporting and formats == 133 130 !WikiPrint adds several download formats to the bottom of the wiki page. Following is the description of the available formats. 134 131 135 === = PDF Article ====132 === PDF Article === 136 133 PDF article creates a PDF file out of the wiki page, with no ''front page''. Additional styles will be used from the CSS file defined in ''article_css'' option. 137 134 … … 140 137 PDF article can be used to combine several wiki pages too, from the administrative interface. 141 138 142 === = PDF Book ====143 This format will create a book-like PDF document. A front page that can show title, subject, date and version is inserted at the beginning of the document. A 'Table of Contents' is also inserted after the frontpage. Any further ocurrences of ![[PageOutline]] will be removed. Different wiki pages will be separated by a page break.139 === PDF Book === 140 This format will create a book-like PDF document. A front page that can show title, subject, date and version is inserted at the beginning of the document. A 'Table of Contents' is also inserted after the front page. Any further ocurrences of ![[PageOutline]] will be removed. Different wiki pages will be separated by a page break. 144 141 145 142 This is specially useful for combining several wiki pages from the administrative interface: … … 147 144 [[Image(wiki:TracWikiPrintPlugin:admin_makebook.jpg, 60%, border=1)]] 148 145 149 === = Printable HTML ====150 This option will just convert to wiki text to HTML, and display it in the browser with some styles, so it can be printed directly from thebrowser.146 === Printable HTML === 147 This option will just convert to wiki text to HTML, and display it in the browser with some styles, so it can be printed directly from the browser. 151 148 152 149 === Combining pages === 153 When enabling the plugin, a new !WikiPrint panel will be available in administration. From this panel, you canselect a set of pages, and export them to any of the supported formats.150 When enabling the plugin, a new !WikiPrint panel will be available in administration. From this panel, you can select a set of pages, and export them to any of the supported formats. 154 151 155 152 You can specify a Title, Subject, Date and Version for the exported document. 156 153 157 154 === Tag replacement === 158 When defining the contents of the ''front page'' file (using HTML), or the ''extra contents'' file (HTML for header, footer or other frames), some special tags canbe used, and they will be replaced before exporting the document.155 When defining the contents of the ''front page'' file (using HTML), or the ''extra contents'' file (HTML for header, footer or other frames), some special tags can be used, and they will be replaced before exporting the document. 159 156 160 157 The following tags are supported: … … 165 162 * #VERSION: Replaced with the ''Version'' field when combining pages from the administrative interface, or the current page version when exporting from the wiki. 166 163 167 === Customizing styles === 168 !WikiPrint allows customization of documents by three different options: 164 == Notes == 165 === xhtml2pdf special tags and styles === 166 !WikiPrint works by converting one or some Wiki pages to HTML, adding some CSS styles and replacing special tags, and then passing the output to the xhtml2pdf library, so in order to understand how to customize the output using CSS, and to use some special html tags used by xhtml2pdf, you'll have to check the [attachment:"pisa-en.pdf" xhtml2pdf manual]. 169 167 170 * '''css_url''': A path or URL to a file with CSS styles that will be applied to the exported output. If left blank, a default CSS is used. If you are creating a custom CSS, use the default CSS as start, and change as needed. Some tweaking is needed in order to make xhtml2pdf/PISA library generate PDF correctly. 171 * '''article_css_url''': A path or URL to a file with CSS styles that will be used only when exporting to '''PDF Article''' format. The default one defines the page margins, and creates ''header'' and ''footer'' frames, which contents will be defined in the ''extracontent_url'' file. 172 * '''book_css_url''': A path or URL to a file with CSS styles that will be used only when exporting to '''PDF Book''' format. The default one defines the default page with no header or footer, which will be used for the front page, and a ''standard'' templage page, which will be used for successive pages, with header and footer. 168 Also, check the default ''css'' and ''extra_content'' files, as they provide usage examples. To see the contents of the default files, leave the corresponding field blank in the administration panel, and click the '''View''' button. 173 169 174 For more information about the styles that affect the PDF output, see the [attachment:"pisa-en.pdf" xhtml2pdf manual]. 170 === Images and links === 171 !WikiPrint exports the wiki format to HTML first, then converts the HTML to PDF using xhtml2pdf library. Links and image references in the wiki to html conversion are made as absolute URLS. 175 172 176 === Customizing front page, header, footer, contents === 177 * '''frontpage_url''': A path or URL to a file with HTML ('''It doesn't have to be a well formed xhtml document, so don't include begin/end tags, body, etc., see the default one'''), that will be used as the front page when exporting to ''PDF Book''. Some special tags can be used to insert the title, version, date, etc. See ''Tag Replacement'' 178 * '''extracontent_url''': A path or URL to a file with HTML that will be inserted at the beginning of the document before passing it to to ''xhtml2pdf''. This should be used to define the contents of the '''header''' and '''footer'''. See xhtml2html documentation, and the default article CSS contents and default extra contents for an example.173 In order to generate the PDF, ''xhtml2pdf'' library will try to download the images from their absolute URL (exactly as your web browser would do). 174 175 For example, if you access the trac project from your browser using the URL http://myserver/trac/myproject, but address of ''myserver'' is locally resolved at your workstation (via /etc/hosts or similar), and not globally known, then ''xhtml2pdf'' will fail to resolve ''myserver'' and won't be able to download the images from http://myserver/trac/myproject/. In that case, use the server IP instead. 179 176 180 177 == Bugs/Feature Requests == … … 191 188 == Patches == 192 189 === Windows & IIS === 193 If you should need to access the ressources locally and not via web browser (images, fonts), you may try the #9854 hotfix. Now in testing, please keep the ticket updated with results in order to release this.190 If you should need to access resources locally and not via web browser (images, fonts), you may try the #9854 hotfix. Now in testing, please keep the ticket updated with results in order to release this. 194 191 195 192 == Recent Changes == … … 197 194 198 195 == Author/Contributors == 199 '''Author:''' [wiki:airadier] [[BR]] '''Maintainer:''' [wiki:airadier] [[BR]] '''Contributors:''' 196 '''Author:''' [wiki:airadier] [[BR]] '''Maintainer:''' [wiki:airadier] [[BR]] '''Contributors:''' (always welcome!)