c#调用microsoft word将word另存为pdf
引用 Microsoft Word 15.0 Object Library
using Microsoft.Office.Core;
using Microsoft.Office.Interop.Word;
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
namespace word2pdf
{
class Program
{
static void OutputNullHandler(object sendingProcess, DataReceivedEventArgs outLine)
{
//Console.WriteLine(outLine.Data);
}
//static void OutputHandler(object sendingProcess, DataReceivedEventArgs outLine)
//{
// String str = outLine.Data;
// if (str != null && str.Contains("动态"))
// Console.WriteLine(outLine.Data);
//}
//WINWORD.EXE POWERPNT.EXE 有.EXE后缀
static void KillProcess(String processName)
{
Process process = new Process();
process.StartInfo.FileName = "taskkill";
process.StartInfo.Arguments = "/f /im " + processName;
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.OutputDataReceived += new DataReceivedEventHandler(OutputNullHandler);
process.ErrorDataReceived += new DataReceivedEventHandler(OutputNullHandler);
process.Start();
process.BeginOutputReadLine();
process.BeginErrorReadLine();
process.WaitForExit();
}
public static bool word2PDF(string sourcePath, string targetPath)
{
KillProcess("WINWORD.EXE");
bool result = false;
Application application = new Application();
Document document = null;
try{
document = application.Documents.Open(sourcePath, MsoTriState.msoTrue, MsoTriState.msoFalse, MsoTriState.msoFalse);
document.SaveAs(targetPath, WdSaveFormat.wdFormatPDF);
result = true;
}
catch (Exception e){
Console.WriteLine("Error " + e.Message);
result = false;
}
finally
{
if (document != null)
{
try{
document.Close();
}
catch (Exception e){
result = false;
}
try{
Marshal.ReleaseComObject(document);
}
catch (Exception e){
result = false;
}
document = null;
}
if (application != null)
{
try{
application.Quit();
}
catch (Exception e){
result = false;
}
try{
Marshal.ReleaseComObject(application);
}
catch (Exception e){
result = false;
}
application = null;
}
if (!result)
KillProcess("WINWORD.EXE");
//主动激活垃圾回收器,主要是避免超大批量转文档时,内存占用过多,而垃圾回收器并不是时刻都在运行!
//GC.Collect();
//GC.WaitForPendingFinalizers();
}
return result;
}
//type 为1表示word转pdf, type为3表示ppt转pdf, 预留2,excel2pdf
static void Main(string[] args)
{
Console.WriteLine("start word2pdf");
int len = args.Length;
if (len > 1)
{
String srcPath = args[0].Replace("\"", ""); //路径有空格,用""括起来
String tarPath = args[1].Replace("\"", "");
word2PDF(srcPath, tarPath);
}
Console.WriteLine("end!");
}
}
}
c#调用microsoft word将word另存为pdf相关推荐
- Office word 2007不能另存为pdf格式的解决方法
Office word 2007不能另存为pdf格式的解决方法 参考文章: (1)Office word 2007不能另存为pdf格式的解决方法 (2)https://www.cnblogs.com/ ...
- 轻松将 Word 文档另存为 PDF
2007 Microsoft Office 加载项:Microsoft Save as PDF 或 XPS 官方下载地址 http://www.microsoft.com/downloads/deta ...
- word文档另存为pdf格式,如何设置导航栏
打开论文对应的word,点击另存为,设置保存类型为PDF,之后点击选项,勾选创建书签时使用:标题,导出文件即可.
- Microsoft Office Word导出高清PDF步骤
写论文后经常需要导出PDF,但若插进Word中的不是矢量图,会导致图片受损不高清. 常用的办法有: 方法1.word内直接另存为PDF 方法2.word内导出-创建PDF/XPS文档 方法3.word ...
- Word文档转换PDF格式常见转换技巧汇总
时下,随着PDF文件格式的优点爆出,PDF文件已成为出版业的新宠.不过大部分工作族仍习惯使用Word文档编辑,而不适应PDF文件编辑,但在传输上又造成了一定的麻烦,这就有了"转换" ...
- Word处理控件Aspose.Words功能演示:在 Java 中将 Word DOC/DOCX 转换为 PDF
Aspose.Words是一种高级Word文档处理API,用于执行各种文档管理和操作任务.API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word. A ...
- Word处理控件Aspose.Words功能演示:使用 Android 库将 Word 文档转换为 PDF
Aspose.Words 是一种高级Word文档处理API,用于执行各种文档管理和操作任务.API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word.此 ...
- 如何将Microsoft Word文档转换为PDF
PDFs are handy for distributing documents so that they're seen the same way by all parties. Typicall ...
- Word另存为PDF时出现“错误!未找到引用源”的解决
Word另存为PDF时,交叉引用的位置有时会出问题,导致排版混乱,比如交叉引用位置出现"错误!未找到引用源".可以通过锁定域更新解决. 如果要对某个域锁定,方法为:单击选定此域,然 ...
- office365 word 另存为 pdf 的注意事项和典型设置
0. 操作环境介绍 Office 版本:Office 365 版本 不同版本的操作可能有所不同 1. 基本操作 – 另存为 pdf [文件] --> [另存为],选择适当的文件路径.文件名 保存 ...
最新文章
- centos配置-java-php-mysql【转载参考】
- ESP8266 如何修改默认上电校准方式?另外为什么 ESP8266 进⼊启动模式(2,7)并触发看⻔狗复位?
- SAP Commerce配置属性的优先级
- 抓取手机https_python爬虫入门02:教你通过 Fiddler 进行手机抓包
- Java整数缓存-为什么Integer.valueOf(127)== Integer.valueOf(127)为True
- TCP与UDP的选择--结合QQ来说明
- linux内核 默认路由表,Linux 默认路由表 0.0.0.0
- LeetCode(748)——最短完整词(JavaScript)
- 上传文件(ajax结合form表单)
- Ubunt_配置_tftp(文件传输)
- json转Map泛型Map<String,T>,json转集合Map泛型List<Map<String,T>>工具类
- 移动端H5上传图片裁剪
- Pr剪辑上分攻略---电子相册制作
- java中dao_java中的Dao类是什么意思?
- 一个老程序员的心里话!
- 两台路由器直连服务器需要怎么配置,设置串联两台无线路由器的方法步骤
- 2015年3月TIOBE编程语言排行榜单
- 【hadoop权威指南第四版】第五章MR应用【笔记+代码】
- 如何用python群发工资条
- AI会让AI工程师失业吗?