top
linkSite
 
 
首页  |  产品  |  销售  |  在线订购  |  服务  |  下载  |  新闻  |  二次开发  |  关于我们  |  永中未来星  |  永中手机Office  |  永中论坛   
macro
概况
解决方案
编程指南
使用技巧
技术支持
 
search
新闻搜索
当前位置:首页 > 二次开发 > 使用技巧 > 永中Office图片操作编程指南
永中Office图片操作编程指南

  图片是文档编辑过程中常用的一种编辑方式,我们通过下面这个实例来学习如何通过调用永中Office的API在文字处理文档中插入图片并设置其各种格式。

  实例运行如下图所示:

  网页右侧为永中Office的小应用程序(EIO_Applet),左侧为操作控制按钮,其中最上部为选择图片文件和插入按钮,下部为图片各种属性设置按钮。

  以下是网页代码:

<HTML>
<HEAD>
<meta http-equiv="Content-Language" content="zh-cn">
<TITLE>图片对象操作样例</TITLE>
<script language="JavaScript" type="text/JavaScript">
<!--
function insertPicture()
{
filePath = document.form1.F1.value;
document.EIOWindow.insertPic(filePath);
}
function applyAttribute()
{
surroundIndex = document.form2.D1.selectedIndex;
colorIndex = document.form2.D2.selectedIndex;
measureLocked = document.form2.C1.checked;
dragLocked = document.form2.C2.checked;
printLocked = document.form2.C3.checked;
height = document.form2.T1.value;
width = document.form2.T2.value;
document.EIOWindow.setSurroundType(surroundIndex);
document.EIOWindow.setColorType(colorIndex);
document.EIOWindow.setHigh(height);
document.EIOWindow.setWidth(width);
document.EIOWindow.setMeasureLocked(measureLocked);
document.EIOWindow.setDragLocked(dragLocked);
document.EIOWindow.setPrintLocked(printLocked);
}
//-->
</script>
</HEAD>

<BODY>
<p align="center"><b><font size="6">永中Office嵌入浏览器样例</font></b></p>
<div style="position: absolute; width: 191px; height: 522px; z-index: 2; left: 10px; top: 50px; visibility:visible" id="layer2">
<form method="POST" action="" name="form1">
<p align="center">
<p>
<input type="button" value="插入图片对象" name="insertButton" style="float: left" onclick="insertPicture();"></p>
<p> </p>
<p><input type="file" name="F1" size="14"></p>
</p>
</form>
<form method="POST" action="" name="form2">
<fieldset style="width: 191px; height: 368px; padding: 2">
<legend align="left">属性设置</legend>
<p>
<select size="1" name="D1">
<option selected>嵌入文字</option>
<option>环绕四周</option>
<option>独占一行</option>
<option>文字之下</option>
<option>文字之上</option>
</select> 图片布局</p>
<p><select size="1" name="D2">
<option selected>自动</option>
<option>灰度</option>
<option>黑白</option>
<option>水印</option>
</select>&nbsp;&nbsp;&nbsp; 颜色设置</p>
<p>高度<input type="text" name="T1" size="4" value="100">&nbsp; 像素</p>
<p>宽度<input type="text" name="T2" size="4" value="100">&nbsp; 像素</p>
<p><input type="checkbox" name="C1" value="ON" checked="true"> 锁定高度比</p>
<p><input type="checkbox" name="C2" value="ON" checked="true"> 允许水平垂直拖拉</p>
<p><input type="checkbox" name="C3" value="ON" checked="true"> 打印对象</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="button" value="确定" name="submit" onclick="applyAttribute();"></p>
</fieldset></form>
<p> </div>
<p align="left"> </p>
<p align="center"> </p>
<div style="position: absolute; width: 800px; height: 600px; z-index: 1; left: 202px; top: 51px; visibility:visible" id="layer1" >
<applet width="796" name="EIOWindow" height="605" code="EIOApplet.class">
本浏览器不支持JAVA APPLET
</applet></div>
</BODY>
</HTML>

  “插入图片对象”按钮的功能是将“浏览”按钮中选择的图片文件插入到名称为EIOWindow的小应用程序的文字处理文档的光标所在处,它通过调用EIOWindow的 insertPic(filename)来实现。
