Tag: docx

如何将内容放在docx的合并域中

我正在使用asp.net开发一个Web应用程序,我有一个名为Template.docx的文件,它像模板一样生成其他报告。 在这个Template.docx中,我有一些MergeFields(Title,CustomerName,Content,Footer等)来代替C#中的一些动态内容。 我想知道,如何将内容放在docx的合并域中? 我不知道MergeFields是否是正确的方法,或者是否有另一种方式。 如果你能建议我,我很感激! PS:我的web应用程序中引用了openxml。 编辑: private MemoryStream LoadFileIntoStream(string fileName) { MemoryStream memoryStream = new MemoryStream(); using (FileStream fileStream = File.OpenRead(fileName)) { memoryStream.SetLength(fileStream.Length); fileStream.Read(memoryStream.GetBuffer(), 0, (int) fileStream.Length); memoryStream.Flush(); fileStream.Close(); } return memoryStream; } public MemoryStream GenerateWord() { string templateDoc = “C:\\temp\\template.docx”; string reportFileName = “C:\\temp\\result.docx”; var reportStream = LoadFileIntoStream(templateDoc); // Copy a new file […]

在word文档中编辑自定义XML部分有时会破坏文档

我们有一个系统可以在Word文档中存储一些自定义模板数据。 有时,更新此数据会导致Word抱怨文档已损坏。 发生这种情况时,如果我解压缩docx文件并将内容与先前版本进行比较,则唯一的区别似乎是customXML\item.xml文件中的预期更改。 如果我使用7zip重新压缩内容,它似乎工作正常(Word不再抱怨文档已损坏)。 (简化)代码: void CreateOrReplaceCustomXml(string filename, MyCustomData data) { using (var doc = WordProcessingDocument.Open(filename, true)) { var part = GetCustomXmlParts(doc).SingleOrDefault(); if (part == null) { part = doc.MainDocumentPart.AddCustomXmlPart(CustomXmlPartType.CustomXml); } var serializer = new DataContractSerializer(typeof(MyCustomData)); using (var stream = new MemoryStream()) { serializer.WriteObject(stream, data); stream.Seek(0, SeekOrigin.Begin); part.FeedData(stream); } } } IEnumerable GetCustomXmlParts(WordProcessingDocument doc) { […]

使用OpenXML 2.5将数据写入docx文档中的TextInput元素

我有一些docx文件。 我用OpenXML 2.5 SDK阅读它们,并在每个doc中搜索TextInput 。 byte[] filebytes = System.IO.File.ReadAllBytes(“Test.docx”); using (MemoryStream stream = new MemoryStream(filebytes)) using (WordprocessingDocument wordDocument = WordprocessingDocument.Open(stream, true)) { IEnumerable fields = wordDocument.MainDocumentPart.Document.Descendants(); foreach (var field in fields) { IEnumerable textInputs = field.Descendants(); foreach (var ti in textInputs) { <> } } wordDocument.MainDocumentPart.Document.Save(); stream.Flush(); ETC… } 我怎么能在每个TextInput写一个值? 谢谢!

programaticaly在.docx文件中嵌入字体系列

我试图在docx文件中插入字体系列(不是系统字体)。 我正在使用openxml-sdk来实现此function。 不知何故,我能够从特定的docx文件中获取字体信息。 但无法在文档中嵌入字体系列 是否可以使用代码将字体嵌入docx文件中?

C#.NET DocX将图像添加到.docx文件

我想使用DocX库将图像添加到C#中的Word文件中。 问题是我在网上找不到任何东西。 情况 我知道如何创建文件,我知道如何在文件中写入文本。 图书馆的文档很遗憾。 希望你能帮我!

C#用于替换docx中的文本字符串

使用C#,有没有一种很好的方法来查找和替换docx文件中的文本字符串而不在该机器上安装word?

为什么我的自定义XML在Word保存时不会转移到新版本的DOCX文件?

我正在向docx添加一些自定义XML,以便在我正在编写的应用程序中跟踪它。 我通过ZIP库打开Word文档,并通过官方Open XML SDK路由手动完成它。 两者都有相同的结果,我的XML被插入到文档中的customXml文件夹中。 对于这两种方法,Word中的文档打开正常,并且XML存在。 但是,当我将文档保存为MyDoc2.docx时,例如我的所有XML都消失了。 我究竟做错了什么? Microsoft链接我一直关注: http://msdn.microsoft.com/en-us/library/bb608597.aspx http://msdn.microsoft.com/en-us/library/bb608612.aspx 我从Open XML SDK 2.0中获取的代码: public static void AddNewPart(string document, string fileName) { using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(document, true)) { MainDocumentPart mainPart = wordDoc.MainDocumentPart; CustomXmlPart myXmlPart = mainPart.AddCustomXmlPart(CustomXmlPartType.CustomXml); using (FileStream stream = new FileStream(fileName, FileMode.Open)) { myXmlPart.FeedData(stream); } } } 谢谢,约翰

在c#中使用openxml和pdfcreator将docx转换为pdf

我需要将docx转换为服务器中的pdf文件。 我已经看到了PDFCreator会做的,基于以下链接( http://sourceforge.net/projects/pdfcreator/ )。 我需要一些关于此的建议,如下所示: 我可以在服务器端使用PDF Creator吗? 在不创建word对象的情况下,我可以使用pdfcreator API将docx转换为带有openxml的pdf。 请尽快给我回复。

使用OpenXml调用AddAlternativeFormatImportPart后损坏文档

我试图在.docx文件中创建一个AddAlternativeFormatImportPart,以便通过AltChunk在文档中引用它。 问题是下面的代码导致docx文件读取为Word损坏,无法打开。 string html = “some html code.” string altChunkId = “html234”; var document = WordprocessingDocument.Open(inMemoryPackage, true); var mainPart = document.MainDocumentPart.Document; var mainDocumentPart = document.MainDocumentPart; AlternativeFormatImportPart chunk = mainDocumentPart.AddAlternativeFormatImportPart (AlternativeFormatImportPartType.Xhtml, altChunkId); Stream contentStream = chunk.GetStream(FileMode.Open,FileAccess.ReadWrite); StreamWriter contentWriter = new StreamWriter(contentStream); contentWriter.Write(html); contentWriter.Flush(); { … } mainPart.Save();

Novacode Docx从位图创建图像

背景 我的项目很紧急,需要我迭代一个大的XML文件并返回Base64编码的图像。 每个图像都必须插入到MS Word文档中,我正在使用DocX库。 我正在将Base64字符串转换为位图,没有任何问题。 问题 对于我的生活,我似乎无法将位图获取到Novacode.Image对象,然后可以将其插入到文档中。 注意:我已经知道如何转换为System.Drawing.Image格式。 它是Novacode.Image格式(DocX)让我感到悲伤。 如果我尝试转换la (Novacode.Image)somebitmap; 我得到Can not cast expression of type Image to Bitmap 。 如果我尝试初始化一个新的Novacode.Image对象,我得到Can not access internal constructor Image here 。 使用C#,.NET 4,Forms App,很多咖啡。 题 只有Novacode.Image对象可以通过库插入到MS Word doc中,那么我怎么能在那里得到我的位图? 在这一点上我很沮丧,所以也许我只是缺少一些简单的东西。