通过代码将Word 2007 template (dotx)文档转换Word 2007 (docx)文档
2008-06-27 23:37
696 查看
在Code Project中闲逛时,让我发现了这样一篇文章Create simple Word 2007 documents without needing Word 2007 installed,里面就有提到Office 2007的文档都可以用压缩工具来查看里面的文件,也就是Office 2007的文档是用打包工具把XMLs打包在一起的。因此可以通过.net framework 3.0的System.IO.Packaging来打开docx之类的文档,处理好相关的XMLs,再打包。下面就是这样来处理一个dotx文档,转换成docx文档。
以下代码来自 http://openxmldeveloper.org/forums/post/2816.aspx
System.IO.Packaging 相关文章:
http://msdn.microsoft.com/msdnmag/issues/06/11/BasicInstincts/default.aspx
http://blogs.msdn.com/erikaehrli/archive/2006/08/16/word2007DataDocumentGenerationPart2.aspx
以下代码来自 http://openxmldeveloper.org/forums/post/2816.aspx
1: const string documentRelationshipType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument";
2: const string wordDOCXContentType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml";
3: string docName = @"c:\test9\1nameis.dotx";
4: Package wdPackage = Package.Open(docName, FileMode.Open, FileAccess.ReadWrite);
5: PackagePart documentPart = null;
6: Uri documentUri = null;
7:
8: // Get the main document part (document.xml).
9: foreach (System.IO.Packaging.PackageRelationship relationship in wdPackage.GetRelationshipsByType(documentRelationshipType))
10: {
11: documentUri = PackUriHelper.ResolvePartUri(new Uri("/", UriKind.Relative), relationship.TargetUri);
12: documentPart = wdPackage.GetPart(documentUri);
13: // There is only one document.
14: break;
15: }
16:
17: XmlDocument xdoc = new XmlDocument();
18: xdoc.Load(documentPart.GetStream());
19:
20: // Delete the document part and its relationship part.
21: wdPackage.DeletePart(documentPart.Uri);
22:
23: // Create new document and relationship parts using the correct content types.
24:
25: documentPart = wdPackage.CreatePart(documentUri, wordDOCXContentType);
26: xdoc.Save(documentPart.GetStream(FileMode.Create, FileAccess.Write));
27: wdPackage.Close();
28:
29: string newFileName = Path.GetDirectoryName(docName) + @"\" + Path.GetFileNameWithoutExtension(docName) + ".docx";
30: // If the new file exists, delete it. You might
31: // want to make this code less destructive.
32: if (File.Exists(newFileName))
33: {
34: File.Delete(newFileName);
35: }
36: File.Move(docName, newFileName);
37:
System.IO.Packaging 相关文章:
http://msdn.microsoft.com/msdnmag/issues/06/11/BasicInstincts/default.aspx
http://blogs.msdn.com/erikaehrli/archive/2006/08/16/word2007DataDocumentGenerationPart2.aspx
相关文章推荐
- 通过代码将Word 2007 template (dotx)文档转换Word 2007 (docx)文档(续)
- 通过代码将Word 2007 template (dotx)文档转换Word 2007 (docx)文档
- 通过ruby代码,将指定的WORD文档转换为HTML:
- 将WORD文档转换成为HTML网页文件的C#代码
- office2007新建 Microsoft Office Word 文档.docx,打开后弹出转换文件对话框的解决办法
- ASP.NET将word文档转换成pdf的代码
- ASP.NET将word文档转换成pdf的代码
- 如何通过代码获取word文档使用的语言
- ASP.NET将word文档转换成pdf的代码
- asp.net将word文档转换成pdf的代码
- 将word文档转换为swf格式小程序---的公开部分代码
- 将Doc或者Docx文档处理成html的代码逻辑;统计word中的字数,段数,句数,读取word中文档内容的代码逻辑
- office2007新建 Microsoft Office Word 文档.docx,打开后弹出转换文件对话框的解决办法
- 通过QT 转换html文件为word文档
- Apache POI 简单操作word文档(2007 .docx格式)
- lotus表单转换成word文档一句代码搞定
- Java通过OpenOffice将word、ppt、excel、图片、txt文档转换成PDF
- c#实现word,excel转pdf代码及部分Office 2007文件格式转换为xps和pdf代码整理
- ASP.NET将word文档转换成pdf的代码
- python实现word 2007文档转换为pdf文件