2013-02-26 54 views
1

我正在使用Docx.dll一个DOCX发电机。到目前为止,我已经能够将图像和文本插入到文档中。图像和段落不对齐。我需要将图像换文。我该怎么做? 我看着它在谷歌和发现这个链接 Adding Images to Documents in Word 2007 by Using the Open XML SDK 2.0。代码工作并创建word文档,但docx文件未打开。如何包装形式在图像中的docx文件在C#

我如何在C#中自动换行“在前面的文字”?

public static DocX CreateDocumentFile(List<CompanyInfo> info) 
    { 

     DocX document = DocX.Load(@"C:\Users\newton.sheikh\Documents\Visual Studio 2010\Projects\MSOffice\OpenXML\OpenXML\RetailWrite.docx"); 

     foreach (var companies in info) 
     { 

      Formatting fm = new Formatting(); 

      /*Inserting Image*/ 
      Novacode.Image img = document.AddImage(@"C:\Users\newton.sheikh\Documents\Visual Studio 2010\Projects\MSOffice\OpenXML\OpenXML\logos\slime.png"); 
      Novacode.Paragraph companyLogo = document.InsertParagraph(""); 
      Picture pic1 = img.CreatePicture(); 
      companyLogo.InsertPicture(pic1, 0); 


      Novacode.Paragraph CompanyName = document.InsertParagraph(companies.Name.ToString()); 
      CompanyName.StyleName = "COMPANY"; 


      Novacode.Paragraph CompanyPosition = document.InsertParagraph(companies.Position.ToString()); 
      CompanyPosition.StyleName = "posit"; 


      Novacode.Paragraph CompanyDescription = document.InsertParagraph(companies.Description.ToString()); 
      CompanyDescription.StyleName = "descrip"; 

      Novacode.Paragraph blankPara = document.InsertParagraph(" "); 
      Novacode.Paragraph blankPara2 = document.InsertParagraph(" "); 
     } 

     return document; 
    } 
+0

您能否寄出您正在使用的代码。请阅读常见问题解答,了解如何发布问题。 – Shail 2013-02-26 09:39:58

+0

我已经添加了代码。 – 2013-02-26 09:43:48

回答

0

问题的解决方案:我使用MS-Word的Interop在图像间应用自动换行。

public static void FormatImages() 
    { 
     Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application(); 
     string filePath = @"C:\Users\newton.sheikh\Documents\Visual Studio 2010\Projects\MSOffice\OpenXML\OpenXML\Temp.docx"; 
     Microsoft.Office.Interop.Word.Document doc = wordApp.Documents.Open(filePath, false); 

     object save_changes = false; 
     foreach (Microsoft.Office.Interop.Word.InlineShape item in wordApp.ActiveDocument.InlineShapes) 
     { 
      if (item != null) 
      { 
       if (item.Type == Microsoft.Office.Interop.Word.WdInlineShapeType.wdInlineShapePicture) 
       { 
        item.Select(); 
        Microsoft.Office.Interop.Word.Shape shape = item.ConvertToShape(); 
        shape.WrapFormat.Type = WdWrapType.wdWrapFront; 
       } 
      } 
     } 

     doc.SaveAs(@"C:\Users\newton.sheikh\Documents\Visual Studio 2010\Projects\MSOffice\OpenXML\OpenXML\RetailWrite.docx"); 
     doc.Close(save_changes); 
     wordApp.Quit(save_changes); 
     if (System.IO.File.Exists(@"C:\Users\newton.sheikh\Documents\Visual Studio 2010\Projects\MSOffice\OpenXML\OpenXML\Temp.docx")) 
     { 
      System.IO.File.Delete(@"C:\Users\newton.sheikh\Documents\Visual Studio 2010\Projects\MSOffice\OpenXML\OpenXML\Temp.docx"); 
     } 
    } 
+0

这不是一个解决方案,而是一种解决方法。不希望在Web服务器上安装Word时使用DocX和类似的库。 – Sebazzz 2017-11-15 14:56:22

+0

@Sebazzz很久以前,我对IT界很陌生。对我来说,这是一个“解决方案”,它做了它应该做的事情:)但是,你正确使用Word可能会令服务器头痛。我在为办公工具开发更多扩展程序时遇到了很大的麻烦。从来没有再做过。可能是我不是一个好的程序员:) – 2017-11-16 10:48:37

相关问题