“属性设置”区域包含图片的绕排方式、颜色模式、高度、宽度、是否高宽比锁定、是否垂直水平拉动和是否允许打印等属性。“确定”按钮的功能是将这些属性值设置给上面插入的那个图片上,它通过分别调用EIOWindow的setSurroundType、setColorType、setHigh、setWidth、setMeasureLocked、setDragLocked和setPrintLocked方法实现。

  例如,我们选择“图片布局”下拉框,选择“环绕四周”,点击“确定”,则图片在文档中的绕排方式随之改变,如下图所示。

  应用“锁定高宽比”、“允许水平垂直拖拉”和“打印对象”可以分别设置缩放图片大小时是否高宽比一致变化、是否只允许在水平和垂直方向拉动图片大小和是否允许图片打印。

  下面我们重点来研究名为EIOWindow的永中Office小应用程序。

/*
* EIOApplet.java
*
* Created on 2004年6月1日, 上午9:07
*/

/**
*
* @author evermore
*/
import application.Application;
import application.constants.BarConstants;
import application.workbooks.workbook.documents.document.WpSelection;
import application.constants.MoveDotConstants;
import application.constants.MacroConstants;
import application.workbooks.workbook.shapes.ShapeRange;
import application.workbooks.workbook.Shapes;
import application.workbooks.workbook.shapes.PictureFormat;
import application.workbooks.workbook.shapes.Shape;

