您好,我将Aspose.Words 18.11版本升级到22.10版本遇到了问题!

你好,非常感谢您的帮助!

对于问题2,我重新整理了项目dome,帮助您重现问题!

AsposeToWordTableTest.7z (11.6 MB)

@fhn123456 感谢您提供更多信息。 您的代码生成的文档在我看来很好。 请看附件,我保存了DOCX和PDF两种格式的文档:
0003-012-0735.docx (11.9 KB)
0003-012-0735.pdf (78.8 KB)
如您所见,没有额外的冗余页面。

为什么,为什么您生成的DOCX没有额外的冗余页面。很神奇,您使用的是什么客户端查看的DOCX?

1,用发给您的代码生成的DOCX,在我这里就是这样的。
0003-012-0735.docx (11.9 KB)

这是额外的冗余页面截图:

2,我在想是不是填充空白行的时候,没有指定SimSun字体,导致LayoutCollector 计算出现错误,因为当我点击空白行单元格,字体显示Times New Roman。如下图:

//用空行填充页面上的剩余空间。
Aspose.Words.Tables.Row emptyRow = (Aspose.Words.Tables.Row)table.LastRow.Clone(true);
//获取子节点
emptyRow.GetChildNodes(Aspose.Words.NodeType.Paragraph, true).Clear();
emptyRow.RowFormat.Height = 36;

3,当我直接将Word对象保存成PDF文件时候,报错:未将对象引用设置到对象的实例。如下图:

doc.Save(Pdf, Aspose.Words.SaveFormat.Pdf);

@fhn123456

  1. 出现此问题是因为 MS Word 根据指定的首选语言使用不同的布局规则。 你的情况是中文,我的情况是英文。 将首选语言更改为中文后,我可以观察到我这边的问题。 您可以通过在创建文档后指定以下内容来解决它:
//Aspose.doc 生成卷内表格
Aspose.Words.Document asposeDoc = new Aspose.Words.Document();

asposeDoc.CompatibilityOptions.UseFELayout = true;
asposeDoc.Styles.DefaultFont.LocaleIdFarEast = 2052;
  1. 上述解决方案也解决了这个问题。

  2. 请在保存为 PDF 之前调用 Document.UpdatePageLayout

非常感您的帮助! 非常感谢您! 您专业的解答,完美的解决了我所有的问题!
非常感谢您这几天您耐心的帮我,和解答我的问题!这对我有很大的帮助!
我该通过什么方式肯定您对我的帮助,我可以通过邮件向你们公司肯定您的帮助!你们公司邮箱地址是多少?

1,我通过您给我的建议,我查看了API我发现了:builder.Font.LocaleIdFarEast = new System.Globalization.CultureInfo(“zh-CN”, false).LCID;这个是否等同于您给我的建议!

2,doc.Styles.DefaultFont.LocaleIdFarEast = 2052;中的2052指的是什么意思?

3,您提供的代码完美解决了LayoutCollector布局计算错误的问题!但是当我点击空白行的时候他仍然提示Times New Roman,这虽然对我并没有影响!但我已经按照您建议的改成中文了,它为什么不是“宋体”,却是Times New Roman。

//兼容性选项
//不要绕过东亚/复杂脚本布局代码
doc.CompatibilityOptions.UseFELayout = true;
doc.Styles.DefaultFont.LocaleIdFarEast = 2052;

builder.Font.LocaleIdFarEast = new System.Globalization.CultureInfo("zh-CN", false).LCID;

@fhn123456 谢谢你欣赏我的工作。

builder.Font.LocaleIdFarEast = new System.Globalization.CultureInfo(“zh-CN”, false).LCID;

为当前 DocumentBuilder 位置设置字体远东区域设置,即稍后由 DocumentBuilder 插入的内容将设置此选项。

Styles.DefaultFont.LocaleIdFarEast = 2052;

在默认文档的字体中设置字体 far east locale,以便此选项应用于整个文档,除非它被显式设置的 locale 覆盖。

  1. 2052 与 System.Globalization.CultureInfo(“zh-CN”, false).LCID 相同。

  2. 在生成空行的代码中,所有子段落都被删除,然后 Aspose.Words 添加新的空段落,因为表格单元格不能完全为空。 您可以自己放置段落并配置所需的字体。

非常感谢您的帮助和支持!目前我使用中未出现问题!再次感谢您的帮助!

1 Like