I've recently encountered the printing problems reported elsewhere with FusionCharts for FileMaker. I have been printing my charts using the "native print method" of right/control-clicking on the chart and choosing the Print... option. And I have been creating my charts to the exact size I want them to print, so no scaling should be occurring. Nevertheless, I am encountering lots of printing problems--mainly due to lots of unexpected scaling. The charts display just fine on screen, but either scale down a little, or up a lot when printed. I can't tell what the exact cause is, but I don't think the problem is browser or platform related since I am getting the exact same behavior when I view & print the charts via IE6 for Windows, Safari2 for Mac, or Firefox2 for Mac (btw--the Fusioncharts folder is hosted on a Mac with internet sharing enabled).
So far, the key to identifying the problem appears to be the Flash plug-in. Some charts print just fine, and others scale up and are clipped during printing (even when they are built to exact same chart dimensions). At first there didn't seem to be any rhyme or reason to it, but I notice that I can now identify how the charts will print by choosing the Flash plug-in's "Show All" command in the same pop-up menu that appears when control/right-clicking on a chart.
Curiously, this strange scaling behavior can be directly affected by nothing more than the chart type choice. Here's a couple examples to illustrate this fact. The first one will not print properly (it scales to large and is clipped on the page when printed), but the second prints fine.
The only difference is the chart type choice (Column2D vs Column3D). This leads me to believe the problem is in the Fusioncharts code itself.
Example 1: (This will not print properly)
?v=free&sep=;&chart=[chartType=Column2D;chartWidth=518;chartHeight=400]
&chartParams=[caption=Widgets Produced;subCaption=During last 22 shifts;
baseFontSize=9;formatNumber=0;yAxisMinValue=0;yAxisMaxValue=10;rotateNames=1;showhovercap=1;animation=0]
&labels=1/24;1/25;1/26;1/27;1/28;1/29;1/30;1/31;2/1;2/2;2/3
&data=[seriesName=AM;showname=1;showAnchors=1;showValues=1]0;1;1;2;4;2;3;4;6;2;4
&data=[seriesName=PM;showname=1;showAnchors=1;showValues=1]1;3;0;2;6;2;4;5;3;1;2
Example 2: (But this does print okay)
?v=free&sep=;&chart=[chartType=Column3D;chartWidth=518;chartHeight=400]
&chartParams=[caption=Widgets Produced;subCaption=During last 22 shifts;
baseFontSize=9;formatNumber=0;yAxisMinValue=0;yAxisMaxValue=10;rotateNames=1;showhovercap=1;animation=0]
&labels=1/24;1/25;1/26;1/27;1/28;1/29;1/30;1/31;2/1;2/2;2/3
&data=[seriesName=AM;showname=1;showAnchors=1;showValues=1]0;1;1;2;4;2;3;4;6;2;4
&data=[seriesName=PM;showname=1;showAnchors=1;showValues=1]1;3;0;2;6;2;4;5;3;1;2
Both of these charts are displayed in FMP web viewer objects sized to exactly 518x400, so there should be no scaling. Yet, I find interesting to note that the top example scales up to about 115% when choosing the "Show All" command, whereas the bottom example scales down to about 92% respectively. So it seems that the problem is somehow behind the scenes, and not controllable by settings in the URL parameter. My guess is there is a problem in the Fusioncharts java code somewhere that is not setting some scaling value properly--but that is a total hunch since I know nothing of java or flash code.
Anyway, after examining the Fusioncharts chart specifications, I decided to try adding some space to the chart margins in order to see if I could fudge a workaround. Sure enough, by adding extra padding, and chosing the "Show All" command, I could get the charts to print how I wanted, even though they display a bit display smaller on screen.
Example 3: (Same chart as Example 1, but it prints a lot better--though it displays a bit smaller on screen)
?v=free&sep=;&chart=[chartType=Column2D;chartWidth=518;chartHeight=400]
&chartParams=[caption=Widgets Produced;subCaption=During last 22 shifts;
baseFontSize=9;formatNumber=0;yAxisMinValue=0;yAxisMaxValue=10;rotateNames=1;showhovercap=1;animation=0;
chartRightMargin=80; chartBottomMargin=60]
&labels=1/24;1/25;1/26;1/27;1/28;1/29;1/30;1/31;2/1;2/2;2/3
&data=[seriesName=AM;showname=1;showAnchors=1;showValues=1]0;1;1;2;4;2;3;4;6;2;4
&data=[seriesName=PM;showname=1;showAnchors=1;showValues=1]1;3;0;2;6;2;4;5;3;1;2
Notice how the only change from the first example was the addition of:
chartRightMargin=80;
chartBottomMargin=60
I arrived at these number by trial an error, maybe I'll find more of a correlation as I continue testing, but it appears that you can at least tame some of these out of control charts by adding some chartRightMargin & chartBottomMargin space.
I also noticed if a chart resizes (after chosing the contextual "Show All" command), it can be restored to it's original display size by selecting the "Rewind" contextual command, or by reloading the page when viewed in a web browser. Since I can't get this to occur with any other Flash objects, again I feel this points to Fusioncharts as the originator of this problem.
It would be nice if there was some definative answer as to why these charts resize when printed.
Can anyone on the Fusioncharts team investigate this further?
UPDATE- After some experimentation, it seems that there are specific chart sizes that do not rescale when printed. So far I have identified the following:
Bar2D ( width >= 400, height = 450 ) or ( width = 400, height >= 450 )
Column2D ( width >= 450, height = 350 ) or ( width = 450, height >= 350 )
Column3D & StackedColumn2D ( width >= 565, height = 420 ) or ( width = 565, height >= 420 )
Line2D ( width >= 565, height = 420 ) or ( width = 565, height >= 420 )
Pie2D &
Pie3D ( width >= 350, height = 350 ) or ( width = 350, height >= 350 )
So for example, a Column2D chart sized to chartWidth=450;chartHeight=350 will display and print properly, but a Column2D chart of chartWidth=440;chartHeight=350 will shrink slightly when printed, and a Column2D chart of chartWidth=460;chartHeight=350 will become larger when printed.