public class EIOApplet extends javax.swing.JApplet implements MoveDotConstants,MacroConstants
{
/** Creates a new instance of EIOApplet */
public EIOApplet()
{
}
public void start()
{
//创建一个永中Office的实例,将其加入到网页里的applet面板中
Application.createInstance(this);
getContentPane().add("Center",Application.getInstance());
//关闭导航面板
Application.displayNavigationPane(false);
//隐藏标准工具栏,格式化工具栏,标准菜单栏,画图工具栏
Application.setToolbarVisible(BarConstants.STANDARD_INDEX, false);
Application.setToolbarVisible(BarConstants.FORMATTING_INDEX, false);
Application.setToolbarVisible(BarConstants.MENUBAR_INDEX, true);
Application.setToolbarVisible(BarConstants.DRAWING_INDEX, false);
eioinit();
}
public void eioinit()
{
//新建一个文字处理的空白文档
Application.gotoProduct(1);
}
//插入指定路径的图片
public void insertPic(String path)
{
//插入路径所指图片,设置图片的大小
WpSelection.insertPicture(path,100,100);
//创建一个图形对象,将插入的图片赋给这个对象
Shapes shapes = Application.getWorkbooks().getActiveWorkbook().getActiveShapes();
//获得被选中的自选图形
shape = shapes.getRange();
}
//设置图片的高度
public void setHigh(String height)
{
//将网页标签得到的string类型的值转换成double型
double dHeight = 0;
Double h = new Double(0.0);
dHeight = h.parseDouble(height);
//设置高度值
shape.setHeight(dHeight);
}
//设置图片宽度
public void setWidth(String width)
{
double dWidth = 0;
Double w = new Double(0.0);
dWidth = w.parseDouble(width);
//设置宽度
shape.setWidth(dWidth);
}
//设置是否锁定高度比
public void setMeasureLocked(boolean locked)
{
shape.setLockRatio(locked);
}
//设置是否允许水平垂直拖拉
public void setDragLocked(boolean locked)
{
shape.setHalfDrag(locked);
}
//设置是否允许打印对象
public void setPrintLocked(boolean locked)
{
shape.setPrintShape(locked);
}
/*
*设置图片的环绕式样
*index为0时,环绕样式为“嵌入文字”;
*index为1时,环绕样式为“环绕四周”;
*index为2时,环绕样式为“独占一行”;
*index为3时,环绕样式为“文字之下”;
*index为4时,环绕样式为“文字之上”
*/
public void setSurroundType(String index)
{
//将接受到的string型参数进行类型转换
int type = 0;
if(index.equals("0"))
{
type = 0;
}
else if(index.equals("1"))
{
type = 1;
}
else if(index.equals("2"))
{
type = 2;
}
else if(index.equals("3"))
{
type = 3;
}
else if(index.equals("4"))
{
type = 4;
}
//设置环绕样式
shape.setLayoutIndex(type);
}
/*
*设置图片的模式
*mode=0,表示“自动”模式;
*mode=1,表示“灰度”模式;
*mode=2,表示“黑白”模式;
*mode=3,表示“水印”模式。
*如果mode取值大于3,则设图片模式为“自动”模式
*/
public void setColorType(String index)
{
int clrType = 0;
if(index == "0")
{
clrType = 0;
}
else if(index.equals("1"))
{
clrType = 1;
}
else if(index.equals("2"))
{
clrType = 2;
}
else if(index.equals("3"))
{
clrType = 3;
}
//定义一个图片格式对象
PictureFormat pf = shape.getPictureFormat();
//设置模式
pf.setMode(clrType);
}
public static ShapeRange shape;
}

  EIOApplet小应用程序的start方法先将永中Office实例化,并加入到applet面板。为了取得最大编辑区域的视图效果,通过API调用分别将永中Office的导航面板、标准工具栏、格式化工具栏和绘图工具栏关闭了。eioinit方法则调用Application.gotoProduct(1)方法新建一个空白的文字处理文档。在演示本实例时,也可以直接打开一个已经存在的文件。

  永中Office中图形对象,包括自选图形、图片、艺术字、电子签章等,是通过application.workbooks.workbook 包中的Shapes类进行管理的。图片由于在文字处理和电子表格应用中某些属性的差异(比如,在电子表格中没有绕排属性),因此插入图片的方式各不相同。在文字处理中,插入图片有两种方法,一是通过application.workbooks.workbook.documents.document.WpSelection的insertPicture(文件名称 ,高度,宽度)方法,一是通过application.workbooks.workbook.documents.document.section.BaseText的insertPicture(Offset偏移量,文件名称 );电子表格中,则是application.workbooks.workbook.worksheets.worksheet.ActiveCell的insertPicture(文件名称 )方法。本例演示文字处理中插入图片的方法,并采用WpSelection的insertPicture方法。

  为了进一步对该图形对象进行操作,我们定义一个ShapeRange类的shape变量,先通过Shapes shapes = Application.getWorkbooks().getActiveWorkbook().getActiveShapes()方法取得文档中所有活动的图形对象,然后通过shapes.getRange()将被选中的图形赋给变量shape。

  ShapeRange类定义了一些对选中的图形对象进行操作的一些方法,如判断图形对象的类型,判断图形对象是否可编辑,设置图形对象的宽度和高度,复制和粘贴图形对象的格式等。于是有了下面的这些方法:

    setSurroundType(绕排类型)——设置图形对象的绕排方式;
    SetColorType(颜色模式)方法,先获得shape的PictureFormat再调用其PictureFormat.setMode方法实现;
    SetHigh、setWidth方法比较简单,注意参数类型,需要将字符串转换为Double类型;
    SetMeasureLocked、setDragLocked、setPrintLocked方法直接调用对应的方法实现。

  在命令行用下列命令编译该java文件(确保永中Office已经安装了)
javac -classpath %EIO_HOME%/EIOOffice.ese;. EIOApplet.java

  其中EIO_HOME为安装永中Office时系统自动设置的永中Office的路径;如果没有设置JAVA_HOME环境变量,则在javac命令前填充JDK的具体路径。

  本实例详细展示了永中Office图片操作的细节,通过网页JavaScript函数与EIO_Applet的互动,我们能够很方便地通过程序操作永中Office。永中Office也可以以JavaBean控件方式嵌入其他应用程序,通过类似地API调用,也可以达到类似的效果。

有关API请参阅永中Office API文档(永中Office开发版光盘中的API目录,打开其中的Index.html文件,可查阅全部包、类和具体信息,也可以通过点击“Index(索引)”进行全文检索,查找你需要的信息。
 
right
 永中集成Office 2007
 产品聚焦
·产品注册
·在线升级
·2007试用版下载
·补丁下载
 资料下载
·模板下载
·产品白皮书
·应用秘笈
·二次开发手册
 与我们联系
·800-808-6655
·0510-85213588(客服)
公司荣誉
二次开发
bottom
Copyright © 2001-2008 永中科技有限公司
电话:0510-85213588 8008086655 传真:0510-85218836