首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在流中使用OpenXML C#更改word文档页面方向

在流中使用OpenXML C#更改Word文档页面方向,可以通过以下步骤实现:

  1. 引入OpenXML SDK库:首先,需要在项目中引入OpenXML SDK库,以便使用相关的类和方法。可以通过NuGet包管理器安装"DocumentFormat.OpenXml"包。
  2. 打开Word文档:使用OpenXML SDK库中的WordprocessingDocument类,可以打开Word文档。可以使用WordprocessingDocument.Open()方法来打开一个现有的Word文档。
代码语言:txt
复制
using (WordprocessingDocument doc = WordprocessingDocument.Open(stream, true))
{
    // 在这里进行文档操作
}
  1. 获取文档部件:通过WordprocessingDocument对象,可以获取到文档的各个部件,例如MainDocumentPartHeaderPartFooterPart等。
代码语言:txt
复制
MainDocumentPart mainPart = doc.MainDocumentPart;
  1. 更改页面方向:通过MainDocumentPart对象,可以获取到文档的Document元素,然后修改其中的Body元素的SectionProperties属性,从而更改页面方向。
代码语言:txt
复制
Document document = mainPart.Document;
Body body = document.Body;

// 获取第一个节的节属性
SectionProperties sectionProps = body.Elements<SectionProperties>().FirstOrDefault();

// 如果不存在节属性,则创建一个新的节属性
if (sectionProps == null)
{
    sectionProps = new SectionProperties();
    body.InsertBefore(sectionProps, body.Elements<Paragraph>().FirstOrDefault());
}

// 更改页面方向为横向
PageSize pageSize = sectionProps.Elements<PageSize>().FirstOrDefault();
if (pageSize != null)
{
    pageSize.Orientation = PageOrientationValues.Landscape;
}
else
{
    pageSize = new PageSize() { Orientation = PageOrientationValues.Landscape };
    sectionProps.Append(pageSize);
}

// 保存文档
mainPart.Document.Save();
  1. 关闭文档:在完成对文档的修改后,需要关闭文档以释放资源。
代码语言:txt
复制
doc.Close();

这样,通过使用OpenXML SDK库和C#编程,就可以在流中更改Word文档的页面方向了。

推荐的腾讯云相关产品:腾讯云对象存储(COS),用于存储和管理文档文件。产品介绍链接地址:https://cloud.tencent.com/product/cos

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Office OpenXml SDK 使用 Fallback 图片显示 Ole 元素

写一个 WinForms 程序用来读取 Word 里面的图片显示,解析 Word 等 Office 文档,会看到一些 ole object 元素,而有些 ole object 会有 Fallback...或者我用插件做了一个复杂的元素,没有插件的设备如何让用户看到? Office 的一个做法是通过 Fallback 元素,在里面放一张图片 因为我的 Word 文档写了很多逗比的话,就不开放给大家。...除了 Word PPT 解析上也差不多,解析 PPT 里面的 Ole 元素,使用 Fallback 元素显示图片是本文的例子。...dotnet 使用 OpenXml 解析 PPT 文件 我假定只有一个页面,因为我传入的PPT文件就只有一个页面,这个需要根据你的实际代码更改 // 我假定你只有一个页面...不过 OpenXML SDK 已经封装了 那么如何从拿到 OleObject 返回备用图片,先拿到对应的页面,所有资源放在页面的 SlidePart 元素 private static

98720

dotnet OpenXML 解析 PPT 页面元素文档格式

本文告诉大家 OpenXML 里面的 PPT 页面 Slide 的元素文档格式 是否小伙伴还记得如何使用 OpenXML SDK 获取一份 PPTX 文件的某一个页面?...如果不记得,请看 C# dotnet 使用 OpenXml 解析 PPT 文件 如下是一个简单的 PPTX 的 Slide 页面 ? 大概的主结构如下 ?...shape 添加断点就可以看到断点进入 VS 的帮助下,其实咱可以不理会PPT文档本身,直接使用 OpenXML 解析完成的值,这样做的优势在于不需要频繁去找文档。...除非真的在看了注释之后依然不理解属性的含义和作用,不过一般此时看文档作用也不大 例如想要看某个页面包含的元素,可以点开 shapeTree 的 ChildElements 属性 ?...但 PPT 使用的文本和 Word 的文本是等价的,而 Word 的文本小伙伴都知道有多复杂了…… 因此 PPT 解析里面的神坑其实就是文本的解析部分,关于文本解析我写了一些博客 换句话说如果完成了

