C#操作Word进行打印及保存
用printout方法进行打印,此时会提示“页边距设于可打印区域之外”(模板文件需要,不太好改模板)
请问这个提示有没有办法去掉
此外,在printout之后立即进行保存操作,此时会出错,提示“被呼叫方拒接接收呼叫”
怀疑与上面的打印提示有关,不知道是否是这个原因,请问该如何解决
写写
用printout方法进行打印,此时会提示“页边距设于可打印区域之外”(模板文件需要,不太好改模板)
请问这个提示有没有办法去掉
此外,在printout之后立即进行保存操作,此时会出错,提示“被呼叫方拒接接收呼叫”
怀疑与上面的打印提示有关,不知道是否是这个原因,请问该如何解决
写写
解决方案 »
- 时间比较
- 如何在winform中嵌入excel?
- 多条数据插入数据库oracle数据库
- 不知道各位对java了解多少?
- Webclient的Uploadfile函数问题。 急!!!
- 急!将DataGrid中数据导出到Excel时,01001变为1001,该怎么处理
- 指针和引用有什么共同点和不同点,c#为什么放弃指针,留下引用(笔试题目)
- 高手请进:.Net平台上能用C#开发手机应用?
- 弱弱的问一下:如何知道自己建立的C#工程是unicode的还是ascii的
- 关于Microsoft.Exchange.WebServices.Data.ExchangeService的错误,请大神指教
- 关于视频播放的问题
- 泛型,反射
而且在另一台打印机上不会跳出可打印区域之外的提示,也就没有“被呼叫方拒接接收呼叫”的问题
所以最主要还是解决打印时跳出警告提示的问题
一开始是因为保存以及其他的填充、打印操作未能执行才以为是保存时出错的
最主要还是能屏蔽这个警告就好~
DocumentWriter doc = new DocumentWriter(TemplateFile);
for (i = 0; i < pc.Count; i++)
{
try
{
doc.Write("bm1", pc[i].xx);//具体代码关系不大,先不贴了
Application.DoEvents();
doc.QuickPrint();
Application.DoEvents();
doc.SaveAs(filename);//具体代码关系不大,先不贴了
}
catch (Exception e)
{
doc.CloseAll();
return -1;
}
Application.DoEvents();
} doc.CloseAll();//这里出错
private void OpenDocument(string filename)
{
object FileName = filename;
wapp = new Microsoft.Office.Interop.Word.Application();
wapp.Visible = false;
wapp.DisplayAlerts = WdAlertLevel.wdAlertsNone;
if (!File.Exists(filename))
{
try
{
doc = wapp.Documents.Add(MissingObject, MissingObject, MissingObject, MissingObject);
_filename = filename;
}
catch
{
throw new FileNotFoundException("无效文件路径");
}
}
else
{
_filename = "";
doc = wapp.Documents.Open(ref FileName, ref MissingObject, ref ReadOnly, ref MissingObject, ref MissingObject, ref MissingObject, ref MissingObject, ref MissingObject, ref MissingObject,
ref MissingObject, ref MissingObject, ref Visible, ref MissingObject, ref MissingObject, ref MissingObject, ref MissingObject);
}
doc.Activate();
System.Windows.Forms.Application.DoEvents();
}
public void QuickPrint()
{
object Background = true;
doc.PrintOut(Background, MissingObject, MissingObject, MissingObject, MissingObject, MissingObject, MissingObject, MissingObject, MissingObject, MissingObject, MissingObject, MissingObject, MissingObject, MissingObject, MissingObject, MissingObject, MissingObject, MissingObject);
System.Windows.Forms.Application.DoEvents();
} public void CloseAll()
{
if (wapp != null)
{
if (doc != null)
{
try
{
doc.Close(SaveChanges, MissingObject, MissingObject);
}
finally
{
doc = null;
}
}
try
{
if (wapp.Documents.Count == 0)
{
wapp.Quit(SaveChanges, MissingObject, MissingObject);
}
}
finally
{
wapp = null;
}
}
GC.Collect();
System.Windows.Forms.Application.DoEvents();
}
}
现在也只是多出一个正常的提示而已,不能算出错,只是没办法屏蔽ApplicationClass我有时间试下谢谢
Application是接口,还是得用这个
c#操作word一般使用Microsoft.Office.Interop.Word.ApplicationClass类
问题是声明private Microsoft.Office.Interop.Word.ApplicationClass wapp = null;的时候
就提示了PS:引用了using Microsoft.Office.Interop.Word;
using Microsoft.Office.Interop;
using Microsoft.Office.Core;
但是那个提示依然存在
一个会产生此问题的word文档