c# aspose操作word文档
背景
这个是一个操作word文档的插件
1.1插入图片
using Aspose.Words;
using Aspose.Words.Drawing;
using Aspose.Words.Rendering;
Document doc = new Document(TempValue);//TempValue doc模板的路径
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = new Shape(doc,ShapeType.Image);
shape.ImageData.SetImage(Server.MapPath("Images/test.jpg"));
shape.Width = 70;//设置宽和高
shape.Height = 70;
shape.WrapType = WrapType.None;
shape.BehindText = true;
//shape.RelativeHorizontalPosition = RelativeHorizontalPosition.Page;
//shape.HorizontalAlignment = HorizontalAlignment.Center;
//shape.RelativeVerticalPosition = RelativeVerticalPosition.Page;
//shape.VerticalAlignment = VerticalAlignment.Center;
//shape.HorizontalAlignment = HorizontalAlignment.Center;
builder.MoveToBookmark("PO_MyImage");
builder.InsertNode(shape);
doc.Save("newword.doc",SaveFormat.Doc);
1.2删除指定段落
// 根据表格找到所在段落
var paragraph = (Paragraph) table.GetAncestor(NodeType.Paragraph);
// 清除段落前的分页符
if (paragraph.ParagraphFormat.PageBreakBefore)
paragraph.ParagraphFormat.PageBreakBefore = false;
// 清除段落中的分页符
foreach (Run run in paragraph.Runs)
{
if (run.Text.Contains(ControlChar.PageBreak))
run.Text = run.Text.Replace(ControlChar.PageBreak, string.Empty);
}
1.3合并文档
Document doc = new Document();
// We should call this method to clear this document of any existing content.
doc.RemoveAllChildren();
int recordCount = 5;
for (int i = 1; i <= recordCount; i++)
{
// Open the document to join.
Document srcDoc = new Document(@"C:\DetailsList.doc");
// Append the source document at the end of the destination document.
doc.AppendDocument(srcDoc, ImportFormatMode.UseDestinationStyles);
// In automation you were required to insert a new section break at this point, however in Aspose.Words we
// don't need to do anything here as the appended document is imported as separate sectons already.
// If this is the second document or above being appended then unlink all headers footers in this section
// from the headers and footers of the previous section.
if (i > 1)
doc.Sections[i].HeadersFooters.LinkToPrevious(false);
}
1.4合并的时候在同一页显示
Document dstDoc = new Document(gDataDir + "TestFile.Destination.doc");
Document srcDoc = new Document(gDataDir + "TestFile.Source.doc");
// Make the document appear straight after the destination documents content.
srcDoc.FirstSection.PageSetup.SectionStart = SectionStart.Continuous;
// Append the source document using the original styles found in the source document.
dstDoc.AppendDocument(srcDoc, ImportFormatMode.KeepSourceFormatting);
dstDoc.Save(gDataDir + "TestFile.JoinContinuous Out.doc");
1.5合并的时候再另外一页开始
Document dstDoc = new Document(gDataDir + "TestFile.Destination.doc");
Document srcDoc = new Document(gDataDir + "TestFile.Source.doc");
// Set the appended document to start on a new page.
srcDoc.FirstSection.PageSetup.SectionStart = SectionStart.NewPage;
// Append the source document using the original styles found in the source document.
dstDoc.AppendDocument(srcDoc, ImportFormatMode.KeepSourceFormatting);
dstDoc.Save(gDataDir + "TestFile.JoinNewPage Out.doc");
1.6其他的一些信息
https://blog.csdn.net/ibigpig/article/details/8432245
1.7 Spire.Doc与Aspose.Words功能对比
http://www.cnblogs.com/dare/archive/2018/07/03/9259417.html
c# aspose操作word文档的更多相关文章
- iText操作word文档总结
操作word文档的工具有很多,除了iText之外还有POI,但是POI擅长的功能是操作excel,虽然也可以操作word,但是能力有限,而且还有很多的bug,技术并不成熟,下面就重点介绍一种操作wor ...
- C#操作Word文档(加密、解密、对应书签插入分页符)
原文:C#操作Word文档(加密.解密.对应书签插入分页符) 最近做一个项目,客户要求对已经生成好的RTF文件中的内容进行分页显示,由于之前对这方面没有什么了解,后来在网上也找了相关的资料,并结合自己 ...
- 利用Python操作Word文档【图片】
利用Python操作Word文档
- Java文件操作系列[3]——使用jacob操作word文档
Java对word文档的操作需要通过第三方组件实现,例如jacob.iText.POI和java2word等.jacob组件的功能最强大,可以操作word,Excel等格式的文件.该组件调用的的是操作 ...
- QTP操作word文档
QTP可以对word文档进行操作,这里最主要展示的是向word文档写入内容,并保存的功能. Option explicit Dim wordApp Set wordApp = createobject ...
- c#中操作word文档-四、对象模型
转自:http://blog.csdn.net/ruby97/article/details/7406806 Word对象模型 (.Net Perspective) 本文主要针对在Visual St ...
- python 操作word文档
因为工作需要操作一些word文档,记录一下学习思路 #-*- encoding: utf8 -*- import win32com from win32com.client import Dispat ...
- 2.QT中操作word文档
Qt/Windows桌面版提供了ActiveQt框架,用以为Qt和ActiveX提供完美结合.ActiveQt由两个模块组成: A QAxContainer模块允许我们使用COM对象并且可以 ...
- C# 操作Word 文档——添加Word页眉、页脚和页码
在Word文档中,我们可以通过添加页眉.页脚的方式来丰富文档内容.添加页眉.页脚时,可以添加时间.日期.文档标题,文档引用信息.页码.内容解释.图片/LOGO等多种图文信息.同时也可根据需要调整文字或 ...
- Java操作word文档使用JACOB和POI操作word,Excel,PPT需要的jar包
可参考文档: http://wibiline.iteye.com/blog/1725492 下载jar包 http://download.csdn.net/download/javashixiaofe ...
随机推荐
- 制作有延迟插件的rabbitmq镜像
插件Git官方地址:https://github.com/rabbitmq/rabbitmq-delayed-message-exchange Dockerfile FROM rabbitmq:3.8 ...
- 协议SPI:四线同步全双工 W25Qxx
SPI传输速度快80M,富家子弟最简单最快速完成 SCK-时钟 MOSI主机输出(DO),从机输入 MISO(DI) SS Slave Select(CS Chip Select)从机选择线,低电平有 ...
- [【stars-one】Android图标生成器 PC工具
原文: [stars-one]Android图标生成器 - Stars-One的杂货小窝 一款Android开发者的PC工具软件,可以快速生成android开发需要使用的xml矢量图标文件 起因 个人 ...
- jsp相对路径绝对路径
jsp相对路径绝对路径 很长一段时间纠结过JSP中的相对路径和绝对路径,也研究过一段时间,今天趁着有点时间,记下来,也有大家分享一下. 1)我们先来理解一下相对路径 首先还是我们的开始,建一个WEB项 ...
- 谷歌Linux 运维工程师面试真题
谷歌Linux 运维工程师面试真题 下面是谷歌 Linux 运维工程师面试真题: 1.如何查看当前的 Linux 服务器的运行级别? 答: 'who -r' 和 'runlevel' 命令可以用来查看 ...
- 面试官:只知道v-model是:modelValue和@onUpdate语法糖,那你可以走了
前言 我们每天都在用v-model,并且大家都知道在vue3中v-model是:modelValue和@update:modelValue的语法糖.那你知道v-model指令是如何变成组件上的mode ...
- JAVA 获取文件 MD5
private static final char[] hexCode = "0123456789ABCDEF".toCharArray(); // 文件类取MD5 public ...
- KingbaseES V8R6 中unlogged表
前言 KingbaseESV8R6有一种表称为unlogged,在该表新建的索引也属于unlogged.和普通表的区别是,对该表进行DML操作时候不将该表的变更记录变更写入到wal文件中.在数据库异常 ...
- GPTCache使用
1.概述 传统应用开发中,为了提升系统的查询性能,往往会在系统架构设计中加入缓存机制.在AI大模型领域,虽然功能非常强大,但是使用成本也是非常昂贵的,比如OpenAI的GPT-4按照token的个数来 ...
- SpringBoot配置启动页(首页)控制台打印项目访问入口url
一.SpringBootApplication 1 package com.reliable.yang; 2 3 /** 4 * @author Administrator 5 * @date 202 ...