Aspose produced PPT files are too big

Hello.

We have been using trial versions of aspose.cells and aspose.slides to create PowerPoint reports. My developers posted a couple of tickets but we have not received a satisfactory solution to our problem.

I would be very happy to purchase your products if we could resolve these critical issues. Right now any files that we create with Aspose turns out 3 to 5 times larger than when we don't use Aspose. One report, for example, that we used Aspose for came out over 20MB in size. But when I zip that file up it compresses down to less than 2MB. Obviously something inefficient is going on inside of the files.

Please review forum topics 188586 and 183126 and let me know if we can discuss. I am available through 11pm Central US time.

I urgently need to resolve this issue or move on and find another solution. I can't email files that are +20MB to my clients.

Thanks,

Richard.

Hi,

Thank you for considering Aspose.

Well, as your issues are related to Aspose.Slides and registered with Aspose.Slides team, I am moving this thread to Aspose.Slides forum where one of our Aspose.Slides team developer will update you soon about the progress regarding your reported issues.

Thank You & Best Regards,

Hi Richard,

Can you please provide the PPT created with Aspose.Slides alongwith source code so that we can properly investigate the issue?

There are 3 files in attached archive :

sixAbbottSlides.ppt (1.9Mb) – six last slides from June abbott report

sixAbbottSlides_borders-updated.ppt (0.9Mb) – the same slides, but for each table in this presentation I set borders (for whole table) manually from ‘Borders and Fill’ dialog (no any changes in formatting, just switch borders off and then switch on)

template_slide.ppt – template with one slide – we use it for this slides type.

We are filling this tables in cycles like this:

foreach (RGAbbotReport.AbbottReportRow row in rgdtCorps)
{
    line++;
    dataTable.GetCell(0, line).TextFrame.Paragraphs[0].Portions[0].Text =
        " " + ReportGeneratorFunctions.Corp_Substitutes(row.Corporation).ToUpper();

    FillTableRow(line, row, dataTable);

    if (row.Corporation.ToLower().IndexOf("abbott") >= 0)
    {
        for (int j = 0; j < 16; j++)
        {
            dataTable.GetCell(j, line).FillFormat.Type = FillType.Solid;
            dataTable.GetCell(j, line).FillFormat.BackColor = abbotColor;
            dataTable.GetCell(j, line).FillFormat.ForeColor = abbotColor;
            dataTable.GetCell(j, line).TextFrame.Paragraphs[0].Portions[0].FontColor = Color.White;
        }
    }
}

Function for fill one table row is :

void FillTableRow(int line, RGAbbotReport.AbbottReportRow row, Table dataTable)
{
    //ranks
    dataTable.GetCell(1, line).TextFrame.Paragraphs[0].Portions[0].Text = row.RNK_MAT.ToString();
    dataTable.GetCell(6, line).TextFrame.Paragraphs[0].Portions[0].Text = row.RNK_YTD.ToString();

    if (row.RNK_YTD == 0) dataTable.GetCell(6, line).TextFrame.Paragraphs[0].Portions[0].Text = row.RNK_MTH.ToString();

    dataTable.GetCell(11, line).TextFrame.Paragraphs[0].Portions[0].Text = row.RNK_MTH.ToString();
    dataTable.GetCell(2, line).TextFrame.Paragraphs[0].Portions[0].Text = FormatSales(row.SALES_MAT);
    dataTable.GetCell(7, line).TextFrame.Paragraphs[0].Portions[0].Text = FormatSales(row.SALES_YTD);
    dataTable.GetCell(12, line).TextFrame.Paragraphs[0].Portions[0].Text = FormatSales(row.SALES_MTH);

    //Share
    dataTable.GetCell(4, line).TextFrame.Paragraphs[0].Portions[0].Text = (row.SHARE_MAT).ToString("##0.0");
    dataTable.GetCell(9, line).TextFrame.Paragraphs[0].Portions[0].Text = (row.SHARE_YTD).ToString("##0.0");
    dataTable.GetCell(14, line).TextFrame.Paragraphs[0].Portions[0].Text = (row.SHARE_MTH).ToString("##0.0");

    //growth
    dataTable.GetCell(3, line).TextFrame.Paragraphs[0].Portions[0].Text = row.GROWTH_MAT;
    dataTable.GetCell(8, line).TextFrame.Paragraphs[0].Portions[0].Text = row.GROWTH_YTD;
    dataTable.GetCell(13, line).TextFrame.Paragraphs[0].Portions[0].Text = row.GROWTH_MTH;

    //EI
    dataTable.GetCell(5, line).TextFrame.Paragraphs[0].Portions[0].Text = row.EI_MAT;
    dataTable.GetCell(10, line).TextFrame.Paragraphs[0].Portions[0].Text = row.EI_YTD;
    dataTable.GetCell(15, line).TextFrame.Paragraphs[0].Portions[0].Text = row.EI_MTH;
}

