b2xtranslator
b2xtranslator copied to clipboard
convert ppt to pptx throw a System.ObjectDisposedException:“Cannot access a closed stream”
using b2xtranslator.OpenXmlLib.PresentationML;
using b2xtranslator.PptFileFormat;
using b2xtranslator.PresentationMLMapping;
using b2xtranslator.Shell;
using b2xtranslator.StructuredStorage.Reader;
using System;
using System.Globalization;
namespace PPTAnalysis
{
internal class Program
{
public static string ChoosenOutputFile;
static void Main(string[] args)
{
var InputFile = @"D:\myppt.ppt";
var procFile = new ProcessingFile(InputFile);
if (ChoosenOutputFile == null)
{
if (InputFile.Contains("."))
{
ChoosenOutputFile = InputFile.Remove(InputFile.LastIndexOf(".")) + ".pptx";
}
else
{
ChoosenOutputFile = InputFile + ".pptx";
}
}
using (var reader = new StructuredStorageReader(procFile.File.FullName))
{
var ppt = new PowerpointDocument(reader);
var outType = Converter.DetectOutputType(ppt);
string conformOutputFile = Converter.GetConformFilename(ChoosenOutputFile, outType);
var pptx = PresentationDocument.Create(conformOutputFile, outType);
var start = DateTime.Now;
Console.WriteLine("Converting file {0} into {1}", InputFile, conformOutputFile);
Converter.Convert(ppt, pptx);
var end = DateTime.Now;
var diff = end.Subtract(start);
Console.WriteLine("Conversion of file {0} finished in {1} seconds", InputFile, diff.TotalSeconds.ToString(CultureInfo.InvariantCulture));
reader.Dispose();
}
Console.WriteLine("OK");
Console.ReadKey();
}
}
}
When executed [var ppt = new PowerpointDocument(reader)], throw the exception.
My project framework is. net core3.1
I encountered the same error running on. net framework 4.6.1
Did you solved this problem?
Did you solved this problem?
You need to add true in ZipArchive contructor. For exemple, replace this this.zipArchive = new ZipArchive(stream, ZipArchiveMode.Read); to this this.zipArchive = new ZipArchive(stream, ZipArchiveMode.Read, true); on this file https://github.com/EvolutionJobs/b2xtranslator/blob/90d05a6589706cf177a245fcb74e9cba4b6264ae/Common/OpenXmlLib/ZipFactory.cs