Modify

Opened 6 years ago

Closed 5 years ago

#3493 closed enhancement (fixed)

Support for downloading dynamic images through the webserver

Reported by: nagrigoriadis@… Owned by: grigi
Priority: normal Component: TracWikiToPdfPlugin
Severity: normal Keywords:
Cc: andreasgebhardt@… Trac Release: 0.11

Description

Since a significant number of images in our wiki is dynamicly generated images, such as emoticons and latex-math or similar, and there is no way to configure the current wikitopdf plugon to do it, I did a quick hack to wikitopdf.py to download the images to a temporary location and then use those.

Excuse the script oddness, I have never programmed in python before (I used wget to download the images)

Attached is the modified mikitopdf.py

Attachments (7)

wikitopdf.py (3.6 KB) - added by nagrigoriadis@… 6 years ago.
modified version to download all images from the webserver
wikitopdf_2.2_dynimg_css.patch (11.8 KB) - added by grigi 6 years ago.
Patch to add Downloading Images & enable Code highlighting wht using HTMLDoc 1.9
TestPage.txt (1.7 KB) - added by grigi 6 years ago.
Sample input
TestPage.pdf (156.7 KB) - added by grigi 6 years ago.
Sample Output - HTMLDoc 1.9
tracwikitopdfplugin.img-patch (4.2 KB) - added by andreasgebhardt@… 6 years ago.
support for TracMathPlugin and Graphviz Plugin, base_dir substituion
wikitopdf_2.2.2_dynimg_css.patch (12.4 KB) - added by grigi 6 years ago.
Update of patch for WikiToPdf 2.2.2
tracwikitopdf-dynimg.patch (13.4 KB) - added by iamer@… 6 years ago.
Patch to fix downloading images that have params in their name like "?width=" for example like the ones generated by google charts plugin.

Download all attachments as: .zip

Change History (18)

Changed 6 years ago by nagrigoriadis@…

modified version to download all images from the webserver

comment:1 Changed 6 years ago by nagrigoriadis@…

  • Type changed from defect to enhancement

comment:2 Changed 6 years ago by diorgenes

  • Trac Release changed from 0.10 to 0.11

Hi Nickolas,

Please, I need a patch file with your code.
Which trac version are you using?

Regards

Diorgenes F. Grzesiuk

comment:3 Changed 6 years ago by grigi

Hi Diorgenes

I'll re-do the code for that tomorrow, I was using Trac 0.11.
I'll see if I can do the code a bit cleaner. (and optional)

I also have some other changes where I work around some HTMLDoc limitations, and if using HTMLDoc 1.9 (unstable) it even does code highlighting.

Changed 6 years ago by grigi

Patch to add Downloading Images & enable Code highlighting wht using HTMLDoc 1.9

Changed 6 years ago by grigi

Sample input

Changed 6 years ago by grigi

Sample Output - HTMLDoc 1.9

comment:4 Changed 6 years ago by grigi

Hi Diorgenes

Added trac.ini options:

[wikitopdf]
tmp_dir = /tmp/wikitopdf
trac_uri = http://trac.blah.is.co.za
css_file = /var/lib/trac/IS/conf/htmldoc.css

both trac_uri and tmp_dir has to be defined for the dynamic image downloading to work. (Otherwise it uses the existing method, to not break upgrades)
the css_file points to a css file (included in patch) for HTMLDoc 1.9, so that code highlighting can work.

The patch also adds tables around div frames, so that the output looks closer to the wiki pages.

I know that there is a lot of changes, but you can take your time evaluating them.

Thanks,
Nickolas

comment:5 follow-up: Changed 6 years ago by grigi

[wikitopdf]
tmp_dir = /tmp/wikitopdf
trac_uri = http://trac.blah.is.co.za
css_file = /var/lib/trac/IS/conf/htmldoc.css

comment:6 in reply to: ↑ 5 Changed 6 years ago by diorgenes

  • Status changed from new to assigned

Replying to grigi:

[wikitopdf]
tmp_dir = /tmp/wikitopdf
trac_uri = http://trac.blah.is.co.za
css_file = /var/lib/trac/IS/conf/htmldoc.css

Hi

I need more time for study your contribution.
Just for now thank you.

Regards

Diorgenes F. Grzesiuk

comment:7 in reply to: ↑ description Changed 6 years ago by andreasgebhardt@…

  • Cc andreasgebhardt@… added
  • Type changed from enhancement to defect

Replying to nagrigoriadis@gmail.com:

Since a significant number of images in our wiki is dynamicly generated images, such as emoticons and latex-math or similar, and there is no way to configure the current wikitopdf plugon to do it, I did a quick hack to wikitopdf.py to download the images to a temporary location and then use those.

Hi everyone,

i had similar problems. In wikitopdf.py (45-50) the base_dir is set as prefix for image source.

45 	    imgpos = page.find('<img')
46 	
47 	    while imgpos != -1:
48 	        addrpos = page.find('src=',imgpos)
49 	        page = page[:addrpos+5] + base_dir + page[addrpos+5:]
50 	        imgpos = page.find('<img', addrpos)

But the image source is like https://localhost:8443/trac/sandbox/attachment/wiki/WikiStart/image.jpg. After adding base_dir, which points to the trac project, i had base_dirhttps://localhost:8443/trac/sandbox/attachment/wiki/WikiStart/071small.jpg which isn't the right image source. So i substitute the base trac uri by base_dir

abs_ref = (req or env).abs_href.base
href = (req or env).href.base

As result now i get !base_dir/attachment/wiki/WikiStart/image.jpg.

By the way i also added two options for supporting TracMathPlugin and GraphvizPlugin without downloading via wget. The options are

[wikitopdf]
graphviz_dir = 
tracmath_dir =

These are the direcories where the both plugins save there images. A patch file is added as attachment.

Best regards,
Andreas Gebhardt

Changed 6 years ago by andreasgebhardt@…

support for TracMathPlugin and Graphviz Plugin, base_dir substituion

Changed 6 years ago by grigi

Update of patch for WikiToPdf 2.2.2

comment:8 Changed 6 years ago by grigi

diorgenes, Do you need me to split the patch into several small parts? I would like to get as much of this into the mainline version.

Changed 6 years ago by iamer@…

Patch to fix downloading images that have params in their name like "?width=" for example like the ones generated by google charts plugin.

comment:9 Changed 6 years ago by grigi

Just a note:
htmldoc version htmldoc-1.9.x-r1586 has broken headers/footers, version htmldoc-1.9.x-r1563 works fine.

You only need the unstable 1.9 version if you want syntax highlighting and/or css support.

comment:10 Changed 5 years ago by grigi

  • Owner changed from diorgenes to grigi
  • Status changed from assigned to new
  • Type changed from defect to enhancement

This ticket's patches has been added to the svn repos.
Leaving ticket open until updating documentation.

comment:11 Changed 5 years ago by grigi

  • Resolution set to fixed
  • Status changed from new to closed

Add Comment

Modify Ticket

Action
as closed .
as The resolution will be set. Next status will be 'closed'.
to The owner will be changed from grigi. Next status will be 'closed'.
The resolution will be deleted. Next status will be 'reopened'.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.