博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MemoryStream 转 pdf
阅读量:6497 次
发布时间:2019-06-24

本文共 4895 字,大约阅读时间需要 16 分钟。

在项目开发中用到将MemoryStream 转pdf,在转化过程中需要建了一个.dom格式的模板,先保存为.doc文件,然后再转换为.pdf。

有一个插件感觉好不错,给大家推荐一下。 

dll下载链接 
 
提取码: 
fu4r 
重点内容

using System;using System.Collections.Generic;using System.Linq;using System.Text;using Microsoft.Office.Interop.Word; using Word = Microsoft.Office.Interop.Word; namespace MyTools { public class WordHelper { private Word.Document wDoc = null; private Word.Application wApp = null; public Word.Document Document { get { return wDoc; } set { wDoc = value; } } public Word.Application Application { get { return wApp; } set { wApp = value; } } #region 从模板创建新的Word文档 ///  /// 从模板创建新的Word文档 ///  /// 模板文件名 /// 
public bool CreateNewWordDocument(string templateName) { try { return CreateNewWordDocument(templateName, ref wDoc, ref wApp); } catch (Exception ex) { throw ex; } } #endregion #region 从模板创建新的Word文档,并且返回对象Document,Application /// /// 从模板创建新的Word文档, /// /// 模板文件名 /// 返回的Word.Document对象 /// 返回的Word.Application对象 ///
public static bool CreateNewWordDocument(string templateName, ref Word.Document wDoc, ref Word.Application WApp) { Word.Document thisDocument = null; Word.Application thisApplication = new Word.ApplicationClass(); thisApplication.Visible = false; thisApplication.Caption = ""; thisApplication.Options.CheckSpellingAsYouType = false; thisApplication.Options.CheckGrammarAsYouType = false; Object Template = templateName;// Optional Object. The name of the template to be used for the new document. If this argument is omitted, the Normal template is used. Object NewTemplate = false;// Optional Object. True to open the document as a template. The default value is False. Object DocumentType = Word.WdNewDocumentType.wdNewBlankDocument; // Optional Object. Can be one of the following WdNewDocumentType constants: wdNewBlankDocument, wdNewEmailMessage, wdNewFrameset, or wdNewWebPage. The default constant is wdNewBlankDocument. Object Visible = true;//Optional Object. True to open the document in a visible window. If this value is False, Microsoft Word opens the document but sets the Visible property of the document window to False. The default value is True. try { Word.Document wordDoc = thisApplication.Documents.Add(ref Template, ref NewTemplate, ref DocumentType, ref Visible); thisDocument = wordDoc; wDoc = wordDoc; WApp = thisApplication; return true; } catch (Exception ex) { string err = string.Format("创建Word文档出错,错误原因:{0}", ex.Message); throw new Exception(err, ex); } } #endregion #region 文档另存为其他文件名 /// /// 文档另存为其他文件名 /// /// 文件名 /// Document对象 public bool SaveAs(string fileName) { try { return SaveAs(fileName, wDoc); } catch (Exception ex) { throw ex; } } #endregion #region 文档另存为其他文件名 /// /// 文档另存为其他文件名 /// /// 文件名 /// Document对象 public static bool SaveAs(string fileName, Word.Document wDoc) { Object FileName = fileName; // 文档的名称。默认值是当前文件夹名和文件名。如果文档在以前没有保存过,则使用默认名称(例如,Doc1.doc)。如果已经存在具有指定文件名的文档,则会在不先提示用户的情况下改写文档。 Object FileFormat = Word.WdSaveFormat.wdFormatDocument; // 文档的保存格式。可以是任何 WdSaveFormat 值。要以另一种格式保存文档,请为 SaveFormat 属性指定适当的值。 Object LockComments = false; // 如果为 true,则锁定文档以进行注释。默认值为 false。 Object Password = System.Type.Missing; // 用来打开文档的密码字符串。(请参见下面的备注。) Object AddToRecentFiles = false; // 如果为 true,则将该文档添加到“文件”菜单上最近使用的文件列表中。默认值为 true。 Object WritePassword = System.Type.Missing; // 用来保存对文件所做更改的密码字符串。(请参见下面的备注。) Object ReadOnlyRecommended = false; // 如果为 true,则让 Microsoft Office Word 在打开文档时建议只读状态。默认值为 false。 Object EmbedTrueTypeFonts = false; //如果为 true,则将 TrueType 字体随文档一起保存。如果省略的话,则 EmbedTrueTypeFonts 参数假定 EmbedTrueTypeFonts 属性的值。 Object SaveNativePictureFormat = true; // 如果图形是从另一个平台(例如,Macintosh)导入的,则 true 表示仅保存导入图形的 Windows 版本。 Object SaveFormsData = false; // 如果为 true,则将用户在窗体中输入的数据另存为数据记录。 Object SaveAsAOCELetter = false; // 如果文档附加了邮件程序,则 true 表示会将文档另存为 AOCE 信函(邮件程序会进行保存)。 Object Encoding = System.Type.Missing; // MsoEncoding。要用于另存为编码文本文件的文档的代码页或字符集。默认值是系统代码页。 Object InsertLineBreaks = true; // 如果文档另存为文本文件,则 true 表示在每行文本末尾插入分行符。 Object AllowSubstitutions = false; //如果文档另存为文本文件,则 true 允许 Word 将某些符号替换为外观与之类似的文本。例如,将版权符号显示为 (c)。默认值为 false。 Object LineEnding = Word.WdLineEndingType.wdCRLF;// Word 在另存为文本文件的文档中标记分行符和换段符。可以是任何 WdLineEndingType 值。 Object AddBiDiMarks = true;//如果为 true,则向输出文件添加控制字符,以便保留原始文档中文本的双向布局。 try { wDoc.SaveAs(ref FileName, ref FileFormat, ref LockComments, ref Password, ref AddToRecentFiles, ref WritePassword , ref ReadOnlyRecommended, ref EmbedTrueTypeFonts, ref SaveNativePictureFormat , ref SaveFormsData, ref SaveAsAOCELetter, ref Encoding, ref InsertLineBreaks, ref AllowSubstitutions , ref LineEnding, ref AddBiDiMarks); return true; } catch (Exception ex) { string err = string.Format("另存文件出错,错误原因:{0}", ex.Message); throw new Exception(err, ex); } } #endregion #region 关闭文档 /// /// 关闭文档 /// public void Close() { Close(wDoc, wApp); wDoc = null; wApp = null; } #endregion #region 关闭文档 /// /// 关闭文档 ///

转载于:https://www.cnblogs.com/zcm123/p/6088974.html

你可能感兴趣的文章
TYVJ P1051 选课 Label:多叉转二叉&&树形dp(虐心♥)
查看>>
将数据库中提取出来的数据在后台进行分页处理
查看>>
bzoj1034
查看>>
百度地图 鼠标绘制,获取矩形,多边形的顶点经纬度
查看>>
回文树模板
查看>>
struts2之防止表单重复提交
查看>>
【转】Netty系列之Netty并发编程分析
查看>>
cf591d
查看>>
图片存储系统TFS
查看>>
MYSQL备份与恢复
查看>>
贪心/数学 Codeforces Round #212 (Div. 2) A. Two Semiknights Meet
查看>>
Python类__call__()方法
查看>>
「小程序JAVA实战」 小程序wxss样式文件的使用(七)
查看>>
容斥定理,皮克公式
查看>>
git+idea
查看>>
cocos2d游戏开发,常用工具集合
查看>>
FatTree胖树拓扑结构
查看>>
Kafka深度解析
查看>>
unsigned 后面不跟类型的情况
查看>>
fio硬盘压力测试
查看>>