2012-01-17 127 views
1

我想在我使用C#中的代碼自動創建的Word文檔上設置邊距。從C#設置Word 2010文檔邊距

我已經開始使用ActiveDocument.TopMargin =的過程,但我找不到類似VB Word.InchesToPoint(.5)的C#代碼的任何幫助,將不勝感激

回答

3

你必須讓Word應用程序的實例:

Word.Application oWord = new Word.Application(); 
oWord.InchesToPoint((float)0.5); 

請參閱參考資料: http://msdn.microsoft.com/en-us/library/ff197549.aspx

+0

感謝您的迴應,但我遵循指示,但它沒有在C#中工作得到說明說最好的重載方法匹配Microsoft.Office.Interop.Word._Application.InchesToPoint(float)有一些無效的爭論。 – RCam 2012-01-18 02:04:34

+0

您是否嘗試將您的價值轉換爲浮動值。看到我更新的答案。 – gideon 2012-01-18 02:57:02

7

有時最簡單的方法有效。這行代碼解決了這個問題

oWord.ActiveDocument.PageSetup.TopMargin = (float)50; 
1

您可以使用Word應用程序對象的InchesToPoints方法是這樣的:

 Word.Application wrdApplication = new Word.Application(); 
     Word.Document wrdDocument; 
     wrdApplication.Visible = true; 
     wrdDocument = wrdApplication.Documents.Add(); 
     wrdDocument.PageSetup.Orientation = Word.WdOrientation.wdOrientLandscape; 
     wrdDocument.PageSetup.TopMargin = wrdApplication.InchesToPoints(0.5f); 
     wrdDocument.PageSetup.BottomMargin = wrdApplication.InchesToPoints(0.5f); 
     wrdDocument.PageSetup.LeftMargin = wrdApplication.InchesToPoints(0.5f); 
     wrdDocument.PageSetup.RightMargin = wrdApplication.InchesToPoints(0.5f); 

或者,如果你願意,你可以使自己的...

private float InchesToPoints(float fInches) 
    { 
     return fInches * 72.0f; 
    } 

它可以用於這樣的事情:

 Word.Application wrdApplication = new Word.Application(); 
     Word.Document wrdDocument; 
     wrdDocument = wrdApplication.Documents.Add(); 
     wrdDocument.PageSetup.Orientation = Word.WdOrientation.wdOrientLandscape; 
     wrdDocument.PageSetup.TopMargin = InchesToPoints(0.5f); //half an inch in points 
     wrdDocument.PageSetup.BottomMargin = InchesToPoints(0.5f); 
     wrdDocument.PageSetup.LeftMargin = InchesToPoints(0.5f); 
     wrdDocument.PageSetup.RightMargin = InchesToPoints(0.5f); 
     wrdApplication.Visible = true; 

Word在其間距中每英寸使用72個點。

+0

你可能會考慮解釋一下這個答案(例如每英寸72點是測量)。 – theMayer 2016-03-03 22:51:18