zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Word中截取部分内容并保存为jpg图片的方法

方法 图片 内容 保存 部分 word 截取 JPG
2023-09-27 14:28:13 时间

private void button1_Click(object sender, EventArgs e)
{
var appWord = new Microsoft.Office.Interop.Word.Application();
var doc = new Microsoft.Office.Interop.Word.Document();
object oMissing = System.Reflection.Missing.Value;//这个是什么东西,我始终没搞明白-_-
//打开模板文档,并指定doc的文档类型
object objTemplate = @"c:\18_0000f032-1c39-4bc9-a47c-327d8d493978.docx";
object objDocType = WdDocumentType.wdTypeDocument;
appWord.Visible = true;
doc = appWord.Documents.Add(ref objTemplate, ref oMissing, ref objDocType, ref oMissing);
object start = 0;
object end = 160;
doc.Range(ref start, ref end).Select();
appWord.Selection.Range.Copy();

var process = new Process();
process = Process.Start("mspaint.exe",@"c:\1.jpg");
var processId = process.Id;
var element = FindWindowByProcessId(processId);
SendKeys.SendWait("^v"); //发送 Ctrl + s 键
SendKeys.SendWait("^s"); //发送 Ctrl + s 键
SendKeys.SendWait("%{F4}"); // 发送 Alt + F4 键
}

public static AutomationElement FindWindowByProcessId(int processId)
{
AutomationElement targetWindow = null;
int count = 0;
try
{
Process p = Process.GetProcessById(processId);
targetWindow = AutomationElement.FromHandle(p.MainWindowHandle);
return targetWindow;
}
catch (Exception ex)
{
count++;
StringBuilder sb = new StringBuilder();
string message = sb.AppendLine(string.Format("Target window is not existing.try #{0}", count)).ToString();
if (count > 5)
{
throw new InvalidProgramException(message, ex);
}
else
{
return FindWindowByProcessId(processId);
}
}
}