欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Word开发工具功能推荐:使用Aspose.Words for C ++创建重复节内容控件

程序员文章站 2022-06-19 19:21:25
Aspose.Words for C ++ 是一种高级Word文档处理API,用于执行各种文档处理任务。API直接在您自己的C ++应用程序中提供文档格式化,操作,邮件合并,水印和更多功能,而无需Microsoft Word。API支持大多数Microsoft Word格式进行处理。 近期更新了As ......

aspose.words for c ++ 是一种高级word文档处理api,用于执行各种文档处理任务。api直接在您自己的c ++应用程序中提供文档格式化,操作,邮件合并,水印和更多功能,而无需microsoft word。api支持大多数microsoft word格式进行处理。

近期更新了aspose.words for c ++ v19.10,允许在同一项目中使用多个aspose产品,在skia上实现渲染引擎以提高渲染的质量和稳定性,具体更新内容同aspose.words for .net

aspose.words for c ++与其等效的.net版本的api相比有一些差异:

  • 当前版本不支持加密功能-无法验证,签名,加密或解密文档。
  • 当前版本不支持从internet下载远程资源。
  • 当前版本不支持计量许可证。
  • 当前版本不支持多页tiff格式。
  • 当前版本不支持linq和报告功能。
  • 当前版本对数据库功能的支持有限-c ++没有用于db的通用api,例如.net system.data。
  • 当前版本仅支持microsoft visual c ++版本2015或更高版本,并且仅支持x64平台。

本文将为大家介绍一个有趣的的功能——在word文档中创建重复节内容控件

重复部分内容控件允许重复其中包含的内容。为此,sdttype枚举类型提供了repeatingsectionitem属性。下面的代码示例演示如何将word文档中的重复节内容控件绑定到表。

system::sharedptr<document> doc = system::makeobject<document>();    

system::sharedptr<documentbuilder> builder = system::makeobject<documentbuilder>(doc);    

system::sharedptr<customxmlpart> xmlpart = doc->get_customxmlparts()->add(u"books", u"<books><book><title>everyday italian</title><author>giada de laurentiis</author></book><book><title>harry potter</title><author>j k. rowling</author></book><book><title>learning xml</title><author>erik t. ray</author></book></books>");    
system::sharedptr<table> table = builder->starttable();    

builder->insertcell();    
builder->write(u"title");    

builder->insertcell();    
builder->write(u"author");    

builder->endrow();    
builder->endtable();    

system::sharedptr <structureddocumenttag> repeatingsectionsdt = system::makeobject<structureddocumenttag>(doc, sdttype::repeatingsection, markuplevel::row);    
repeatingsectionsdt->get_xmlmapping()->setmapping(xmlpart, u"/books[1]/book", u"");    
table->appendchild(repeatingsectionsdt);    

system::sharedptr <structureddocumenttag> repeatingsectionitemsdt = system::makeobject<structureddocumenttag>(doc, sdttype::repeatingsectionitem, markuplevel::row);    
repeatingsectionsdt->appendchild(repeatingsectionitemsdt);    

system::sharedptr<row> row = system::makeobject<row>(doc);    
repeatingsectionitemsdt->appendchild(row);    

system::sharedptr <structureddocumenttag> titlesdt = system::makeobject<structureddocumenttag>(doc, sdttype::plaintext, markuplevel::cell);    
titlesdt->get_xmlmapping()->setmapping(xmlpart, u"/books[1]/book[1]/title[1]", u"");    
row->appendchild(titlesdt);    

system::sharedptr <structureddocumenttag> authorsdt = system::makeobject<structureddocumenttag>(doc, sdttype::plaintext, markuplevel::cell);    
authorsdt->get_xmlmapping()->setmapping(xmlpart, u"/books[1]/book[1]/author[1]", u"");    
row->appendchild(authorsdt);    
doc->save(outputdatadir + u"document.docx");复制代码

将自定义文档属性链接到书签

“ aspose.words for c ++” api现在提供了一种方法customdocumentproperties.addlinktocontent(string,string)来创建新的“链接至内容”自定义文档属性,该属性将返回新创建的属性对象;如果链接源无效,则返回null。下面的代码示例演示如何配置到内容定制属性的链接。

system::sharedptrdoc = system::makeobject(inputdatadir + u"test.docx");

// retrieve a list of all custom document properties from the file.
system::sharedptrcustomproperties = doc->get_customdocumentproperties();

// add linked to content property.
system::sharedptrcustomproperty = customproperties->addlinktocontent(u"propertyname", u"bookmarkname");

// also, accessing the custom document property can be performed by using the property name.
customproperty = customproperties->idx_get(customproperties->indexof(u"propertyname"));

// check whether the property is linked to content.
bool islinkedtocontent = customproperty->get_islinktocontent();

// get the source of the property.
system::string source = customproperty->get_linksource();

// get the value of the property.
system::string value = customproperty->get_value()->tostring();
有何aspose需求的可在评论区留言哦~