Novacode.DocX.clonePackagePart C# (CSharp) Method

clonePackagePart() protected method

protected clonePackagePart ( PackagePart pp ) : PackagePart
pp System.IO.Packaging.PackagePart
return System.IO.Packaging.PackagePart
        protected PackagePart clonePackagePart(PackagePart pp)
        {
            PackagePart new_pp = package.CreatePart(pp.Uri, pp.ContentType, CompressionOption.Normal);

            using (Stream s_read = pp.GetStream())
            {
                using (Stream s_write = new PackagePartStream(new_pp.GetStream(FileMode.Create)))
                {
                    byte[] buffer = new byte[32768];
                    int read;
                    while ((read = s_read.Read(buffer, 0, buffer.Length)) > 0)
                    {
                        s_write.Write(buffer, 0, read);
                    }
                }
            }

            return new_pp;
        }