Skip to content

Commit 41eb1b7

Browse files
committed
Presentation corrupts as Excel file used in chart part is missing while building presenation from slideparts.
1 parent 6e56a5f commit 41eb1b7

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

OpenXmlPowerTools/PresentationBuilder.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1057,6 +1057,21 @@ private static void CopyChartObjects(ChartPart oldChart, ChartPart newChart)
10571057
dataReference.Attribute(R.id).Value = newChart.GetIdOfPart(newPart);
10581058
continue;
10591059
}
1060+
ExtendedPart extendedPart = oldPartIdPair.OpenXmlPart as ExtendedPart;
1061+
if (extendedPart != null)
1062+
{
1063+
ExtendedPart newPart = newChart.AddExtendedPart(extendedPart.RelationshipType, extendedPart.ContentType, ".dat");
1064+
using (Stream oldObject = extendedPart.GetStream(FileMode.Open, FileAccess.Read))
1065+
using (Stream newObject = newPart.GetStream(FileMode.Create, FileAccess.ReadWrite))
1066+
{
1067+
int byteCount;
1068+
byte[] buffer = new byte[65536];
1069+
while ((byteCount = oldObject.Read(buffer, 0, 65536)) != 0)
1070+
newObject.Write(buffer, 0, byteCount);
1071+
}
1072+
dataReference.Attribute(R.id).Value = newChart.GetIdOfPart(newPart);
1073+
continue;
1074+
}
10601075
EmbeddedObjectPart oldEmbeddedObjectPart = oldPartIdPair.OpenXmlPart as EmbeddedObjectPart;
10611076
if (oldEmbeddedObjectPart != null)
10621077
{

0 commit comments

Comments
 (0)