2016-09-26 39 views
0

此問題是由question相關(接下來)。爲什麼Word中的形狀出現空行?

我從數據庫中的數據動態生成Word文檔。在這一代中,我需要讓某個部分的第一頁的頂部邊距與該部分中的其他頁面不同。由於這個原因需要花費很長時間才能正確解釋,所以我不能只創建一個具有不同頂部邊界的新部分。

爲了解決我的問題,我以爲我會創建一個沒有邊框,沒有填充(不可見)的形狀(矩形),這是我希望我的邊緣的高度。然後我會把它絕對放在(0,0)處。我也會使它wrapTopAndBottom,以便它將頁面正文中的文本向下推。這是工作......除了一個小問題。

enter image description here

正如你可以看到有一個大的空白我的形狀後,立即區域。那裏有實際的空白行。你可以在這個圖像中看到更好的線條,我在這些線條中放置了文本。

enter image description here

當我看到在Word中存檔頭xml文件,不存在這些行。我不確定他們來自哪裏或如何擺脫它們。我可以使用Word手動刪除它們,但每次我重新生成文件時,都會將它們放回原處。如果有人知道這是爲什麼發生和/或如何解決它,我會很感激幫助。

感謝。

+1

只是從截圖中很難說出發生了什麼。你可以分享生成這些文檔的代碼(請製作一個可重複使用的小例子),或者添加一個鏈接到Word文檔?通常,使用所需的佈局/格式在Word中創建文檔以及使用Open XML SDK中包含的Document Reflector生成將生成該文檔的C#代碼會非常有幫助。 –

回答

0

我終於明白了這一點。

對不起,我無法在這裏發佈代碼。首先,我沒有使用C#,我正在使用PHP。其次,我不得不發佈代碼來顯示標題的創建方式,這在這樣的論壇上是令人望而卻步的。第三,我真的不允許在這裏發佈公司的代碼。

無論如何,一旦我看到它,問題就很簡單。我們將多個絕對定位的對象(形狀,文本,圖像,whatnot)放在標題內。在創建這些對象的類中,每個對象都放置在一個<w:p>元素內。例如,如果有3個這樣的對象,那麼XML就像這樣。

<hdr> 
    <p>Some Object</p> 
    <p>Some Object</p> 
    <p>Some Object</p> 
</hdr> 

的問題是,即使每個內部<p>對象的絕對定位時,<p>元件本身創建該線的線和空間。所以上面的頭部會有3個空行。如果標題有6個或7個對象,這成爲一個問題,因爲空白行會將標題邊緣向下並強制頁面的內容向下。這是不受歡迎的行爲。

解決方案很簡單。所有絕對定位的對象可以放置在同一個<p>元素中。無論您擁有多少個對象,這隻會在標題中留下1個空白行。

相關問題