• 在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>&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 导入文件例子 (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开发者手册)。