\documentclass{article}
\usepackage{lipsum,comment}
\usepackage[left=3cm,right=3cm]{geometry}
\usepackage[logdefault,logfinal,strictcheck]{changelayout}
\usepackage{hyperref}
\hypersetup{colorlinks=true,linkcolor=red,pdfpagemode=UseThumbs,
  implicit=true,breaklinks=true,citecolor=purple}
\xglobal\preparecolorset{rgb}{x}{0}{%
  red1,1.00,0.31,0.31;%
  red2,1.00,0.32,0.33;%
  green1,0.00,0.50,0.00;%
  green2,0.00,0.50,0.25;%
  blue1,0.00,0.00,1.00;%
  blue2,0.00,0.00,0.63;%
  blue3,0.00,0.50,1.00;%
  blue4,0.00,0.50,0.75;%
  cyan1,0.50,0.84,1.00;%
  magenta1,0.50,0.00,0.50;%
  magenta2,0.50,0.00,1.00;%
  magenta3,1.00,0.38,1.00;%
  purple1,0.50,0.00,0.25;%
  purple2,0.50,0.00,0.50;%
  olive1,0.50,0.50,0.00;%
  orange1,1.00,0.50,0.25%
}
\long\def\tempa{%
  \begin{center}
  \makebox[0pt]{\fboxrule2pt%
    \fcolorbox{xred10}{yellow!25}{%
      \parbox{\dimexpr(\hsize+3cm)}{%
        This package is an extension of Peter Wilson's {\tt changepage} package.
        \par\medskip
        This package can be used with the \texttt{geometry} package,
        but not with any \texttt{memoir} class. I used the \texttt{geometry} package in the source file of this document.
        \par\medskip
        All page and text layout parameters can be changed for each
        page using the macros illustrated in the source file of
        this document. Please see the comments in the source file.
        \par\medskip
        This is a preliminary user guide; a more detailed manual
        is in the works.
      }
    }
  }
  \end{center}\relax
}
\begin{document}
\title{The {\tt changelayout} Package}
\author{Ahmed Musa\\[.5ex]University of Central Lancashire\\
  Preston, United Kingdom\\[1ex]\url{a.musa@rocketmail.com}
}
\maketitle

\adjusttextwidth{leftmargin=-1.5cm,rightmargin=-1.5cm,content=\tempa}
\par\bigskip

\lipsum[1-2]
\par\medskip
\adjusttextwidth{leftmargin=-1cm,rightmargin=-1cm,textcolor=blue,
  content=\lipsum[1-2]}
\par\medskip
\lipsum[1-2]

\newpage
\lipsum[1-1]
\par\medskip
\adjusttextwidth{switchadjust=true,leftmargin=-0cm,rightmargin=-1.5cm,
  textcolor=xmagenta20,content=\lipsum[1-2]}

\newpage
\lipsum[1-1]
\par\medskip
\adjusttextwidth{switchadjust=true,leftmargin=-0cm,rightmargin=-1.5cm,
  textcolor=red,content=\lipsum[1-2]}

\begin{comment}
  'switchadjust' is a boolean for switching left and right margins on
  odd and even pages.

  'strictcheck' is a boolean for enforcing strict page number check
  (the idea is from the 'changepage' package). For a large document,
  'strictcheck' will generate a corresponding large number of
  labels. This is not expected to be a problem with modern implementations
  of TeX/LaTeX.
\end{comment}

\newpage
\color{xgreen10}
\changetextlayout{oddsidemargin=-1cm, evensidemargin=0cm,textheight=550pt,
  textwidth=515pt}
\lipsum[1-4]
\normalcolor

\begin{comment}
  In addition to \changetextlayout, there is also \changepagelayout.
  Both \changetextlayout and \changepagelayout replace (in the total sense)
  the prevailing text/page layout parameters by the values submitted by
  the user. All the page layout parameters (including \marginparwidth)
  can be changed/replaced by simply submitting their new values.
\end{comment}

\newpage
\resetdefault%

\begin{comment}
  '\resetdefault' is a command for resetting page/text layout parameters
  to the default values. The default parameters are saved at each run.

  The original and final layout parameters are written into the log
  file (and displayed on the screen) by issuing the booleans
  'logdefault' and 'logfinal' (respectively) as options to the
  package (preferably at \usepackage). These may be useful when deciding
  on the changes or adjustments to be effected.
\end{comment}

\color{xorange10}
\adjusttextlayout{oddsidemargin=1cm, evensidemargin=-0cm, textheight=-50pt,
  textwidth=-50pt,topmargin=25pt}
\lipsum[1-4]

\begin{comment}
  In addition to \adjusttextlayout, there is also \adjustpagelayout.
  Both \adjusttextlayout and \adjustpagelayout adjust (by adding or
  subtracting) the prevailing text/page layout parameters by the
  values given by the user. All the text and page layout parameters
  can be adjusted.
\end{comment}

\newpage
\resetdefault%
\normalcolor

\end{document} 