最近同事透過 Aspose.Words DocumentBuilder 的 InsertHtml Method 加入 Html 的 Table (含 css ),另存成 PDF 檔後,居然發現本來在 Word 檔中看起來好好的,PDF 檔中的 Table 卻會超過頁面,如下,
測試程式如下,
1 | var htmlTable = @"<style> |
原廠的回覆設定 CompatibilityOptions.GrowAutofit 選項為 false 就可以了,如下,
1 | var doc = new Document(); |
果然設定 Document 的 CompatibilityOptions.GrowAutofit 為 false , PDF 中的 table 就不會超過頁面了,詳細可以參考DocumentBuilder InsertHtml Save as pdf will exceed page。
後來同事用巢狀的 html table 去試,這次變成不同 TD 的內容會疉在一起,如下,
測試的 html table 如下,
1 | var htmlTable2 = @"<style> |
原廠建議可以改 TD 的 LeftPadding 來解這問題,詳細可以參考DocumentBuilder InsertHtml (nested table) Save as pdf , some TD will disapper,不要使用 UpdateTableLayout 哦!
所以我在 TD 中加入 style=’padding-left: 70px;’ 來看,右邊的 TD 內容果然往右移了,但左邊的那個職章 Table 卻還是小小的,如下,
測試的 Html 如下,
1 | var htmlTable3 = @"<style> |
那只好在職章的那個 Table 中設定固定的寬度,最後 PDF 的結果如下,
最後的測試程式如下,
1 | var htmlTable4 = @"<style> |