1K20

dotnet OpenXML文档生成创建文档的代码的库

本文和大家介绍 Serialize.OpenXml.CodeGen 这个支持从某个文档生成用于创建出这个文档C# 或 VB 代码的库。...作用就是可以让小伙伴拿到一份模版文件之后,可以通过 Serialize.OpenXml.CodeGen 生成能创建出这份文档C# 或 VB 的代码,用于在这份代码上面更改功能,做到创建定制 Docx...或 PPTX 或 Xlsx 文档的功能 这是一个完全开源的库,代码放在 https://github.com/rmboggs/Serialize.OpenXml.CodeGen 欢迎小伙伴访问 这个库的功能就是从...Office 文档里面,如 Excel 文档里面读取文档内容,生成 CodeCompileUnit 对象,通过 CodeCompileUnit 对象可以序列化为 C# 或 VB 代码 如从一个 xlsx...文件创建对应的 C# 代码,可以使用下面代码 假定在 C 盘有一个 Temp 文件夹,这个文件夹里面有一个 Sample1.xlsx 文件,调用下面代码之后,将会创建了 Sample1.cs 文件

74620

dotnet OpenXML 幻灯片 PPTX 的 Slide Id 和页面序号的关系

使用 OpenXML SDK 进行 Office 文档的解析时,对幻灯片 PPTX 文档页面解析也许会遇到页面顺序的问题,本文告诉大家 Office 文档里面页面的序号和顺序之间的关系以及如何读取页面序号...开始之前,我期望你是了解一些 PPT 解析的相关知识的,入门级博客请看 C# dotnet 使用 OpenXml 解析 PPT 文件 C# dotnet 使用 OpenXml 解析 PPT 文件...这篇博客没有详细告诉大家页面顺序的问题,但是按照 C# dotnet 使用 OpenXml 解析 PPT 文件 这篇博客的写法就是能拿到对的页面顺序 ECMA 376 标准说明, Presentation.xml...:sldIdLst> 这里的 p:sldIdLst 将会存放在 PPT 画布里面多个页面之间的顺序,上面代码页面的 Slide Id 是 id 这个属性,也就是当前的文档只有一个页面,这个页面的 Slide...这个属性是通用的属性,详细请看 Office 文档解析 文档格式和协议 而 id="277" 的 id 需要使用 slideId.Id 读取,请看下面代码 public void Foo(FIleInfo

71410

C# dotnet 使用 OpenXml 关闭时不自动保存文档方法

默认使用 OpenXML SDK 读写 Office 文件,如 PPT 或 Word 或 Excel 文件时,关闭时调用 Dispose 将会自动将更改部分写入到文件。...本文告诉大家如何让 OpenXML SDK 不写入只是释放资源 如使用以下代码传入 .docs 文件进行解析 using var wordprocessingDocument =...Text = "逗比"; 根据 C# 最新的语法,使用了 using var 将会在方法结束的时候,自动调用 Dispose 方法,和 using () 的写法差不多。...但是调用 Dispose 方法时,将会发现,以上的更改自动保存到 Test.docx 文件里面 如果期望不自动保存,可以 OpenSettings 设置不自动保存,如以下代码...以上方法对于通用的 OpenXML 格式文件,如 docx 和 pptx 和 xlsx 等文件都可以设置关闭时不自动保存 本文所有代码放在 github 和 gitee 欢迎访问 可以通过如下方式获取本文的源代码

48230

dotnet OpenXML SDK 形状的翻转与旋转

上面图片红色的是箭头,也就是 PPTX 文档里面的形状,而黑色的是辅助线。可以看到使用 a:off 决定元素的坐标,而这个形状线条多长和方向就通过 a:ext 决定,请看下面 ?...而在 PPT 进行垂直方向镜像之后,不能更改元素的坐标,也就是如果绘制出线条形状的外接矩形,可以看到外接矩形元素进行翻转前后的坐标和大小不变 那么如果加上旋转呢?...github 下载 OpenXML 的旋转使用 rot 表示,通过 Office Open XML 的测量单位 可以了解单位是角度,每 60000 表示一度,也就是代码 rot="2700000"...翻转之后的箭头是 45 度,而加上旋转是翻转之后加上的,此时加上 45 度也是 90 度 所以可以看到上面代码的箭头是 90 度的 关于元素的宽度高度等请看 C# dotnet 使用 OpenXml...OfficeDocumentZipper 这个工具 GitHub 完全开源,请看 dotnet OpenXML 解压缩文档为文件夹工具 更多请看 Office 使用 OpenXML SDK 解析文档博客目录

