gpt4 book ai didi

c# - 使用 OpenXml 和 C# 删除 word 中的水印会损坏文档

转载 作者:太空宇宙 更新时间:2023-11-03 14:55:52 29 4
gpt4 key购买 nike

我已尝试使用以下代码块从文档中删除水印

代码 1:

private static void DeleteCustomWatermark(WordprocessingDocument package, string watermarkId)
{
MainDocumentPart maindoc = package.MainDocumentPart;
if(maindoc!=null)
{
var headers = maindoc.GetPartsOfType<HeaderPart>();
if(headers!=null)
{
var head = headers.First(); //we are sure that this header part contains the Watermark with id=watermarkId
var watermark = head.GetPartById(watermarkId);
if(watermark!=null)
head.DeletePart(watermark);
}
}
}

代码 2:

   public static void DeleteCustomWatermark(WordProcessingDocument package, string headerId)
{
//headerId is the id of the header section which contains the watermark
MainDocumentPart = maindoc = package.MainDocumentPart;
if(maindoc!=null)
{
var header = maindoc.HeaderParts.First(i=>maindoc.GetIdOfPart(i).Equals(headerId));
if(header!=null)
maindoc.DeletePart(header)
}
}

我已经尝试了两个代码块。它会删除水印但会使文档损坏。之后我需要恢复。恢复后文档很好。但我想要适当的解决方案,以便我可以使用 C# 代码删除水印而不会损坏文档。请帮忙。

谢谢

最佳答案

您还需要删除标题部分中的“图片”或“绘图”。

例如

List<Picture> pictures = new List<Picture>(headerPart.RootElement.Descendants<Picture>());

...

foreach(Picture p in pictures) {
p.Remove();
}

...

headerPart.DeleteParts(imagePartList);

关于c# - 使用 OpenXml 和 C# 删除 word 中的水印会损坏文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49167521/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com