mperez

Members
  • Content count

    15
  • Joined

  • Last visited

About mperez

  • Rank
    Junior Member
  1. Okay, i sent both the PNG and XML files to [email protected] with subject: Bug report: 15098-exported-svg-of-javscript-based-gantt-chart-has-zero-width-task-bars I set the attributes "exportAtClient" to '0' and "exportAction" to 'download' but i get the same result.
  2. Here's the XML used to generate my gantt chart. I've added line breaks for readability <chart caption="Project Schedule: By Contractor and Site" subcaption="Sun, Jun 23, 2013 to Fri, Jul 05, 2013" dateFormat="yyyy/mm/dd" outputDateFormat="mm/dd/yyyy" showTaskLabels="0" showPercentLabel="0" showSlackAsFill="0" animation="1" useVerticalScrolling="1" manageResize="1" taskBarFillMix="" taskBarFillRatio="" exportEnabled="1" exportShowMenuItem="0" exportHandler="/downloads/gantt" html5ExportHandler="/downloads/gantt" scrollToDate="June 23, 2013 00:00:00" ganttPaneDuration="13" ganttPaneDurationUnit="d"> <categories><category start="2013/06/01" end="2013/06/30 23:59:59" label="June"/><category start="2013/07/01" end="2013/07/31 23:59:59" label="July"/></categories> <categories><category start="2013/06/23" end="2013/06/23 23:59:59" label="23"/><category start="2013/06/24" end="2013/06/24 23:59:59" label="24"/><category start="2013/06/25" end="2013/06/25 23:59:59" label="25"/><category start="2013/06/26" end="2013/06/26 23:59:59" label="26"/> <category start="2013/06/27" end="2013/06/27 23:59:59" label="27"/><category start="2013/06/28" end="2013/06/28 23:59:59" label="28"/><category start="2013/06/29" end="2013/06/29 23:59:59" label="29"/><category start="2013/06/30" end="2013/06/30 23:59:59" label="30"/><category start="2013/07/01" end="2013/07/01 23:59:59" label="01"/><category start="2013/07/02" end="2013/07/02 23:59:59" label="02"/><category start="2013/07/03" end="2013/07/03 23:59:59" label="03"/><category start="2013/07/04" end="2013/07/04 23:59:59" label="04"/><category start="2013/07/05" end="2013/07/05 23:59:59" label="05"/></categories> <categories><category start="2013/06/23" end="2013/06/23 23:59:59" label="S" bgColor="808080"/><category start="2013/06/24" end="2013/06/24 23:59:59" label="M"/><category start="2013/06/25" end="2013/06/25 23:59:59" label="T"/><category start="2013/06/26" end="2013/06/26 23:59:59" label="W"/><category start="2013/06/27" end="2013/06/27 23:59:59" label="T"/><category start="2013/06/28" end="2013/06/28 23:59:59" label="F"/><category start="2013/06/29" end="2013/06/29 23:59:59" label="S" bgColor="808080"/><category start="2013/06/30" end="2013/06/30 23:59:59" label="S" bgColor="808080"/><category start="2013/07/01" end="2013/07/01 23:59:59" label="M"/><category start="2013/07/02" end="2013/07/02 23:59:59" label="T"/><category start="2013/07/03" end="2013/07/03 23:59:59" label="W"/><category start="2013/07/04" end="2013/07/04 23:59:59" label="T"/><category start="2013/07/05" end="2013/07/05 23:59:59" label="F"/></categories> <processes fontSize="12" isBold="1" align="right" headerFontSize="18" headerVAlign="bottom" headerAlign="center" headerText="Contractor/Site"><process label="Company A" id="proc_3" bgColor="#000000" fontColor="#ffffff"/><process label="Site 01" id="proc_3_37"/><process label="Site 02" id="proc_3_33"/><process label="Site 03" id="proc_3_35"/><process label="Site 04" id="proc_3_36"/><process label="Site 05" id="proc_3_34"/><process label="Site 06" id="proc_3_32"/><process label="Site 07" id="proc_3_38"/><process label="Company B" id="proc_4" bgColor="#000000" fontColor="#ffffff"/><process label="Site 03" id="proc_4_35"/><process label="Site 04" id="proc_4_36"/><process label="Site 05" id="proc_4_34"/><process label="Site 06" id="proc_4_32"/><process label="Site 01" id="proc_4_37"/><process label="Site 07" id="proc_4_38"/><process label="Site 02" id="proc_4_33"/><process label="Company C" id="proc_5" bgColor="#000000" fontColor="#ffffff"/><process label="Site 03" id="proc_5_35"/><process label="Site 04" id="proc_5_36"/><process label="Site 05" id="proc_5_34"/><process label="Site 06" id="proc_5_32"/><process label="Site 01" id="proc_5_37"/><process label="Site 08" id="proc_5_40"/><process label="Site 07" id="proc_5_38"/><process label="Site 09" id="proc_5_39"/><process label="Site 02" id="proc_5_33"/><process label="Company X" id="proc_81" bgColor="#000000" fontColor="#ffffff"/><process label="Site 01" id="proc_81_37"/><process label="Site 03" id="proc_81_35"/><process label="Site 04" id="proc_81_36"/><process label="Site 05" id="proc_81_34"/><process label="Site 06" id="proc_81_32"/><process label="Site 07" id="proc_81_38"/><process label="Site 02" id="proc_81_33"/><process label="Company Y" id="proc_93" bgColor="#000000" fontColor="#ffffff"/><process label="Site 04" id="proc_93_36"/><process label="Site 05" id="proc_93_34"/><process label="Site 06" id="proc_93_32"/><process label="Site 01" id="proc_93_37"/><process label="Site 07" id="proc_93_38"/><process label="Site 02" id="proc_93_33"/><process label="Site 03" id="proc_93_35"/><process label="Company Z" id="proc_94" bgColor="#000000" fontColor="#ffffff"/><process label="Site 02" id="proc_94_33"/><process label="Site 03" id="proc_94_35"/><process label="Site 04" id="proc_94_36"/><process label="Site 05" id="proc_94_34"/><process label="Site 06" id="proc_94_32"/><process label="Site 01" id="proc_94_37"/><process label="Site 08" id="proc_94_40"/><process label="Site 07" id="proc_94_38"/><process label="Site 09" id="proc_94_39"/></processes> <tasks><task start="2013/06/28 00:00:00" end="2013/07/01 23:59:59" label="" processId="proc_3" showAsGroup="1" showLabel="0" topPadding="70%" showStartDate="1" showEndDate="1" color="#000000"/><task start="2013/06/28 00:00:00" end="2013/07/01 23:59:59" label="Site 01" color="B2C8D9" processId="proc_3_37" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=3&sid=37&tci=0"/><task start="2013/07/01 00:00:00" end="2013/07/01 23:59:59" label="Site 02" color="B2C8D9" processId="proc_3_33" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=3&sid=33&tci=0"/><task start="2013/07/01 00:00:00" end="2013/07/01 23:59:59" label="Site 03" color="B2C8D9" processId="proc_3_35" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=3&sid=35&tci=0"/><task start="2013/07/01 00:00:00" end="2013/07/01 23:59:59" label="Site 04" color="B2C8D9" processId="proc_3_36" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=3&sid=36&tci=0"/><task start="2013/07/01 00:00:00" end="2013/07/01 23:59:59" label="Site 05" color="B2C8D9" processId="proc_3_34" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=3&sid=34&tci=0"/><task start="2013/07/01 00:00:00" end="2013/07/01 23:59:59" label="Site 06" color="B2C8D9" processId="proc_3_32" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=3&sid=32&tci=0"/><task start="2013/07/01 00:00:00" end="2013/07/01 23:59:59" label="Site 07" color="B2C8D9" processId="proc_3_38" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=3&sid=38&tci=0"/><task start="2013/06/24 00:00:00" end="2013/07/04 23:59:59" label="Site 07" processId="proc_4" showAsGroup="1" showLabel="0" topPadding="70%" showStartDate="1" showEndDate="1" color="#000000"/><task start="2013/06/24 00:00:00" end="2013/07/04 23:59:59" label="Site 03" color="74796F" processId="proc_4_35" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=4&sid=35&tci=1"/><task start="2013/06/25 00:00:00" end="2013/07/04 23:59:59" label="Site 04" color="74796F" processId="proc_4_36" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=4&sid=36&tci=1"/><task start="2013/06/25 00:00:00" end="2013/07/04 23:59:59" label="Site 05" color="74796F" processId="proc_4_34" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=4&sid=34&tci=1"/><task start="2013/06/25 00:00:00" end="2013/07/04 23:59:59" label="Site 06" color="74796F" processId="proc_4_32" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=4&sid=32&tci=1"/><task start="2013/06/25 00:00:00" end="2013/07/04 23:59:59" label="Site 01" color="74796F" processId="proc_4_37" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=4&sid=37&tci=1"/><task start="2013/06/25 00:00:00" end="2013/07/04 23:59:59" label="Site 07" color="74796F" processId="proc_4_38" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=4&sid=38&tci=1"/><task start="2013/06/25 00:00:00" end="2013/07/04 23:59:59" label="Site 02" color="74796F" processId="proc_4_33" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=4&sid=33&tci=1"/><task start="2013/06/24 00:00:00" end="2013/07/02 23:59:59" label="Site 02" processId="proc_5" showAsGroup="1" showLabel="0" topPadding="70%" showStartDate="1" showEndDate="1" color="#000000"/><task start="2013/06/24 00:00:00" end="2013/07/02 23:59:59" label="Site 03" color="BEA37A" processId="proc_5_35" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=5&sid=35&tci=2"/><task start="2013/06/24 00:00:00" end="2013/07/02 23:59:59" label="Site 04" color="BEA37A" processId="proc_5_36" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=5&sid=36&tci=2"/><task start="2013/06/24 00:00:00" end="2013/07/02 23:59:59" label="Site 05" color="BEA37A" processId="proc_5_34" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=5&sid=34&tci=2"/><task start="2013/06/24 00:00:00" end="2013/07/02 23:59:59" label="Site 06" color="BEA37A" processId="proc_5_32" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=5&sid=32&tci=2"/><task start="2013/06/24 00:00:00" end="2013/07/02 23:59:59" label="Site 01" color="BEA37A" processId="proc_5_37" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=5&sid=37&tci=2"/><task start="2013/06/24 00:00:00" end="2013/06/24 23:59:59" label="Site 08" color="BEA37A" processId="proc_5_40" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=5&sid=40&tci=2"/><task start="2013/06/24 00:00:00" end="2013/07/02 23:59:59" label="Site 07" color="BEA37A" processId="proc_5_38" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=5&sid=38&tci=2"/><task start="2013/06/24 00:00:00" end="2013/06/24 23:59:59" label="Site 09" color="BEA37A" processId="proc_5_39" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=5&sid=39&tci=2"/><task start="2013/06/24 00:00:00" end="2013/07/02 23:59:59" label="Site 02" color="BEA37A" processId="proc_5_33" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=5&sid=33&tci=2"/><task start="2013/06/26 00:00:00" end="2013/07/03 23:59:59" label="Site 02" processId="proc_81" showAsGroup="1" showLabel="0" topPadding="70%" showStartDate="1" showEndDate="1" color="#000000"/><task start="2013/06/26 00:00:00" end="2013/07/03 23:59:59" label="Site 01" color="5C9746" processId="proc_81_37" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=81&sid=37&tci=3"/><task start="2013/06/27 00:00:00" end="2013/07/03 23:59:59" label="Site 03" color="5C9746" processId="proc_81_35" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=81&sid=35&tci=3"/><task start="2013/06/27 00:00:00" end="2013/07/03 23:59:59" label="Site 04" color="5C9746" processId="proc_81_36" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=81&sid=36&tci=3"/><task start="2013/06/27 00:00:00" end="2013/07/03 23:59:59" label="Site 05" color="5C9746" processId="proc_81_34" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=81&sid=34&tci=3"/><task start="2013/06/27 00:00:00" end="2013/07/03 23:59:59" label="Site 06" color="5C9746" processId="proc_81_32" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=81&sid=32&tci=3"/><task start="2013/06/27 00:00:00" end="2013/07/03 23:59:59" label="Site 07" color="5C9746" processId="proc_81_38" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=81&sid=38&tci=3"/><task start="2013/06/27 00:00:00" end="2013/07/03 23:59:59" label="Site 02" color="5C9746" processId="proc_81_33" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=81&sid=33&tci=3"/><task start="2013/06/24 00:00:00" end="2013/07/03 23:59:59" label="Site 02" processId="proc_93" showAsGroup="1" showLabel="0" topPadding="70%" showStartDate="1" showEndDate="1" color="#000000"/><task start="2013/06/24 00:00:00" end="2013/07/03 23:59:59" label="Site 04" color="FFF8A3" processId="proc_93_36" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=93&sid=36&tci=4"/><task start="2013/06/24 00:00:00" end="2013/07/03 23:59:59" label="Site 05" color="FFF8A3" processId="proc_93_34" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=93&sid=34&tci=4"/><task start="2013/06/24 00:00:00" end="2013/07/03 23:59:59" label="Site 06" color="FFF8A3" processId="proc_93_32" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=93&sid=32&tci=4"/><task start="2013/06/24 00:00:00" end="2013/07/03 23:59:59" label="Site 01" color="FFF8A3" processId="proc_93_37" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=93&sid=37&tci=4"/><task start="2013/06/24 00:00:00" end="2013/07/03 23:59:59" label="Site 07" color="FFF8A3" processId="proc_93_38" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=93&sid=38&tci=4"/><task start="2013/06/24 00:00:00" end="2013/07/03 23:59:59" label="Site 02" color="FFF8A3" processId="proc_93_33" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=93&sid=33&tci=4"/><task start="2013/06/24 00:00:00" end="2013/07/03 23:59:59" label="Site 03" color="FFF8A3" processId="proc_93_35" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=93&sid=35&tci=4"/><task start="2013/06/24 00:00:00" end="2013/07/02 23:59:59" label="Site 03" processId="proc_94" showAsGroup="1" showLabel="0" topPadding="70%" showStartDate="1" showEndDate="1" color="#000000"/><task start="2013/06/24 00:00:00" end="2013/07/02 23:59:59" label="Site 02" color="D84000" processId="proc_94_33" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=94&sid=33&tci=5"/><task start="2013/06/24 00:00:00" end="2013/07/02 23:59:59" label="Site 03" color="D84000" processId="proc_94_35" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=94&sid=35&tci=5"/><task start="2013/06/24 00:00:00" end="2013/07/02 23:59:59" label="Site 04" color="D84000" processId="proc_94_36" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=94&sid=36&tci=5"/><task start="2013/06/24 00:00:00" end="2013/07/02 23:59:59" label="Site 05" color="D84000" processId="proc_94_34" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=94&sid=34&tci=5"/><task start="2013/06/24 00:00:00" end="2013/07/02 23:59:59" label="Site 06" color="D84000" processId="proc_94_32" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=94&sid=32&tci=5"/><task start="2013/06/24 00:00:00" end="2013/07/02 23:59:59" label="Site 01" color="D84000" processId="proc_94_37" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=94&sid=37&tci=5"/><task start="2013/06/24 00:00:00" end="2013/06/24 23:59:59" label="Site 08" color="D84000" processId="proc_94_40" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=94&sid=40&tci=5"/><task start="2013/06/24 00:00:00" end="2013/07/02 23:59:59" label="Site 07" color="D84000" processId="proc_94_38" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=94&sid=38&tci=5"/><task start="2013/06/24 00:00:00" end="2013/06/24 23:59:59" label="Site 09" color="D84000" processId="proc_94_39" link="newchart-xmlurl-linkedchart_gantt.xml?&g=etid&cid=94&sid=39&tci=5"/></tasks> <trendLines><line start="2013/06/29" end="2013/06/30 23:59:59" displayValue="weekend" isTrendZone="1" thickness="1" dashed="0" alpha="20" color="808080"/></trendLines> </chart>
  3. The reason i want to use my own export link, and therefore process the SVG to PNG on my own server, is because I include the PNG along with data tables into a PDF report that is generated and sent to the web browser as a download.
  4. Haritha, I have done as you said and now the PNG file coming back from export.api3.fusioncharts.com has the task bars in it. I even exported to SVG to get a pass-through of the SVG back to me. I looked in this SVG for the task bar <rect> elements. This time the width values are greater than zero. However, this only works if I use the export menu that is rendered on the chart. I want to use a link on my webpage that triggers the following javascript in my webpage. function download_data() { var export_handler = '/downloads/gantt'; // Get the most recently rendered chart in LinkedCharts (see Drill Down Charts in FusionCharts docs) var key = ''; for( key in FusionCharts.items ) { // Loop to last chart in items array // Should be most recently rendered chart in LinkedCharts (see Drill Down Charts) console.log(key); } var chartObj = FusionCharts.items[key]; if( chartObj.hasRendered() ) { chartObj.setChartAttribute({html5ExportHandler:export_handler,exportHandler:export_handler}); chartObj.exportChart(); } else { console.log("FusionChart.items['" + key + "'] not rendered and so cannot be served as SVG."); } } As I have mentioned before this is how i export other charts from FusionCharts XT(v3.2.2) SR3 (12th March, 2012). The Gantt is the first time I have done an export from FusionWidgets XT (v3.3.1 - Service Release 2) (28th May, 2013). Maybe I am referencing the chart incorrectly in my javascript for this new version?
  5. Bug report posted: http://forum.fusioncharts.com/topic/15098-exported-svg-of-javscript-based-gantt-chart-has-zero-width-task-bars/
  6. Hi, I am using FusionWidgets XT (v3.3.1 - Service Release 2) (28th May, 2013) with Ruby on Rails version 3.0.19, Ruby version 1.9.2-p290 (for more details, please reference forum topic: http://forum.fusioncharts.com/topic/15081-server-side-export-javascript-rendered-gantt/) When i try to export a javascript Gantt chart, the SVG sent back to the server has zero-width task bars. So when I transcode the SVG to PNG using Batik, the task bars are missing from the rendered image. These are the attributes for my chart. Note that I must set taskBarFillMix to an empty string so that Batik does not choke on gradients. <chart dateFormat="yyyy/mm/dd" outputDateFormat="mm/dd/yyyy" showTaskLabels="0" showPercentLabel="0" showSlackAsFill="0" useVerticalScrolling="1" manageResize="1" animation="1" exportEnabled="1" exportShowMenuItem="0" exportHandler="/downloads/gantt" html5ExportHandler="/downloads/gantt" taskBarFillMix="" taskBarFillRatio=""> attributes for my task bars <task start="#{start_date}", end="#{end_date}" label="#{task_name}" color="#b2c8d9" processId="#{proc_name}" link="#{task_url}" Some of my gantt charts have grouped tasks and those attributes are <task start="#{start_date}" end=>"#{end_date}" label="#{group_name}" color="#000000" processId="#{proc_name}" showAsGroup=1 showLabel=0 topPadding="70%" showStartDate=1 showEndDate=1 /> Ruby on Rails controller class DownloadsController < ApplicationController def gantt # grab only SVG. Drill down charts may wrap SVG in HTML svg_match = params[:stream].to_s.match(/<svg.*<\/svg>/) svg_text = svg_match[0] rescue params[:stream].to_s # fix invalid attribute values coming from FusionChart SVG svg_text.gsub!(/text-anchor=\"undefined\"/, "text-anchor='start'") svg_text.gsub!(/shape-rendering=\"default\"/, "shape-rendering='auto'") svg_text.gsub!(/visibility=\"\"/, "visibility='inherit'") # write sanitized SVG to temp file tempfile = Tempfile.new( ActiveSupport::SecureRandom.hex(16) ) tempfile.write(svg_text) # SVG to PNG using Batik output_name = Rails.root.join( "public", "exports", "gantt.png") width = svg_text.match(/width=\"[\d]+\"/)[0].match(/[\d]+/)[0].to_i exec_str = "java -jar #{batik_path} -m image/png -d #{output_name} -w #{width} #{tempfile.path}" return_val = system( exec_str ) end end However, this fails to produce a useful PNG Gantt chart. The task bars are missing even though the Gantt chart in the client web browser looks perfect. After some digging through the SVG itself, I found that the SVG returned from the chart on the client browser has zero-width task bars. <rect x=\"2041.5\" y=\"163.5\" width=\"0\" height=\"9\" r=\"0\" rx=\"0\" ry=\"0\" fill=\"#b2c8d9\" stroke=\"#999999\" fill-opacity=\"1\" stroke-opacity=\"1\" stroke-width=\"1\" style=\"cursor: pointer;\"></rect> <rect x=\"2243.5\" y=\"187.5\" width=\"0\" height=\"9\" r=\"0\" rx=\"0\" ry=\"0\" fill=\"#b2c8d9\" stroke=\"#999999\" fill-opacity=\"1\" stroke-opacity=\"1\" stroke-width=\"1\" style=\"cursor: pointer;\"></rect> <rect x=\"2243.5\" y=\"211.5\" width=\"0\" height=\"9\" r=\"0\" rx=\"0\" ry=\"0\" fill=\"#b2c8d9\" stroke=\"#999999\" fill-opacity=\"1\" stroke-opacity=\"1\" stroke-width=\"1\" style=\"cursor: pointer;\"></rect> <rect x=\"2243.5\" y=\"235.5\" width=\"0\" height=\"9\" r=\"0\" rx=\"0\" ry=\"0\" fill=\"#b2c8d9\" stroke=\"#999999\" fill-opacity=\"1\" stroke-opacity=\"1\" stroke-width=\"1\" style=\"cursor: pointer;\"></rect> <rect x=\"2243.5\" y=\"259.5\" width=\"0\" height=\"9\" r=\"0\" rx=\"0\" ry=\"0\" fill=\"#b2c8d9\" stroke=\"#999999\" fill-opacity=\"1\" stroke-opacity=\"1\" stroke-width=\"1\" style=\"cursor: pointer;\"></rect> <rect x=\"2243.5\" y=\"283.5\" width=\"0\" height=\"9\" r=\"0\" rx=\"0\" ry=\"0\" fill=\"#b2c8d9\" stroke=\"#999999\" fill-opacity=\"1\" stroke-opacity=\"1\" stroke-width=\"1\" style=\"cursor: pointer;\"></rect> <rect x=\"2243.5\" y=\"307.5\" width=\"0\" height=\"9\" r=\"0\" rx=\"0\" ry=\"0\" fill=\"#b2c8d9\" stroke=\"#999999\" fill-opacity=\"1\" stroke-opacity=\"1\" stroke-width=\"1\" style=\"cursor: pointer;\"></rect> Also, the "r" attribute does not seem to mean anything for the rect element according the Mozilla Developer Network: https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/r and https://developer.mozilla.org/en-US/docs/Web/SVG/Element/rect. (for more details, please reference forum topic: http://forum.fusioncharts.com/topic/15081-server-side-export-javascript-rendered-gantt/) I have attached the what the Gantt chart looks like in the web browser. The blue task bars and the black grouped task bar are missing when i export to PNG.
  7. More information for you... I applied the color #B2C8D9 to my task bars and went hunting for them in the SVG. I found that their width attribute is sent to 0 so batik is transcoding the SVG correctly but the SVG from the chart is wrong. I am going to assume then that this is a FusionCharts bug. <rect x=\"2041.5\" y=\"163.5\" width=\"0\" height=\"9\" r=\"0\" rx=\"0\" ry=\"0\" fill=\"#b2c8d9\" stroke=\"#999999\" fill-opacity=\"1\" stroke-opacity=\"1\" stroke-width=\"1\" style=\"cursor: pointer;\"></rect> <rect x=\"2243.5\" y=\"187.5\" width=\"0\" height=\"9\" r=\"0\" rx=\"0\" ry=\"0\" fill=\"#b2c8d9\" stroke=\"#999999\" fill-opacity=\"1\" stroke-opacity=\"1\" stroke-width=\"1\" style=\"cursor: pointer;\"></rect> <rect x=\"2243.5\" y=\"211.5\" width=\"0\" height=\"9\" r=\"0\" rx=\"0\" ry=\"0\" fill=\"#b2c8d9\" stroke=\"#999999\" fill-opacity=\"1\" stroke-opacity=\"1\" stroke-width=\"1\" style=\"cursor: pointer;\"></rect> <rect x=\"2243.5\" y=\"235.5\" width=\"0\" height=\"9\" r=\"0\" rx=\"0\" ry=\"0\" fill=\"#b2c8d9\" stroke=\"#999999\" fill-opacity=\"1\" stroke-opacity=\"1\" stroke-width=\"1\" style=\"cursor: pointer;\"></rect> <rect x=\"2243.5\" y=\"259.5\" width=\"0\" height=\"9\" r=\"0\" rx=\"0\" ry=\"0\" fill=\"#b2c8d9\" stroke=\"#999999\" fill-opacity=\"1\" stroke-opacity=\"1\" stroke-width=\"1\" style=\"cursor: pointer;\"></rect> <rect x=\"2243.5\" y=\"283.5\" width=\"0\" height=\"9\" r=\"0\" rx=\"0\" ry=\"0\" fill=\"#b2c8d9\" stroke=\"#999999\" fill-opacity=\"1\" stroke-opacity=\"1\" stroke-width=\"1\" style=\"cursor: pointer;\"></rect> <rect x=\"2243.5\" y=\"307.5\" width=\"0\" height=\"9\" r=\"0\" rx=\"0\" ry=\"0\" fill=\"#b2c8d9\" stroke=\"#999999\" fill-opacity=\"1\" stroke-opacity=\"1\" stroke-width=\"1\" style=\"cursor: pointer;\"></rect>
  8. I have added the following lines to the code i posted in Post #1 to search for those invalid values in the SVG and correct them. svg_text.gsub!(/text-anchor=\"undefined\"/, "text-anchor='start'") svg_text.gsub!(/shape-rendering=\"default\"/, "shape-rendering='auto'") svg_text.gsub!(/visibility=\"\"/, "visibility='inherit'") I no longer get any errors while batik is transcoding the SVG to PNG but the issue of no task bars still exists. NOTE: i got the correct values for each SVG attribute from here https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute
  9. Hi, can you tell me if you are you able to export Javascript-based Gantt chart to PNG on your end? Please do not leave me guessing if this is a bug with FusionCharts or if I am doing something wrong. thanks
  10. I didn't find a way to determine the version of batik-rasterizer.jar but I opened batik.jar and see that Batik is version 1.7. I am including the check sum of the file since i could not find the version. $ cksum batik/batik-rasterizer.jar 2826937874 56270 batik/batik-rasterizer.jar This is the javascript code I use when I want to download the PNG of the Chart and yes i use exportChart() of the FusionCharts javascript API function download_data() { var export_handler = '/downloads/gantt'; // Get the most recently rendered chart in LinkedCharts (see Drill Down Charts in FusionCharts docs) var key = ''; for( key in FusionCharts.items ) { // Loop to last chart in items array // Should be most recently rendered chart in LinkedCharts (see Drill Down Charts) console.log(key); } var chartObj = FusionCharts.items[key]; if( chartObj.hasRendered() ) { chartObj.setChartAttribute({html5ExportHandler:export_handler,exportHandler:export_handler}); chartObj.exportChart(); } else { console.log("FusionChart.items['" + key + "'] not rendered and so cannot be served as SVG."); } }
  11. If it helps, these are the attributes for my chart :dateFormat=>'yyyy/mm/dd', :outputDateFormat=>'mm/dd/yyyy', :showTaskLabels=>"0", :showPercentLabel=>"0", :showSlackAsFill=>"0", :animation=>"1", :useVerticalScrolling=>"1", :manageResize=>"1", :taskBarFillMix=>"", :taskBarFillRatio=>"", :exportEnabled=>"1", :exportShowMenuItem=>"0", :exportHandler=>"/downloads/gantt", :html5ExportHandler=>"/downloads/gantt" attributes for tasks :start=>sdate, :end=>edate, :label=>task_name, :color=>task_colors, :processId=>proc_name, :link=>task_url Some of my gantt charts have grouped tasks and those attributes are :start=>start_date, :end=>end_date, :label=>group_name, :color=>"#000000" :processId=>proc_name, :showAsGroup->1, :showLabel=>0, :topPadding=>"70%", :showStartDate=>1, :showEndDate=>1
  12. Hello, looking at the CSS errors more closely after transcoding a Gantt chart SVG to PNG, I find that i also get this one about the "text-anchor" property repeated many times after the "shape-rendering" property error posted previously: ***** CSSEngine: exception property.syntax.error:org.w3c.dom.DOMException: The "undefined" identifier is not a valid value for the "text-anchor" property. AttrValue:undefined Exception:org.w3c.dom.DOMException org.w3c.dom.DOMException: The "undefined" identifier is not a valid value for the "text-anchor" property. at org.apache.batik.css.engine.value.AbstractValueFactory.createInvalidIdentifierDOMException(AbstractValueFactory.java:50) at org.apache.batik.css.engine.value.IdentifierManager.createValue(IdentifierManager.java:48) at org.apache.batik.css.engine.CSSEngine$1.property(CSSEngine.java:744) at org.apache.batik.css.engine.CSSEngine.getCascadedStyleMap(CSSEngine.java:768) at org.apache.batik.css.engine.CSSEngine.getComputedStyle(CSSEngine.java:876) at org.apache.batik.bridge.CSSUtilities.getComputedStyle(CSSUtilities.java:82) at org.apache.batik.bridge.CSSUtilities.convertDisplay(CSSUtilities.java:564) at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:206) at org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:171) at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:219) at org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:171) at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:219) at org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:171) at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:219) at org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:171) at org.apache.batik.bridge.GVTBuilder.build(GVTBuilder.java:82) at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:208) at org.apache.batik.transcoder.image.ImageTranscoder.transcode(ImageTranscoder.java:92) at org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(XMLAbstractTranscoder.java:142) at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:156) at org.apache.batik.apps.rasterizer.SVGConverter.transcode(SVGConverter.java:1001) at org.apache.batik.apps.rasterizer.SVGConverter.execute(SVGConverter.java:717) at org.apache.batik.apps.rasterizer.Main.execute(Main.java:938) at org.apache.batik.apps.rasterizer.Main.main(Main.java:992) ***** CSSEngine: exception.... org.w3c.dom.DOMException: file:/var/folders/kt/bzb_dqd12rx2bwxfl56dwdr00000gq/T/0a8cd3e5fbdc849120d3e01f3d6bee9720130823-82381-blvpwe: The attribute "text-anchor" represents an invalid CSS value ("undefined"). Original message: The "undefined" identifier is not a valid value for the "text-anchor" property. at org.apache.batik.css.engine.CSSEngine.getCascadedStyleMap(CSSEngine.java:784) at org.apache.batik.css.engine.CSSEngine.getComputedStyle(CSSEngine.java:876) at org.apache.batik.bridge.CSSUtilities.getComputedStyle(CSSUtilities.java:82) at org.apache.batik.bridge.CSSUtilities.convertDisplay(CSSUtilities.java:564) at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:206) at org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:171) at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:219) at org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:171) at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:219) at org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:171) at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:219) at org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:171) at org.apache.batik.bridge.GVTBuilder.build(GVTBuilder.java:82) at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:208) at org.apache.batik.transcoder.image.ImageTranscoder.transcode(ImageTranscoder.java:92) at org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(XMLAbstractTranscoder.java:142) at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:156) at org.apache.batik.apps.rasterizer.SVGConverter.transcode(SVGConverter.java:1001) at org.apache.batik.apps.rasterizer.SVGConverter.execute(SVGConverter.java:717) at org.apache.batik.apps.rasterizer.Main.execute(Main.java:938) at org.apache.batik.apps.rasterizer.Main.main(Main.java:992) ERROR: null Enclosed Exception: file:/var/folders/kt/bzb_dqd12rx2bwxfl56dwdr00000gq/T/0a8cd3e5fbdc849120d3e01f3d6bee9720130823-82381-blvpwe: The attribute "text-anchor" represents an invalid CSS value ("undefined"). Original message: The "undefined" identifier is not a valid value for the "text-anchor" property.
  13. I get these CSS errors repeated over and over many times when Batik is transcoding the SVG to PNG. Again, this version is FusionWidgets XT (v3.3.1 - Service Release 2) (28th May, 2013) About to transcode 1 SVG file(s) Converting d0e544aa4761c9f11f422261e3f985c220130822-78912-1ndybh3 to /work/exports/d0e544aa4761c9f11f422261e3f985c2.png ... ***** CSSEngine: exception property.syntax.error:org.w3c.dom.DOMException: The "default" identifier is not a valid value for the "shape-rendering" property. AttrValue:default Exception:org.w3c.dom.DOMException org.w3c.dom.DOMException: The "default" identifier is not a valid value for the "shape-rendering" property. at org.apache.batik.css.engine.value.AbstractValueFactory.createInvalidIdentifierDOMException(AbstractValueFactory.java:50) at org.apache.batik.css.engine.value.IdentifierManager.createValue(IdentifierManager.java:48) at org.apache.batik.css.engine.CSSEngine$1.property(CSSEngine.java:744) at org.apache.batik.css.engine.CSSEngine.getCascadedStyleMap(CSSEngine.java:768) at org.apache.batik.css.engine.CSSEngine.getComputedStyle(CSSEngine.java:876) at org.apache.batik.bridge.CSSUtilities.getComputedStyle(CSSUtilities.java:82) at org.apache.batik.bridge.CSSUtilities.convertDisplay(CSSUtilities.java:564) at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:206) at org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:171) at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:219) at org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:171) at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:219) at org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:171) at org.apache.batik.bridge.GVTBuilder.build(GVTBuilder.java:82) at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:208) at org.apache.batik.transcoder.image.ImageTranscoder.transcode(ImageTranscoder.java:92) at org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(XMLAbstractTranscoder.java:142) at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:156) at org.apache.batik.apps.rasterizer.SVGConverter.transcode(SVGConverter.java:1001) at org.apache.batik.apps.rasterizer.SVGConverter.execute(SVGConverter.java:717) at org.apache.batik.apps.rasterizer.Main.execute(Main.java:938) at org.apache.batik.apps.rasterizer.Main.main(Main.java:992) ***** CSSEngine: exception.... org.w3c.dom.DOMException: file:/var/folders/kt/bzb_dqd12rx2bwxfl56dwdr00000gq/T/d0e544aa4761c9f11f422261e3f985c220130822-78912-1ndybh3: The attribute "shape-rendering" represents an invalid CSS value ("default"). Original message: The "default" identifier is not a valid value for the "shape-rendering" property. at org.apache.batik.css.engine.CSSEngine.getCascadedStyleMap(CSSEngine.java:784) at org.apache.batik.css.engine.CSSEngine.getComputedStyle(CSSEngine.java:876) at org.apache.batik.bridge.CSSUtilities.getComputedStyle(CSSUtilities.java:82) at org.apache.batik.bridge.CSSUtilities.convertDisplay(CSSUtilities.java:564) at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:206) at org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:171) at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:219) at org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:171) at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:219) at org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:171) at org.apache.batik.bridge.GVTBuilder.build(GVTBuilder.java:82) at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:208) at org.apache.batik.transcoder.image.ImageTranscoder.transcode(ImageTranscoder.java:92) at org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(XMLAbstractTranscoder.java:142) at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:156) at org.apache.batik.apps.rasterizer.SVGConverter.transcode(SVGConverter.java:1001) at org.apache.batik.apps.rasterizer.SVGConverter.execute(SVGConverter.java:717) at org.apache.batik.apps.rasterizer.Main.execute(Main.java:938) at org.apache.batik.apps.rasterizer.Main.main(Main.java:992) ERROR: null Enclosed Exception: file:/var/folders/kt/bzb_dqd12rx2bwxfl56dwdr00000gq/T/d0e544aa4761c9f11f422261e3f985c220130822-78912-1ndybh3: The attribute "shape-rendering" represents an invalid CSS value ("default"). Original message: The "default" identifier is not a valid value for the "shape-rendering" property. To provide more information, on previous projects, i was exporting bar charts from the FusionCharts XT package with similar CSS errors but the PNG file came out perfect. The version of that package was FusionCharts XT(v3.2.2) SR3 (12th March, 2012) CSS errors from exporting a bar chart from FusionCharts XT(v3.2.2) SR3 (12th March, 2012): (This export was successful despite these errors): About to transcode 1 SVG file(s) Converting 4db329ba83ef24325dbe7265b11b126b20130823-82013-19xly7c to /work/exports/4db329ba83ef24325dbe7265b11b126b.png ... ***** CSSEngine: exception property.syntax.error:org.w3c.css.sac.CSSParseException: Unexpected token: 0 (see LexicalUnits). AttrValue: Exception:org.w3c.css.sac.CSSParseException org.w3c.css.sac.CSSParseException: Unexpected token: 0 (see LexicalUnits). at org.apache.batik.css.parser.Parser.createCSSParseException(Parser.java:1678) at org.apache.batik.css.parser.Parser.parseTerm(Parser.java:1055) at org.apache.batik.css.parser.Parser.parseExpression(Parser.java:895) at org.apache.batik.css.parser.Parser.parsePropertyValueInternal(Parser.java:337) at org.apache.batik.css.parser.Parser.parsePropertyValue(Parser.java:1720) at org.apache.batik.css.engine.CSSEngine.getCascadedStyleMap(CSSEngine.java:767) at org.apache.batik.css.engine.CSSEngine.getComputedStyle(CSSEngine.java:876) at org.apache.batik.bridge.CSSUtilities.getComputedStyle(CSSUtilities.java:82) at org.apache.batik.bridge.CSSUtilities.convertDisplay(CSSUtilities.java:564) at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:206) at org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:171) at org.apache.batik.bridge.GVTBuilder.build(GVTBuilder.java:82) at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:208) at org.apache.batik.transcoder.image.ImageTranscoder.transcode(ImageTranscoder.java:92) at org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(XMLAbstractTranscoder.java:142) at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:156) at org.apache.batik.apps.rasterizer.SVGConverter.transcode(SVGConverter.java:1001) at org.apache.batik.apps.rasterizer.SVGConverter.execute(SVGConverter.java:717) at org.apache.batik.apps.rasterizer.Main.execute(Main.java:938) at org.apache.batik.apps.rasterizer.Main.main(Main.java:992) ***** CSSEngine: exception.... org.w3c.dom.DOMException: file:/var/folders/kt/bzb_dqd12rx2bwxfl56dwdr00000gq/T/4db329ba83ef24325dbe7265b11b126b20130823-82013-19xly7c: The attribute "visibility" represents an invalid CSS value (""). Original message: Unexpected token: 0 (see LexicalUnits). at org.apache.batik.css.engine.CSSEngine.getCascadedStyleMap(CSSEngine.java:784) at org.apache.batik.css.engine.CSSEngine.getComputedStyle(CSSEngine.java:876) at org.apache.batik.bridge.CSSUtilities.getComputedStyle(CSSUtilities.java:82) at org.apache.batik.bridge.CSSUtilities.convertDisplay(CSSUtilities.java:564) at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:206) at org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:171) at org.apache.batik.bridge.GVTBuilder.build(GVTBuilder.java:82) at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:208) at org.apache.batik.transcoder.image.ImageTranscoder.transcode(ImageTranscoder.java:92) at org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(XMLAbstractTranscoder.java:142) at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:156) at org.apache.batik.apps.rasterizer.SVGConverter.transcode(SVGConverter.java:1001) at org.apache.batik.apps.rasterizer.SVGConverter.execute(SVGConverter.java:717) at org.apache.batik.apps.rasterizer.Main.execute(Main.java:938) at org.apache.batik.apps.rasterizer.Main.main(Main.java:992) ERROR: null Enclosed Exception: file:/var/folders/kt/bzb_dqd12rx2bwxfl56dwdr00000gq/T/4db329ba83ef24325dbe7265b11b126b20130823-82013-19xly7c: The attribute "visibility" represents an invalid CSS value (""). Original message: Unexpected token: 0 (see LexicalUnits).
  14. Here is an example of what i am getting. I've modified it to remove any sensitive information.
  15. Hi I am using pure Javascript (renderer = javascript) Gantt chart in Ruby On Rails (version 3.0.19). It looks fine in web browser. Now i want to export but i didn't want to use php on my Ruby on Rails server as instructed on this page: http://docs.fusioncharts.com/widgets/Contents/ExportingImage/ECPureJS.html Instead, from my Rails controller I pull in the SVG from the return parameters (i.e. params[:stream]) and pass it to batik to convert into png file as follows ruby on rails controller code: svg_match = params[:stream].to_s.match(/<svg.*<\/svg>/) svg_text = svg_match[0] rescue params[:stream].to_s tempfile = Tempfile.new( ActiveSupport::SecureRandom.hex(16) ) tempfile.write(svg_text) output_name = Rails.root.join( "public", "exports", "gantt.png") exec_str = "java -jar #{batik_path} -m image/png -d #{output_name} #{width} #{tempfile.path}" return_val = system( exec_str ) Everything looks good except that my task bars are missing! Process names show up on the left, dates show up on the top, and even the grid background of the gantt shows up. But there no task bars. What might I be doing wrong? As a second question, didn't the returned SVG on an export used to be in a parameter called "svg" as in params[:svg]? I am using version FusionWidgets XT (v3.3.1 - Service Release 2) (28th May, 2013) NOTE: In order for Batik to not choke on the gantt chart SVG I had to disable gradients on the task bars as follows <chart plotGradientColor='' taskBarFillMix='' ...>