如何删除在邮件合并期间创建的word文档末尾的额外页面
How to remove the extra page at the end of a word document which created during mail merge
我写了一段代码,使用 Syncfusion(程序集 Syncfusion.DocIO.Portable,版本=17.1200.0.50,),Angular 7+ 和 .NET Core 通过邮件合并创建一个 word 文档。请看下面的代码。
private MemoryStream MergePaymentPlanInstalmentsScheduleToPdf(List<PaymentPlanInstalmentReportModel>
PaymentPlanDetails, byte[] templateFileBytes)
{
if (templateFileBytes == null || templateFileBytes.Length == 0)
{
return null;
}
var templateStream = new MemoryStream(templateFileBytes);
var pdfStream = new MemoryStream();
WordDocument mergeDocument = null;
using (mergeDocument = new WordDocument(templateStream, FormatType.Docx))
{
if (mergeDocument != null)
{
var mergeList = new List<PaymentPlanInstalmentScheduleMailMergeModel>();
var obj = new PaymentPlanInstalmentScheduleMailMergeModel();
obj.Applicants = 0;
if (PaymentPlanDetails != null && PaymentPlanDetails.Any()) {
var applicantCount = PaymentPlanDetails.GroupBy(a => a.StudentID)
.Select(s => new
{
StudentID = s.Key,
Count = s.Select(a => a.StudentID).Distinct().Count()
});
obj.Applicants = applicantCount?.Count() > 0 ? applicantCount.Count() : 0;
}
mergeList.Add(obj);
var reportDataSource = new MailMergeDataTable("Report", mergeList);
var tableDataSource = new MailMergeDataTable("PaymentPlanDetails", PaymentPlanDetails);
List<DictionaryEntry> commands = new List<DictionaryEntry>();
commands.Add(new DictionaryEntry("Report", ""));
commands.Add(new DictionaryEntry("PaymentPlanDetails", ""));
MailMergeDataSet ds = new MailMergeDataSet();
ds.Add(reportDataSource);
ds.Add(tableDataSource);
mergeDocument.MailMerge.ExecuteNestedGroup(ds, commands);
mergeDocument.UpdateDocumentFields();
using (var converter = new DocIORenderer())
{
using (var pdfDocument = converter.ConvertToPDF(mergeDocument))
{
pdfDocument.Save(pdfStream);
pdfDocument.Close();
}
}
mergeDocument.Close();
}
}
return pdfStream;
}
文档生成后,我注意到末尾有一个空白页(带有页脚)。我在互联网上反复搜索解决方案,但我无法找到解决方案。据专家介绍,我已经做了初步检查,比如确保初始word模板文件没有分页等
我想知道我是否可以从我的代码中删除任何额外的分页符或类似的东西,这可能会导致这种情况。
对此任何其他建议的解决方案,甚至包括 MS Word 文档修改也表示赞赏。
请参考以下文档link,使用 Syncfusion Word 库 (Essential DocIO) 删除 Word 文档末尾的空白页。
https://www.syncfusion.com/kb/10724/how-to-remove-empty-page-at-end-of-word-document
在您的示例应用程序中将 Word 转换为 PDF 之前,请重复使用代码片段。
注意:我为 Syncfusion 工作。
我写了一段代码,使用 Syncfusion(程序集 Syncfusion.DocIO.Portable,版本=17.1200.0.50,),Angular 7+ 和 .NET Core 通过邮件合并创建一个 word 文档。请看下面的代码。
private MemoryStream MergePaymentPlanInstalmentsScheduleToPdf(List<PaymentPlanInstalmentReportModel>
PaymentPlanDetails, byte[] templateFileBytes)
{
if (templateFileBytes == null || templateFileBytes.Length == 0)
{
return null;
}
var templateStream = new MemoryStream(templateFileBytes);
var pdfStream = new MemoryStream();
WordDocument mergeDocument = null;
using (mergeDocument = new WordDocument(templateStream, FormatType.Docx))
{
if (mergeDocument != null)
{
var mergeList = new List<PaymentPlanInstalmentScheduleMailMergeModel>();
var obj = new PaymentPlanInstalmentScheduleMailMergeModel();
obj.Applicants = 0;
if (PaymentPlanDetails != null && PaymentPlanDetails.Any()) {
var applicantCount = PaymentPlanDetails.GroupBy(a => a.StudentID)
.Select(s => new
{
StudentID = s.Key,
Count = s.Select(a => a.StudentID).Distinct().Count()
});
obj.Applicants = applicantCount?.Count() > 0 ? applicantCount.Count() : 0;
}
mergeList.Add(obj);
var reportDataSource = new MailMergeDataTable("Report", mergeList);
var tableDataSource = new MailMergeDataTable("PaymentPlanDetails", PaymentPlanDetails);
List<DictionaryEntry> commands = new List<DictionaryEntry>();
commands.Add(new DictionaryEntry("Report", ""));
commands.Add(new DictionaryEntry("PaymentPlanDetails", ""));
MailMergeDataSet ds = new MailMergeDataSet();
ds.Add(reportDataSource);
ds.Add(tableDataSource);
mergeDocument.MailMerge.ExecuteNestedGroup(ds, commands);
mergeDocument.UpdateDocumentFields();
using (var converter = new DocIORenderer())
{
using (var pdfDocument = converter.ConvertToPDF(mergeDocument))
{
pdfDocument.Save(pdfStream);
pdfDocument.Close();
}
}
mergeDocument.Close();
}
}
return pdfStream;
}
文档生成后,我注意到末尾有一个空白页(带有页脚)。我在互联网上反复搜索解决方案,但我无法找到解决方案。据专家介绍,我已经做了初步检查,比如确保初始word模板文件没有分页等
我想知道我是否可以从我的代码中删除任何额外的分页符或类似的东西,这可能会导致这种情况。
对此任何其他建议的解决方案,甚至包括 MS Word 文档修改也表示赞赏。
请参考以下文档link,使用 Syncfusion Word 库 (Essential DocIO) 删除 Word 文档末尾的空白页。 https://www.syncfusion.com/kb/10724/how-to-remove-empty-page-at-end-of-word-document
在您的示例应用程序中将 Word 转换为 PDF 之前,请重复使用代码片段。
注意:我为 Syncfusion 工作。