90930

dotnet OpenXML 简单聊聊 PPT 文本解析

本文将和小伙伴介绍 PPT 的文本存放的方式 PPT 的文本框也是形状,只是形状里面添加了特殊的设置。...开始之前,我期望你是了解 PPT 的整个元素的存放格式的,请看 dotnet OpenXML 解析 PPT 页面元素文档格式 最简单的文本元素,当然,我这里的简单说的是文本解析层的。...DocumentFormat.OpenXml.Drawing 的内容意味着是 DrawingDL 的定义,也就是将是 Office 多个格式如 PPT 和 Word 等共同使用的定义,因此对 DrawingDL...第一点是收集这些属性上面, PPT 里面最简单的文本才会将所有的属性都添加上,而基本上的 PPT 文档里面是不会将所有的属性添加的,那么这些没有添加的属性使用的是默认属性?...其实不一定,因为 PPT 的属性是有继承的,从页面继承 SlideLayout 属性,从 SlideLayout 继承 SlideMaster 属性。

1.1K10

dotnet OpenXML 读取 PPT 内嵌 ole 格式 Excel 表格的信息

Office ,可以 PPT 里面插入表格,插入表格有好多不同的方法,对应 OpenXML 文档存储的更多不同的方式。...本文来介绍如何读取 PPT 内嵌 ole 格式的 xls+ 表格的方法 Office 的 PPT ,插入表格可以对应多个不同的方式: 通过 GraphicData 内嵌到 PPTX 页面里面 通过嵌入文件方式...这个格式存放方式是 ole 格式,在此 OLE 文件里面,将存放 OpenXML 格式的 xlsx 格式的表格文件,以下将详细告诉大家此格式 Slide.xml 页面里面,存放的是 GraphicFrame... OpenXML SDK 里面,不会真的将 PPTX 文件解压缩,原因有两个:第一个是性能考虑,第二个是有一些内容解压缩之后会丢失信息(不是使用文件存放的,只是兼容zip格式而已)而导致了尝试使用路径读取...Workbook.Sheets; 更多读取 Excel 的方法请看 C# dotnet WPF 使用 OpenXml 解析 Excel 文件 本文不再详细告诉大家如何读取此 Excel 内容 本文以上的测试文件和代码放在

1.3K40

Office Open XML学习(1)-创建excel文档,并向单元格插入字符串

自从Open XML出现后,这种情况很大程度上得到了改观,Open XML已经逐渐成为一种办公文档的通用国际标准了(该标准基于XML格式),详情见百度百科 http://baike.baidu.com.../view/1201978.htm 要在C#使用Open XML,需先下载Open XML SDK (目前最高版本为2.0),下载地址为:http://www.microsoft.com/downloads...FamilyID=c6e744e5-36e9-45f5-8d8c-331df206e0d0 安装完以后,就能直接使用了,下面的代码演示了,如何创建一个Excel文档,并创建一个工作表"博客园",最后该工作表的单元格...该工具还能将任何Open Document(即支持Open XML标准的office文档),直接生成相应的C#代码(很给力的一个功能!)...mfr=true http://msdn.microsoft.com/zh-cn/library/bb448854.aspx 另外codeplex上还有一个利用openxml对excel/word常用操作进行封装的开源项目

2.6K100

dotnet OpenXML 的 Slide Master 和 Slide Layout 是什么

本文来告诉大家解析 PPT 文档的时候,元素继承以及占位符需要用到的 Slide Master 和 Slide Layout 是什么 在做 Office 解析的时候,小伙伴需要特别的去学习一下 Office...光属性定义加上注释的 C# 代码文件就有 15M 这么多 基本上所有市面上的解析 Office 的软件都只是实现很少的一部分功能…… 包括 WPS 在内 回到主题,咱今天来聊聊 OpenXML 的 PPTX...按照程序员的自学速度预计 10 分钟左右就能了解啦 来,先打开最新版本的 PPT 2013 新建一份空白的文档(最新版 2013 哈)实际上使用 2003 以上版本就可以 ? 点击视图的模版 ?...│ Presentation.xml.rels │ └─_rels .rels 上面代码需要关注的是 SlideLayouts 和 SlideMasters 的文件 代码里面可以通过页面获取页面使用的...SlideLayout 和 SlideMaster 使用 OpenXML SDK 不需要自己去处理这部分复杂的逻辑 using (var presentationDocument