Hi Richard,

I have investigated the issue by cloning the template slide provided by you to a new presentation and filling the table cells. Its size does not grow much keeping in mind that Evaluation Version adds some text to every slide. The template slide and the slide produced with Aspose.Slides for .NET named test.ppt are zipped into test.zip and attached. The code used is as below.

Presentation pres = new Presentation("d:\\ppt\\richard\\template_slide.ppt");

Presentation pres1 = new Presentation();

Slide sld = pres.GetSlideByPosition(1);

System.Collections.SortedList sl = new System.Collections.SortedList(1);

Slide sld1 = pres.CloneSlide(sld, 1, pres1, sl);

pres1.Slides.RemoveAt(0);

Slide sldTable=pres1.GetSlideByPosition(1);

Shapes shps=sldTable.Shapes;

foreach (Shape shp in shps)

{

if (shp is Aspose.Slides.Table)

{

Aspose.Slides.Table tbl = (Aspose.Slides.Table)shp;

for (int i = 0; i < 16; i++)

for (int j = 2; j < 35;j++ )

{

tbl.GetCell(i, j).TextFrame.Paragraphs[0].Portions[0].Text = "C" + i.ToString() + (j-2);

}

}

}

pres1.DeleteHandout();

pres1.DeleteUnusedMasters();

pres1.Write("d:\\ppt\\richard\\test.ppt");

Thank you for the reply. We will evaluate it over the next few days and get back to you ASAP with any additional questions.

Richard.

Hello again.

We have updated the test.ppt file provided to us earlier. We manually updated the table borders (remove border -> set border -> saved as test_m.ppt). The attached test_m.ppt is only 197KB whereas the original test.ppt was 389KB. This one table contained about 200KB of unnecessary data.

We are creating large reports (100+ slides) so you can imagine that the file size grows very quickly with this extra data.

We also tried re-formatting PPT 2003 table as PPT 2007 but it didn't help.

Please advise as soon as possible.

Thanks,

Richard.

Hi Richard,

I am investigating the issue with different scenarios / test cases and will inform you on the findings.

Hi Richard,

The size of the ppt is growing due to 16x35 table as soon as we clone it from the source template. The reason for that is explained here. The issue has already been registered as "Table Optimization" with issue id 10294. You will be informed accordingly as soon as it is resolved.

Thanks for the feedback.

Can you give me any sense of the timing on this fix? I don't have much time to wait. If a fix for this solution is not expected soon (next few weeks) then I will have to find another solution to my power point automation needs.

Regards,

Richard.

Hello,

I don’t think that tables optimizations (by size) can be implemented in the next weeks. The more real time frame is the beginning of the next year. That is large work and will take time because significant part of table’s recalculation and saving should be changed. If you like we can inform you as soon as tables will be optimized.

Sure. Please do inform me.

Thanks,

Richard.

Hi
Have you any good news about tables issue?

Hi,

Thanks for your interest in Aspose.Slides.

Unfortunately, this issue is yet to fix. It will take more time to fix as it requires significant changes in the current design. Sorry for the inconvenience.

Thanks and Best Regards

Hi

we are trying to use Aspose components again. Many bugs were fixed, but we still see ‘big presentation’ issue. Could you please review it?

Hello Dear,

Please accept my apology for the delayed response.

I have requested our development team and they are working on the issue. I will share the response with you as soon as some information is shared by them. I really appreciate your patience for that.

Thanks and Regards,