存档

2009年4月 的存档

在CyberArticle里面,对已经保存的文章,套用模板

2009年4月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>&nbsp;</TD>
          <TD background=t:tempseason_6_top1_bg.jpg>&nbsp;</TD>
          <TD vAlign=top width=28
        background=t:tempseason_6_top1_2.jpg>&nbsp;</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>&nbsp;</TD>
          <TD width=20>&nbsp;</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>&nbsp;</DIV>
            <DIV>&nbsp;</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>&nbsp;</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>&nbsp;</TD>
          <TD background=t:tempseason_6_bot_bg.jpg>&nbsp;</TD>
          <TD width=133
      background=t:tempseason_6_bot_right.jpg>&nbsp;</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 标签:

CyberArticle 导入文件例子 (C#例子)

2009年4月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开发者手册)。

 

分类: CyberArticle, 程序设计 标签: