Page 1 of 1
Saving chart with itextsharp
Posted: Wed May 22, 2013 10:16 am
by 15664465
When i try to sa ve a chart with itexrsharp the botton axis dont have all the labels
I have tried the propertie width and heigth to resize the image and achieve that peoblem but now the label are very tiny
Id apreciate any help
Re: Saving chart with itextsharp
Posted: Wed May 22, 2013 2:05 pm
by 10050769
Hello Fulcrum,
I have made a simple code that can help you to achieve as you want:
Code: Select all
public Form1()
{
InitializeComponent();
InitializeChart();
}
Steema.TeeChart.Styles.Bar series1;
private void InitializeChart()
{
tChart1.Walls.Back.Visible = false;
series1 = new Bar(tChart1.Chart);
tChart1.Legend.Visible = false;
series1.Add(0, 5000);
series1.Add(1, 95000);
series1.Add(2, 50000);
series1.Add(3, 34000);
series1.Add(4, 68000);
tChart1.Axes.Bottom.Labels.Items.Clear();
for (int i = 0; i < series1.Count; i++)
{
if (i == 0)
{
tChart1.Axes.Bottom.Labels.Items.Add(series1.XValues[i], "Grava cemento");
}
else if (i == 1)
{
tChart1.Axes.Bottom.Labels.Items.Add(series1.XValues[i], "Grava Suelo");
}
else if (i == 2)
{
tChart1.Axes.Bottom.Labels.Items.Add(series1.XValues[i], "Zahorra");
}
else if (i == 3)
{
tChart1.Axes.Bottom.Labels.Items.Add(series1.XValues[i], "Betunes");
}
else if (i == 4)
{
tChart1.Axes.Bottom.Labels.Items.Add(series1.XValues[i], "Mezclas Bifuminosas");
}
}
tChart1.Axes.Bottom.Labels.Angle = 45;
tChart1.Export.Image.PDF.Save(@"C:\tmp\tchart1.pdf");
}
private void button1_Click(object sender, EventArgs e)
{
tChart1.Export.Image.PDF.Save(@"C:\tmp\tchart1.pdf");
}
Could you tell us if previous code works in your end?
Thanks,
Re: Saving chart with itextsharp
Posted: Thu May 23, 2013 8:28 am
by 15664465
Thank for you reoply Sandra but its not working.
in my program i export first the chart to a jpeg:
Code: Select all
WebChartTripleBarras2.Chart.Export.Image.JPEG.Save("C:\ImagenInformeTripleBarras2.jpeg")
but didnt show all the axis, so i use:
Code: Select all
JpegBarras2.Quality = 100
JpegBarras2.Width = 900
JpegBarras2.Height = 700
to resize the image.
I hope you could help me
Re: Saving chart with itextsharp
Posted: Thu May 23, 2013 4:03 pm
by 10050769
Hello Fulcrum,
Thanks for information. We would be very grateful if you can arrange for us a simple code, where we can reproduce the problem exactly, because here If I use custom labels, the problem disappears.
Thanks,
Re: Saving chart with itextsharp
Posted: Fri May 24, 2013 7:47 am
by 15664465
Code: Select all
Dim ch3 As Steema.TeeChart.Chart = WebChartTripleBarras3.Chart
ch3.Series.RemoveAllSeries()
ch3.Series.Add(New Steema.TeeChart.Styles.Bar())
ch3.Series(0).Add(72049.789999999994, "Desmonte Total")
ch3.Series(0).Add(23371.139999999999, "Volumen de Vertedero")
ch3.Series(0).Add(71177.119999999995, "Rellenos con Mat. Excavacion")
ch3.Series(0).Add(91177.119999999995, "Rellenos con Mat. Prestamo")
ch3.Series(0).Add(53371.139999999999, "Seleccinado de Excavacion")
ch3.Series(0).Add(1177.1199999999949, "Selecciondo de Prestamo")
ch3.Series(0).Add(0, "Cemento Suelo Estabilizado")
ch3.Series(0).Add(11177.119999999995, "Resto de unidades")
ch3.Series(0).Marks.Visible = False
ch3.Legend.Shadow.Visible = True
ch3.Legend.Visible = False
ch3.Series(0).ShowInLegend = False
ch3.Walls.Back.Gradient.Visible = False
ch3.Walls.Back.Color = Color.White
ch3.Panel.Gradient.Visible = False
ch3.Panel.Color = Color.White
ch3.Series(0).Color = Color.CornflowerBlue
ch3.Panel.Bevel.Outer = Steema.TeeChart.Drawing.BevelStyles.None
ch3.Panel.Bevel.Inner = Steema.TeeChart.Drawing.BevelStyles.None
ch3.Axes.Bottom.Labels.Angle = 50
Dim JpegBarras3 As Steema.TeeChart.Export.JPEGFormat = ch3.Export.Image.JPEG
JpegBarras3.Quality = 100
JpegBarras3.Width = 2000 'm_PictureBox.Width
JpegBarras3.Height = 900 'm_PictureBox.Height
WebChartTripleBarras3.Chart.Export.Image.JPEG.Save("C:\ImagenInformeTripleBarras3.jpeg")
Re: Saving chart with itextsharp
Posted: Fri May 24, 2013 1:00 pm
by 10050769
Hello Fulcrum,
I have made a simple code, where I am using with custom labels and your problems is solved:
Code: Select all
Steema.TeeChart.Styles.Bar series1;
string [] labelstext;
private void InitializeChart()
{
WebChart1.Chart.Aspect.View3D = false;
series1 = new Bar(WebChart1.Chart);
labelstext = new string[]{"Desmonte Total","Volumen de Vertedero","Rellenos con Mat. Excavacion","Rellenos con Mat. Prestamo",
"Seleccinado de Excavacion","Selecciondo de Prestamo","Cemento Suelo Estabilizado","Resto de unidades"};
series1.Add(72049.789999999994, "Desmonte Total");
series1.Add(23371.139999999999, "Volumen de Vertedero");
series1.Add(71177.119999999995, "Rellenos con Mat. Excavacion");
series1.Add(91177.119999999995, "Rellenos con Mat. Prestamo");
series1.Add(53371.139999999999, "Seleccinado de Excavacion");
series1.Add(1177.1199999999949, "Selecciondo de Prestamo");
series1.Add(0, "Cemento Suelo Estabilizado");
series1.Add(11177.119999999995, "Resto de unidades");
series1.Marks.Visible = false;
WebChart1.Chart.Legend.Shadow.Visible = true;
WebChart1.Chart.Legend.Visible = false;
//CUSTOM LABELS
AddCustomLabels(series1,labelstext);
WebChart1.Chart.Axes.Bottom.Labels.Angle = 50;
WebChart1.Chart.Export.Image.JPEG.Quality = 100;
WebChart1.Chart.Export.Image.JPEG.Width = 2000;
WebChart1.Chart.Export.Image.JPEG.Height = 900;
WebChart1.Chart.Export.Image.JPEG.Save(@"C:\ImagenInformeTripleBarras3.jpeg");
}
protected void AddCustomLabels(Series s, string[] arraylabels)
{
WebChart1.Chart.Axes.Bottom.Labels.Items.Clear();
for (int i = 0; i < series1.Count; i++)
{
WebChart1.Chart.Axes.Bottom.Labels.Items.Add(s.XValues[i], arraylabels[i]);
}
}
Could you please, check my previous code?
Thanks,
Re: Saving chart with itextsharp
Posted: Mon May 27, 2013 11:59 am
by 15664465
i have converted the code to vb.net and visual studio dont recognize series as a class
Code: Select all
Protected Sub AddCustomLabels(s As Series, arraylabels As String())
I woul like to know another thing, is posible on the y axis mark the label of certain values like every 50.000 for example changing the color or making more extensive the line
Thank you for helping me
Re: Saving chart with itextsharp
Posted: Mon May 27, 2013 3:44 pm
by 10050769
Hello Fulcrum,
I have converted my c# code to vb code and it works in correct way:
Code: Select all
Private series1 As Steema.TeeChart.Styles.Bar
Private labelstext As String()
Public Sub New()
' This call is required by the designer.
InitializeComponent()
InitializeChart()
' Add any initialization after the InitializeComponent() call.
End Sub
Private Sub InitializeChart()
WebChart1.Chart.Aspect.View3D = False
series1 = New Steema.TeeChart.Styles.Bar(TChart2.Chart)
labelstext = New String() {"Desmonte Total", "Volumen de Vertedero", "Rellenos con Mat. Excavacion", "Rellenos con Mat. Prestamo", "Seleccinado de Excavacion", "Selecciondo de Prestamo", _
"Cemento Suelo Estabilizado", "Resto de unidades"}
series1.Add(72049.79, "Desmonte Total")
series1.Add(23371.14, "Volumen de Vertedero")
series1.Add(71177.12, "Rellenos con Mat. Excavacion")
series1.Add(91177.12, "Rellenos con Mat. Prestamo")
series1.Add(53371.14, "Seleccinado de Excavacion")
series1.Add(1177.11999999999, "Selecciondo de Prestamo")
series1.Add(0, "Cemento Suelo Estabilizado")
series1.Add(11177.12, "Resto de unidades")
series1.Marks.Visible = False
WebChart1.Chart.Legend.Shadow.Visible = True
WebChart1.Chart.Legend.Visible = False
'CUSTOM LABELS
AddCustomLabels(series1, labelstext)
WebChart1.Chart.Axes.Bottom.Labels.Angle = 50
WebChart1.Chart.Export.Image.JPEG.Quality = 100
WebChart1.Chart.Export.Image.JPEG.Width = 2000
WebChart1.Chart.Export.Image.JPEG.Height = 900
WebChart1.Chart.Export.Image.JPEG.Save("C:\ImagenInformeTripleBarras3.jpeg")
End Sub
Protected Sub AddCustomLabels(s As Steema.TeeChart.Styles.Series, arraylabels As String())
WebChart1.Chart.Axes.Bottom.Labels.Items.Clear()
For i As Integer = 0 To series1.Count - 1
WebChart1.Chart.Axes.Bottom.Labels.Items.Add(s.XValues(i), arraylabels(i))
Next
End Sub
Could you tell us if previous code works in your end?
Thanks,
Re: Saving chart with itextsharp
Posted: Tue May 28, 2013 9:34 am
by 15664465
I have tried your solution but now the chart in the webpage dont have all the labels in the axis
Re: Saving chart with itextsharp
Posted: Tue May 28, 2013 2:10 pm
by 10050769
Hello Fulcrum,
Using my previous code with last version of TeeChart 2012:
Code: Select all
Private series1 As Steema.TeeChart.Styles.Bar
Private labelstext As String()
Public Sub New()
' This call is required by the designer.
InitializeComponent()
InitializeChart()
' Add any initialization after the InitializeComponent() call.
End Sub
Private Sub InitializeChart()
WebChart1.Chart.Aspect.View3D = False
series1 = New Steema.TeeChart.Styles.Bar(TChart2.Chart)
labelstext = New String() {"Desmonte Total", "Volumen de Vertedero", "Rellenos con Mat. Excavacion", "Rellenos con Mat. Prestamo", "Seleccinado de Excavacion", "Selecciondo de Prestamo", _
"Cemento Suelo Estabilizado", "Resto de unidades"}
series1.Add(72049.79, "Desmonte Total")
series1.Add(23371.14, "Volumen de Vertedero")
series1.Add(71177.12, "Rellenos con Mat. Excavacion")
series1.Add(91177.12, "Rellenos con Mat. Prestamo")
series1.Add(53371.14, "Seleccinado de Excavacion")
series1.Add(1177.11999999999, "Selecciondo de Prestamo")
series1.Add(0, "Cemento Suelo Estabilizado")
series1.Add(11177.12, "Resto de unidades")
series1.Marks.Visible = False
WebChart1.Chart.Legend.Shadow.Visible = True
WebChart1.Chart.Legend.Visible = False
'CUSTOM LABELS
AddCustomLabels(series1, labelstext)
WebChart1.Chart.Axes.Bottom.Labels.Angle = 50
WebChart1.Chart.Export.Image.JPEG.Quality = 100
WebChart1.Chart.Export.Image.JPEG.Width = 2000
WebChart1.Chart.Export.Image.JPEG.Height = 900
WebChart1.Chart.Export.Image.JPEG.Save("C:\ImagenInformeTripleBarras3.jpeg")
End Sub
Protected Sub AddCustomLabels(s As Steema.TeeChart.Styles.Series, arraylabels As String())
WebChart1.Chart.Axes.Bottom.Labels.Items.Clear()
For i As Integer = 0 To series1.Count - 1
WebChart1.Chart.Axes.Bottom.Labels.Items.Add(s.XValues(i), arraylabels(i))
Next
End Sub
I have achieved next result in the browser:
- ChartinBrowser.jpg (86.31 KiB) Viewed 15682 times
I have gotten next image using your indications to export the chart:
- ImagenInformeTripleBarras3.jpeg (333.64 KiB) Viewed 15680 times
I consider the results are correct. For this reason,I would be very grateful if you can indicate us, if the problem appears in my attached images. If it doesn't appear, please try to modify the code, so we can reproduce your problem here. On the other hand, could you please tell us which version of TeeChart are you using in this moment?
Thanks,
Re: Saving chart with itextsharp
Posted: Wed May 29, 2013 12:17 pm
by 15664465
yes the problema is in the second chart and in my intructions for saving the chart.
In my web the chart dont have all the axis
so to make then to appear I have to make the image larger
Now I havee notice something in your code that i didnt do when I tried it
Code: Select all
series1 = New Steema.TeeChart.Styles.Bar(TChart2.Chart)
when you define series1 you use TChart2, how do you define it. I defined it like the chart I was using and that could be my mistake.
Do I have to define a second chart?
Re: Saving chart with itextsharp
Posted: Thu May 30, 2013 9:27 am
by 10050769
Hello Fulcrum,
I have attached my project where your problem doesn't appear using latest versions of TeeChartFor.Net (4.1.2012.01312). For this reason, we would be very grateful if you can check my attached project and inform us of results you get.
On the other hand, could you confirm us which version are you using?
Now I havee notice something in your code that i didnt do when I tried it
CODE: SELECT ALL
series1 = New Steema.TeeChart.Styles.Bar(TChart2.Chart)
when you define series1 you use TChart2, how do you define it. I defined it like the chart I was using and that could be my mistake.
Do I have to define a second chart?
Sorry, I have forgotten to remove this line of code, isn't necessary.
Thanks,
Re: Saving chart with itextsharp
Posted: Thu May 30, 2013 12:17 pm
by 15664465
Hello Sandra and thank you, your projects Works fine and I have fixed the problema but when i tried in this one dont seem it solves anything.
Code: Select all
labelstext1 = New String() {"Hormigon", "Acero Estructural", "Acero con Arma. Pasivas", "Acero en Pretensados"}
Dim ch1 As Steema.TeeChart.Chart = WebChartTripleBarras1.Chart
ch1.Series.RemoveAllSeries()
ch1.Series.Add(New Steema.TeeChart.Styles.Bar())
Dim SeriesBar1 As New Steema.TeeChart.Styles.Bar()
SeriesBar1.Add(72049.789999999994, "Hormigon")
SeriesBar1.Add(23371.139999999999, "Acero Estructural")
SeriesBar1.Add(71177.119999999995, "Acero con Arma. Pasivas")
SeriesBar1.Add(91177.119999999995, "Acero en Pretensados")
SeriesBar1.Marks.Visible = False
'ch1.Legend.Shadow.Visible = True
ch1.Legend.Visible = False
ch1.Series(0).ShowInLegend = False
'ch1.Series(0).Color = Color.CornflowerBlue
ch1.Walls.Back.Gradient.Visible = False
ch1.Walls.Back.Color = Color.White
ch1.Panel.Gradient.Visible = False
ch1.Panel.Color = Color.White
ch1.Axes.Bottom.Labels.Angle = 30
SeriesBar1.Color = Color.Blue
SeriesBar1.Gradient.StartColor = Color.RoyalBlue
SeriesBar1.Gradient.MiddleColor = Color.DodgerBlue
SeriesBar1.Gradient.EndColor = Color.DeepSkyBlue
SeriesBar1.Gradient.UseMiddle = True
SeriesBar1.Gradient.Visible = True
SeriesBar1.BarStyle = Steema.TeeChart.Styles.BarStyles.RectGradient
AddCustomLabelsBar1(SeriesBar1, labelstext1)
ch1.Series.Add(SeriesBar1)
'ch1.Panel.Bevel.Outer = Steema.TeeChart.Drawing.BevelStyles.None
Dim JpegBarras1 As Steema.TeeChart.Export.JPEGFormat = ch1.Export.Image.JPEG
JpegBarras1.Quality = 100
JpegBarras1.Width = 900 'm_PictureBox.Width
JpegBarras1.Height = 700 'm_PictureBox.Height
WebChartTripleBarras1.Chart.Export.Image.JPEG.Save("C:\ImagenInformeTripleBarras1Final.jpeg")
Could it be I miss something?
Re: Saving chart with itextsharp
Posted: Thu May 30, 2013 3:02 pm
by 10050769
Hello Fulcrum,
I have modified a little your code and using it but my AddCustomLabels method, your code works in correct way:
Code: Select all
Private series1 As Steema.TeeChart.Styles.Bar
Private labelstext As String()
Private ch1 As Steema.TeeChart.Chart
Private Sub InitializeChart()
ch1 = WebChart1.Chart()
labelstext = New String() {"Hormigon", "Acero Estructural", "Acero con Arma. Pasivas", "Acero en Pretensados"}
Dim SeriesBar1 As New Steema.TeeChart.Styles.Bar(ch1)
SeriesBar1.Add(72049.79, "Hormigon")
SeriesBar1.Add(23371.14, "Acero Estructural")
SeriesBar1.Add(71177.12, "Acero con Arma. Pasivas")
SeriesBar1.Add(91177.12, "Acero en Pretensados")
SeriesBar1.Marks.Visible = False
ch1.Legend.Visible = False
ch1.Series(0).ShowInLegend = False
ch1.Walls.Back.Gradient.Visible = False
ch1.Walls.Back.Color = Color.White
ch1.Panel.Gradient.Visible = False
ch1.Panel.Color = Color.White
ch1.Axes.Bottom.Labels.Angle = 30
SeriesBar1.Color = Color.Blue
SeriesBar1.Gradient.StartColor = Color.RoyalBlue
SeriesBar1.Gradient.MiddleColor = Color.DodgerBlue
SeriesBar1.Gradient.EndColor = Color.DeepSkyBlue
SeriesBar1.Gradient.UseMiddle = True
SeriesBar1.Gradient.Visible = True
SeriesBar1.BarStyle = Steema.TeeChart.Styles.BarStyles.RectGradient
AddCustomLabels(SeriesBar1, labelstext)
ch1.Panel.Bevel.Outer = Steema.TeeChart.Drawing.BevelStyles.None
Dim JpegBarras1 As Steema.TeeChart.Export.JPEGFormat = ch1.Export.Image.JPEG
JpegBarras1.Quality = 100
JpegBarras1.Width = 900 'm_PictureBox.Width
JpegBarras1.Height = 700 'm_PictureBox.Height
WebChart1.Chart.Export.Image.JPEG.Save("C:\ImagenInformeTripleBarras1Final.jpeg")
End Sub
Protected Sub AddCustomLabels(ByVal s As Steema.TeeChart.Styles.Series, ByVal arraylabels As String())
ch1.Chart.Axes.Bottom.Labels.Items.Clear()
For i As Integer = 0 To s.Count - 1
ch1.Chart.Axes.Bottom.Labels.Items.Add(s.XValues(i), arraylabels(i))
Next
End Sub
I have made the test in VS2008 and latest version of TeeChartFor.Net. Do you use last version of TeeChartFor.Net?
Thanks,
Re: Saving chart with itextsharp
Posted: Mon Jun 03, 2013 10:29 am
by 15664465
Thank you for everything Sandra, the problema is finally solved