80820

dotnet OpenXML 读取 PPT 形状边框定义 Style 的颜色画刷

本文来和大家聊聊 PPT 形状使用了 Style 样式的颜色画刷读取方法 开始之前,期望大家已了解如何在 dotnet 应用里面读取 PPT 文件,如果还不了解读取方法,请参阅 C# dotnet...使用 OpenXml 解析 PPT 文件 本文核心是来和大家聊聊 ECMA 376 文档里面,第 20.1.4.2.19 章的 lnRef (Line Reference) 内容里面没有提到的知识 ...Office 的 PowerPoint 添加默认的形状,没有更改形状的填充和轮廓,形状使用的是默认的样式,如以下的默认矩形定义 通过 dotnet OpenXML 颜色变换 文档可以了解到 Shade 是让颜色变暗,使用如下代码加上特效 var shade...; 以上的文档里面,是存在 SolidFill 内容的,因此上面代码就不判断空了 获取里层的颜色,如果是 srgbClr (对应 OpenXML 的 RgbColorModelHex 类型)的话,那么计算颜色即可

1K20

dotnet OpenXML 为什么资源使用 Relationship 引用

OpenXML 文档格式里面,所有的资源以及页面之间的引用等,都是通过 Relationship 的引用,如资源需要通过 GetReferenceRelationship 的方法才能拿到。...文档解析 文档格式和协议 我和小伙伴讲了 Office 文档的格式,这里存储的方式使用的是 OPC (Open Package Convention) 协议 OPC 协议里面要求多个 Part 也就是文件之间不能相互引用...根据OPC协议的规定,所有的 Relationship 都必须存储名为 _rels 的文件夹,并且所有 Relationship 的文件名都必须以 .rels 为后缀。...Part 文件加上 .rels 后缀,不能使用其他名字 如某个 PPT 页面 slide1.xml 引用了某个音频文件,那么这个页面不能直接写音频文件的相对路径,而是需要在 slide1.xml 所在文件夹新建一个...dotnet 使用 OpenXml 解析 PPT 里面的视频 更多请看 Office 使用 OpenXML SDK 解析文档博客目录 ---- 本文会经常更新,请阅读原文: https

47440

dotnet OpenXML 修复 Office 文档里面包含格式不正确的 Uri 而无法解析

使用 OpenXML 解析 Office 文档,无论是 PPT 还是 Word 还是 Excel 文档,都会使用标准方式解析。...OfficeDev/Open-XML-SDK 而在 OpenXML SDK 的 2.12.0 终于提供了修复方法,更改代码请看 Add a relationship rewriter to help... 2.12.0 或以上的版本,可以 OpenSettings 里面传入如何处理格式不对的 Uri 的文档,如本文使用到的测试文档,这是一个 Excel 文档,这个文档里面包含下面代码 ...然后重新写回到文档里面,这样就能修复此问题 也可以尝试使用只读的方式读取,只有在出现格式不对的时候,再复制文档一份用来编辑写入。...解压缩文档为文件夹工具 工具协助测试的,这个工具是开源免费的工具,欢迎小伙伴使用 更多请看 Office 使用 OpenXML SDK 解析文档博客目录 ---- 本文会经常更新,请阅读原文

1.7K10

dotnet OpenXML 聊聊文本段落对齐方式

Word 和 PPT 的文本段落对齐规则是相同的,对齐的规则比较多,本文将一一告诉大家 文本的段落对齐,需要设置给段落属性上, OpenXML SDK 里,使用 TextAlignmentTypeValues...此 OpenXML SDK 工具 我放在 CSDN 下载 ,如果你想要但是不想从 CSDN 下载,还请发邮件给我 ECMA 376 文档,可以从 20.1.10.58 章找到具体的定义 我新建一个空...OpenXML SDK 工具 生成的 测试效果如下: Justified 两端对齐, OpenXML 文档里面写入的字符串是 just 的值。...(分散对齐)-百度经验 word两端对齐与分散对齐的区别_Office教程网 两端分散对齐怎么设置_Word文档两端对齐.分散对齐如何设置_如说的博客-CSDN博客 office2016Word文档字数不同段落如何两端都对齐...-百度经验 Word文档左右两端对齐有什么用,怎么调整 TextAlignmentTypeValues 枚举 (DocumentFormat.OpenXml.Drawing) 本文会经常更新,

