157 lines
4.9 KiB
C#
157 lines
4.9 KiB
C#
/***************************************************************************
|
|
|
|
Copyright (c) Microsoft Corporation 2011.
|
|
|
|
This code is licensed using the Microsoft Public License (Ms-PL). The text of the license can be found here:
|
|
|
|
http://www.microsoft.com/resources/sharedsource/licensingbasics/publiclicense.mspx
|
|
|
|
***************************************************************************/
|
|
|
|
using System;
|
|
using System.Management.Automation;
|
|
|
|
namespace OpenXmlPowerTools.Commands
|
|
{
|
|
[Cmdlet(VerbsCommon.Remove, "OpenXmlMarkup", SupportsShouldProcess = true)]
|
|
[OutputType("OpenXmlPowerToolsDocument")]
|
|
public class RemoveOpenXmlMarkupCmdlet : PowerToolsModifierCmdlet
|
|
{
|
|
private SimplifyMarkupSettings settings = new SimplifyMarkupSettings();
|
|
|
|
#region Parameters
|
|
[Parameter(Mandatory = false)]
|
|
public SwitchParameter AcceptRevisions
|
|
{
|
|
get { return settings.AcceptRevisions; }
|
|
set { settings.AcceptRevisions = value; }
|
|
}
|
|
|
|
[Parameter(Mandatory = false)]
|
|
public SwitchParameter RemoveContentControls
|
|
{
|
|
get { return settings.RemoveContentControls; }
|
|
set { settings.RemoveContentControls = value; }
|
|
}
|
|
|
|
[Parameter(Mandatory = false)]
|
|
public SwitchParameter RemoveSmartTags
|
|
{
|
|
get { return settings.RemoveSmartTags; }
|
|
set { settings.RemoveSmartTags = value; }
|
|
}
|
|
|
|
[Parameter(Mandatory = false)]
|
|
public SwitchParameter RemoveRsidInfo
|
|
{
|
|
get { return settings.RemoveRsidInfo; }
|
|
set { settings.RemoveRsidInfo = value; }
|
|
}
|
|
|
|
[Parameter(Mandatory = false)]
|
|
public SwitchParameter RemoveComments
|
|
{
|
|
get { return settings.RemoveComments; }
|
|
set { settings.RemoveComments = value; }
|
|
}
|
|
|
|
[Parameter(Mandatory = false)]
|
|
public SwitchParameter RemoveEndAndFootNotes
|
|
{
|
|
get { return settings.RemoveEndAndFootNotes; }
|
|
set { settings.RemoveEndAndFootNotes = value; }
|
|
}
|
|
|
|
[Parameter(Mandatory = false)]
|
|
public SwitchParameter ReplaceTabsWithSpaces
|
|
{
|
|
get { return settings.ReplaceTabsWithSpaces; }
|
|
set { settings.ReplaceTabsWithSpaces = value; }
|
|
}
|
|
|
|
[Parameter(Mandatory = false)]
|
|
public SwitchParameter RemoveFieldCodes
|
|
{
|
|
get { return settings.RemoveFieldCodes; }
|
|
set { settings.RemoveFieldCodes = value; }
|
|
}
|
|
|
|
[Parameter(Mandatory = false)]
|
|
public SwitchParameter RemovePermissions
|
|
{
|
|
get { return settings.RemovePermissions; }
|
|
set { settings.RemovePermissions = value; }
|
|
}
|
|
|
|
[Parameter(Mandatory = false)]
|
|
public SwitchParameter RemoveProof
|
|
{
|
|
get { return settings.RemoveProof; }
|
|
set { settings.RemoveProof = value; }
|
|
}
|
|
|
|
[Parameter(Mandatory = false)]
|
|
public SwitchParameter RemoveSoftHyphens
|
|
{
|
|
get { return settings.RemoveSoftHyphens; }
|
|
set { settings.RemoveSoftHyphens = value; }
|
|
}
|
|
|
|
[Parameter(Mandatory = false)]
|
|
public SwitchParameter RemoveLastRenderedPageBreak
|
|
{
|
|
get { return settings.RemoveLastRenderedPageBreak; }
|
|
set { settings.RemoveLastRenderedPageBreak = value; }
|
|
}
|
|
|
|
[Parameter(Mandatory = false)]
|
|
public SwitchParameter RemoveBookmarks
|
|
{
|
|
get { return settings.RemoveBookmarks; }
|
|
set { settings.RemoveBookmarks = value; }
|
|
}
|
|
|
|
[Parameter(Mandatory = false)]
|
|
public SwitchParameter RemoveWebHidden
|
|
{
|
|
get { return settings.RemoveWebHidden; }
|
|
set { settings.RemoveWebHidden = value; }
|
|
}
|
|
|
|
[Parameter(Mandatory = false)]
|
|
public SwitchParameter RemoveGoBackBookmark
|
|
{
|
|
get { return settings.RemoveGoBackBookmark; }
|
|
set { settings.RemoveGoBackBookmark = value; }
|
|
}
|
|
|
|
[Parameter(Mandatory = false)]
|
|
public SwitchParameter NormalizeXml
|
|
{
|
|
get { return settings.NormalizeXml; }
|
|
set { settings.NormalizeXml = value; }
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Cmdlet Overrides
|
|
protected override void ProcessRecord()
|
|
{
|
|
foreach (var document in AllDocuments("Remove-OpenXmlMarkup"))
|
|
{
|
|
try
|
|
{
|
|
if (!(document is WmlDocument))
|
|
throw new PowerToolsDocumentException("Not a wordprocessing document.");
|
|
OutputDocument(MarkupSimplifier.SimplifyMarkup((WmlDocument)document, settings));
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
WriteError(PowerToolsExceptionHandling.GetExceptionErrorRecord(e, document));
|
|
}
|
|
}
|
|
}
|
|
#endregion
|
|
}
|
|
}
|