-
在CyberArticle里面,对已经保存的文章,套用模板
发表于 2009年04月26日 没有评论在CyberArticle里面,对已经保存的文章,套用模板
对于新建的文章,或者经过处理的网页,使用这个功能,可以快速的套用模板。
例如,我们有一篇或者多篇的文章,需要套用模板。如下图,这是一个新建的文章,没有模板,看起来不好看。我们可以套用CyberArticle安装目录下面的新建文章模板。
首先,我们需要准备一个html文件,作为模板。在这里,我们拿CyberArticle安装目录下面的NewArticleTemplatecommonDreammail里面某个的html作为模板。
为了避免修改CyberArticle本身的文件,把CyberArticle安装目录下面的NewArticleTemplatecommonDreammail文件夹里面的所有文件,都复制到一个临时文件夹,例如T:temp里面:
我们选择1.html作为模板。
用记事本打开1.html,修改这个html文件。
首先,我们需要在head部分增加一个<title>%articletitle%</title>,用来在html里面保存文章标题。
然后,在添加文章正文的部分,增加一个%text%的参数(在这个例子里面,我们把它放在<div></div>这里)。
最后,我们需要修改所有的相对路径为绝对路径,例如图片的地址。否则cyberarticle无法找到相应的图片等资源。
<HTML><HEAD>
<META content=”KsDHTMLEDLib.ocx, FreeWare HTML Editor 1.164.2, ?Kurt Senfer”
name=GENERATOR>
<META http-equiv=Content-Type content=”text/html; charset=GB2312″>
<title>%articletitle%</title>
</HEAD>
<BODY leftMargin=0 topMargin=0>
<TABLE height=400 cellSpacing=0 cellPadding=0 width=”100%” border=0>
<TBODY>
<TR>
<TD vAlign=top align=middle>
<TABLE cellSpacing=0 cellPadding=0 width=”99%” align=center border=0>
<TBODY>
<TR>
<TD width=213 background=t:tempseason_6_top1_1.jpg height=128> </TD>
<TD background=t:tempseason_6_top1_bg.jpg> </TD>
<TD vAlign=top width=28
background=t:tempseason_6_top1_2.jpg> </TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=”99%” align=center
bgColor=#ffffff>
<TBODY>
<TR>
<TD width=48 background=t:tempseason_6_left.jpg> </TD>
<TD width=20> </TD>
<TD>
<DIV
style=”FONT-SIZE: 11pt; COLOR: #666666; LINE-HEIGHT: 25px; TEXT-ALIGN: left”><STATIONERY>
<DIV><!–AID_SENDTO_BEGIN–><!–AID_SENDTO_END–></DIV>
<DIV>%text%</DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV><!–AID_EDIT_ATTACHMENT_BEGIN–>
<!–AID_EDIT_ATTACHMENT_END–></DIV>
<DIV><!–AID_FROMNAME_BEGIN–></A></DIV>
<DIV> </DIV><BR></DIV><STATIONERY></TD>
<TD width=28
background=t:tempseason_6_right.jpg> </TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=”99%” align=center
bgColor=#ffffff border=0>
<TBODY>
<TR>
<TD vAlign=bottom width=48 background=t:tempseason_6_bot_left.jpg
height=164> </TD>
<TD background=t:tempseason_6_bot_bg.jpg> </TD>
<TD width=133
background=t:tempseason_6_bot_right.jpg> </TD>
</TR></TBODY></TABLE></TD>
</TR></TBODY></TABLE><!– footer –></BODY></HTML>完成修改后,保存这个html文件。这样我们就制作好了这个html模板文件。
html模板里面的参数:
- %articletitle%:文章标题
- %keywords%:关键字。如果需要将CyberArticle文章的关键字保存到文章里面,可以增加这个参数。
- %comments%:注释。。如果需要将CyberArticle文章的注释保存到文章里面,可以增加这个参数。
- %text%:原来文章的正文部分在<body>和</body>之间的部分。这个参数是必须的。如果没有这个参数,你的文章将会丢失。
接下来,在CyberArticle里面,选中需要应用模板的文章/文件夹,然后点击右键,在右键菜单里面,选择“高级->应用模板”,
将会出现下面的对话框:
选择我们刚制作好的模板,然后点击确定。
重新浏览CyberArticle文章,可以看到,我们的文章已经使用了新的模板:
-
CyberArticle 导入文件例子 (C#例子)
发表于 2009年04月11日 没有评论本文介绍了如何在C#里面,使用CyberArticle提供的COM组件,来导入HTML文件(或者其他类型的文件,例如text, pdf, jpg, bmp, png等等)
1、建立一个C#的Windows应用程序工程。
2、添加COM引用
在工程节点上面,点击右键,在菜单中选择 Add Reference,然后选择COM标签页,在列表中,选择CyberArticleBook 1.0 Type Library和CyberArticleImportHTML 1.0 Type Library。如下图。
然后单击OK按钮。这样在工程的References节点下面,将会包含CyberArticleBookLib和CyberArticleImportHTMLLib。

3、设计Form1
在Form1.cs里面,增加引用:
//引入CA COM 组件
using CyberArticleBookLib;
using CyberArticleImportHTMLLib;在Form1上面,添加两个按钮,分别是Batch Import和Add HTML。分别编写相应的单击事件代码。
Batch Import按钮单击事件代码:用来完成批量导入HTML文件
private void button1_Click(object sender, EventArgs e)
{
//创建CABookCollection对象
CABookCollection objBookCollection = new CABookCollection();
//添加一个本地书籍文件
int nBookIndex = objBookCollection.AddLocalBook(“e:test.xbook”);
//获得本地书籍的BookGUID
string strBookGUID = objBookCollection.get_GUID(nBookIndex);
//创建书籍对象
CABook objBook = new CABook();
//打开本地书籍
objBook.Open(strBookGUID);
//创建一个导入文件Collection对象
CAImportHTMLDataCollection objDataCollection = new CAImportHTMLDataCollection();
//添加需要导入的文件,标题,所在书籍文件夹(相对导入目录位置),HTML文件名,也可以是text,图片,pdf,rtf,等等
//CA会自动查找或者创建书籍里面的文件夹
objDataCollection.Add2(“My First Html File”, “”, “e:1.htm”);
objDataCollection.Add2(“My Second Html File”, “My Folder”, “e:2.htm”);
//如果需要同时设定文章的URL,可以用
objDataCollection.Add3(“My 3rd Html File”, “My Folder”, “e:3.htm”, “http://www.wizbrother.com/”);
//创建导入HTML对象
CAImportHTML objImport = new CAImportHTML();
//导入
objImport.Import(objBook.RootNode, objDataCollection);
//关闭书籍。因为C#对象在离开作用域的时候不会自动销毁(需要垃圾回收),所以最好手工关闭书籍(关闭数据库连接)
objBook.Close();
}要顺利执行这个代码,您应该在E盘根目录下面,准备一个Test.xbook, 1.htm, 2,htm, 3.htm这几个文件。
Add HTML按钮单击事件代码:用来直接创建一个文章
private void button2_Click(object sender, EventArgs e)
{
//创建CABookCollection对象
CABookCollection objBookCollection = new CABookCollection();
//添加一个本地书籍文件
int nBookIndex = objBookCollection.AddLocalBook(“e:test.xbook”);
//获得本地书籍的BookGUID
string strBookGUID = objBookCollection.get_GUID(nBookIndex);
//创建书籍对象
CABook objBook = new CABook();
//打开本地书籍
objBook.Open(strBookGUID);
//获得根节点
CANode objRoot = (CANode)objBook.RootNode;
//在根节点下面创建一个新的文件夹
CANode objNewFolder = (CANode)objBook.CreateFolder(objRoot, “My New Folder”);
//在新建的文件夹下面,创建一个新的文章
CANode objNewArticle = (CANode)objBook.CreateArticle(objNewFolder, “My New Article”);
//
StreamReader sr = new StreamReader(“e:1.htm”);
//获得html文字
string htmlText = sr.ReadToEnd();
//
sr.Close();
//创建profile Collection
CAProfileCollection objProfileCollection = new CAProfileCollection();
//获得默认profile
CAProfile objProfileDefault = (CAProfile)objProfileCollection.DefaultProfile;
//用html内容,初始化文章。文章资源位置,依赖于第二个参数:url。但是这个参数,不会保存到书籍中。
objNewArticle.InitArticle(htmlText, “e:1.htm”, objProfileDefault);
//如果需要设置文章的url,需要手工设置;
objNewArticle.URL = “http://www.wizbrother.com/”;
}4、测试代码
编写代码后,编译工程,然后执行。
点击Batch Import按钮,就可以一次将E:1.htm, E:2.htm, E:3.htm导入到书籍E:Test.xbook里面。
点击Add HTML,可以将e:1.htm文件,导入到E:Test.xbook里面。
您可以直接下载附件来进行编译测试(VS2005)。
5、说明
注意:Test.xbook, 1.htm, 2,htm, 3.htm这几个文件,您需要自己准备(或者使用附件中的文件),并且放在E:盘根目录下面。您也可以修改C#代码,使用其它位置的文件。
上面的例子代码,没有考虑异常。您在使用COM组件的时候,需要考虑异常情况。
所有的CyberArticle COM组件,请参考CyberArticle开发者手册(CyberArticle 主程序 -> 主菜单 -> 帮助 -> CyberArticle开发者手册)。
Attachments








最近评论