Aspose.words cell 的內容會有非預期的換行

您好,
我透過 Aspose.Words DocumentBuilder 建立 Table , Cell 使用固寬度,不允許斷行。
但是在某些欄位中,會有非預期的換行,如附件所示,
wordtable.png (20.0 KB)
感覺後面可以再放一個字,但卻換到下一行去了。
測試程式如附件(Console App)
Word2TableTest.zip (265.1 KB)

@rainmaker_ho,

感谢您的询问。 我们已经使用最新版本的Aspose.Words for .NET 18.2测试了这个场景,并没有找到共享的问题。 请使用Aspose.Words for .NET 18.2。 我们附上了这篇文章的输出PDF以供您参考。
word2table.zip (6.8 KB)

您好,
我已使用最新的版本,您的附件word2table.zip word 檔中,最後一列,
就跟我原先附上的 wordtable.png 狀況一樣。
內容如下(為919輛 後應可以再放一些字,但卻斷行了),

106年警用汽
車、機車保養數
為919輛
【223(汽車)+696(機
車) 】,應保養
數量為919輛,
檢修率達100%。

請問是否是因為字串中有特別的字,例如 【 】 ?

@rainmaker_ho

感谢您的询问。 请注意,Aspose.Words模仿MS Word的行为。 如果您使用MS Word创建具有相同内容的表格,则会得到相同的输出。

在你的情况下,我们建议你使用Table.AutoFit方法,如下所示。 希望这可以帮助你。

Table table = builder.EndTable();
table.AutoFit(AutoFitBehavior.FixedColumnWidths);

doc.Save(MyDir + "out.docx");

您好,
我們將 Column 的欄位加大呈現就比較正常一些了。
除了使用 AutoFit 外,還有其他的方式可以看起來更好看一些呢?
謝謝您的幫忙。

另一個問題是,當我另存 pdf 時,pdf 的呈現會跟我直接利用 word 去另存 pdf 的內容不同哦!
例如我設定 doc.CompatibilityOptions.ApplyBreakingRules = true; 後,開啟 word 另存 pdf 的內容跟透過程式產生的內容不同。透過程式產生的 pdf 英數字有些沒有換行哦。
比較畫面請參考「ApplyBreakingRules.png (241.4 KB)
」,程式如下,

foreach (Aspose.Words.Tables.Row row in Focaltab.Rows)
{
	row.Cells[0].CellFormat.Width = 85;
	row.Cells[0].CellFormat.WrapText = false;
	row.Cells[1].CellFormat.Width = 100.0;
	row.Cells[1].CellFormat.WrapText = false;
	row.Cells[2].CellFormat.Width = 50.0;
	row.Cells[2].CellFormat.WrapText = false;
	row.Cells[3].CellFormat.Width = 50.0;
	row.Cells[3].CellFormat.WrapText = false;
	row.Cells[4].CellFormat.Width = 50.0;
	row.Cells[4].CellFormat.WrapText = false;
	row.Cells[5].CellFormat.Width = 50.0;
	row.Cells[5].CellFormat.WrapText = false;
	row.Cells[6].CellFormat.Width = 120.0;
	row.Cells[6].CellFormat.WrapText = false;
}
Focaltab.AutoFit(AutoFitBehavior.FixedColumnWidths);
doc.CompatibilityOptions.ApplyBreakingRules = true;
doc.Save("word2table.docx");
doc.Save("word2table.pdf", SaveFormat.Pdf);

@rainmaker_ho

感谢您的询问。 请使用Microsoft Word手动创建您期望的Word文档,并将其附加在此处以供我们参考。 我们将调查您希望如何生成最终的Word输出。 然后,我们会为您提供更多关于此的信息以及代码。

@tahir.manzoor您好,
請參考附件「Word2PDF.zip (150.7 KB)
」aspose.pdf 是程式產生出來的,word.pdf 是用 word 開啟 aspose.docx ,另存為 pdf 的檔案。
在最後一頁第一列,最後一欄的內容不相同哦!
感謝您的幫忙。

@rainmaker_ho

我们已经测试了该场景,并注意到在输出PDF和DOCX中,表格单元格的文本位置不相同。 为了纠正,我们在问题跟踪系统中记录了这个问题,如 WORDSNET-16531。 解决此问题后,您将通过此论坛主题通知您。

对您造成的不便,我们深表歉意。

@tahir.manzoor,
麻煩您了,謝謝。

@rainmaker_ho,

由于您在文档中使用中文字符,因此需要将中文字体指定为亚洲文字字体。 这是如何将SimSun设置为整个文档的默认亚洲文本字体。 希望这可以帮助你。

var doc = new Document();
var builder = new DocumentBuilder(doc);
doc.Styles.DefaultFont.NameFarEast = "SimSun";

@tahir.manzoor,
感謝您,目前看起來一致了哦。