1.4K30

dotnet OpenXML 让 PathLst 自定义形状转 SVG 路径格式的 Geometry 内容

Office 文档里面,可以使用自己定制的自绘制形状,自己绘制的内容将会存放为 pathLst 也就是 List of Shape Paths 内容到文档里面。...有对 PathLst 做详细的规定,本文的方法适合于符合 ECMA 376 的 Office 文档,包括 PPT 和 Word 和 Excel 等文档 开始之前请先看一下效果,下面是 PowerPoint...以上的全部代码放在 github 和 gitee 欢迎下载测试 通过 ECMA 376 的 20.1.9.16 文档可以了解到自定义形状上,使用 a:custGeom 表示,而具体的形状使用 a:pathLst...OpenXML SDK 里面,读取页面里面所有的自定义形状,可以使用如下代码 using (var presentationDocument =...工具协助测试的,这个工具是开源免费的工具,欢迎小伙伴使用 更多请看 Office 使用 OpenXML SDK 解析文档博客目录 ---- 如果你想持续阅读我的最新博客,请点击 RSS

1.8K20

C# dotnet 使用 OpenXml 解析 Word 文件

本文聊的 Word 是 docx 格式,这个格式遵循 ECAM 376 全球标准,使用的格式是 OpenXML 格式, 2013 微软开源了 OpenXml 解析库。...这个库里面包含了海量代码,可以使用 MB 计算的代码量,通过这个解析库,咱可以使用几行代码完成对 Word 文件的解析,从文件到内存模型 本文通过一个简单的 WPF 程序告诉大家如何解析,这个简单的 WPF...WPF 通过设置 AllowDrop=”True” 就可以让控件支持接收拖放的文件 接着通过 NuGet 安装 Openxml 库,这个库支持跨平台。...Word 文档,可以使用下面代码就可以输出 Word 文档里面的内容 using (FileStream fs = new FileStream(fileList[0], FileMode.Open...可以看到代码非常简单,但是如果想要将整个 Word文档的内容解析出来,这个就复杂一些 代码放在 github 欢迎小伙伴访问

2.4K30

dotnet OpenXml SDK 形状填充渐变色的主题色

Office 文档的一些有趣的设计,颜色和画刷是可以继承的,这个继承包括了属性的继承。...形状填充里面使用的渐变色是可以一部分属性放在主题里面,主要找到主题里面的画刷,替换掉形状自己定义的内容,才是形状的画刷 我拿到一份有趣的课件,从这份课件的表现上,可以找到一个 Shape 元素里面的...OpenXML SDK 里面如何获取主题,如果是 Slide 页面的元素可以通过下面的代码获取主题 // Slide slide var slidePart = slide.SlidePart; FormatScheme... OpenXML SDK 里面没有给填充颜色一个基类,这部分的设计不是很好 PPT 文档里面对应的是 ppt\theme\themex.xml 文件里面的 a:fillStyleLst 的值 <a...如果形状自己定义了就使用形状定义的 请看下图就知道如何获取 大部分的存在继承关系和联系的都在 OpenXML SDK 里面写出来关系了,只有这些比较边角的功能需要自己实现 而渐变色的各个属性的行为请看

43210

C# dotnet 使用 OpenXml 解析 PPT 里面的视频

本文告诉大家如何从 PPTX 文件里面解析出视频 我期望看到本文的小伙伴是了解 OpenXML 的,如果想要解析 Office 的文档,我推荐使用使用 OpenXML SDK 这个开源的库,更多入门级博客请看...C# dotnet 使用 OpenXml 解析 PPT 文件 我做了一个简单的 PPT 文件,这个文件里面只有一页,这一页上面有一个视频。...presentationPart.SlideParts.FirstOrDefault(); // 忽略代码 } 上面代码是打开解析文件,我拿到第一页,而获取页面的元素需要了解一点是...PPT 将所有元素存放 ShapeTree 而视频是不存在元素的, PPT 里面用 Picture 存放视频 如上面代码,这就是视频元素其实也就是 Picture 元素,可以

65020
领券