C# Microsoft.Office.Interop.Word 将多个word合成一个并插入图片 转换成pdf

本文介绍了如何使用C#通过Microsoft.Office.Interop.Word库将多个Word文档合并到一个文档中,并添加图片,最后将文档转换为PDF格式。由于之前使用的Spire.Doc插件存在水印和页面限制问题,作者转向了微软的API来实现这一功能,目前尚待解决的问题是如何精确控制图片的位置,期望能得到社区的帮助。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近领导提了个需求 需要把多个word和多个图片 放在一起并且转换成pdf格式
我这里的思路是先把多个word放在一个新的word里
再把图片循环添加到这个新的word文档里
保存之后转换成PDF格式
之前用的spire Doc的这个插件实现的 但是因为这个插件生成后会有水印 虽然它有免费版本的 但是转换pdf格式只会转换3页 超出部分显示不了 所以研究了一下微软的Microsoft.Office.Interop.Word 完美解决
现在还有一个没解决的问题就是怎么设置这个添加图片的位置 如何把两个图片放在同一行中 如果有知道的大佬希望可以得到您的帮助(●’◡’●) 爱你 比心
(需要引用 Microsoft.Office.Interop.Word)

附上代码

 /// <summary>
        /// 将多个word拼成一个 插入图片后转成PDF
        /// </summary>
        /// <param name="ImageFileNames">图片路径</param>
        /// <param name="OldDocFileName">word路径</param>
        /// <param name="NewDocFileName">插入文档之后新的word文档路径</param>
        /// <param name="PdfFileName">转换后pdf的路径</param>
        /// <returns></returns>
        public bool ConverterToPDF(List<string> ImageFileNames, List<string> OldDocFileName, string NewDocFileName, string PdfFileName)
        {
   
            Microsoft.Office.Interop.Word.Application App = new Microsoft.Office.Interop.Word.Application();
            Microsoft.Office.Interop.Word.Document Doc = new Microsoft.Office.Interop.Word.Document();
            object lobjMissing = System.Reflection.Missing.Value;
            object lobjSaveChanges = null;

            try
            {
   
                #region 拼接word
                object oPageBreak = WdBreakType.wdLineBreak;//接下行合并(LineBreak)
                //object oPageBreak = WdBreakType.wdPageBreak;//接下页合并(PageBreak)

                object docFileName = null;
                object NewdocFileName = null;
                OldDocFileName = OldDocFileName.Reverse<string>().ToList();
                for (int i = 0; i < OldDocFileName.Count; i++)
                {
   
                    NewdocFileName = (object)NewDocFileName;
                    docFileName = OldDocFileName<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值