我们在传阅文件的时候,有些时候可能只想给别人看而不想让别人修改。有几种办法可以做到,一种是另存为只读格式的PDF文件,别人只能用PDF阅读器查看,还有一种更简单的方法是,将文档转换为图片,这种方法既简单又实用。现在,永中Office开发版提供了将文字处理中的内容转换为图片的接口API功能,方便人们的使用。
永中提供了三个相关的API:
- public void convertToJPEG(int pageIndex, String fileName) throws java.io.IOException, java.io.FileNotFoundException,其功能是将页面视图中的第 pageIndex页转换为名为 fileName的JPG图片;页码起始为1。当pageIndex=0时,表示将全部页保存为图片,也就是生成类似 fileName001, fileName002这样的图片集;
- public void convertToJPEG(String fileName) throws java.io.IOException, java.io.FileNotFoundException,其功能是把所有页面视图转换成一系列JPEG图像文件,产生的图片文件为fileName+00+页码号。即:如有3页文本,产生的图片分别为fileName001.jpg、fileName002.jpg、fileName003.jpg;
- public void convertToOneJPEG(String fileName) throws IOException, FileNotFoundException,其功能是把所有页面视图转换成一JPEG图像文件,需要说明的是,如果页面较多可能会造成内存溢出异常,使用时要注意;
下面我们以一个简单的例子来说明这些API的使用方法。
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb18030">
<title>将文字处理内容转换为图片</title>
<script language="JavaScript">
<!--
//利用JavaSript函数调用Applet中的convert2JPEG方法
function convert()
{
document.eioffice.convert2JPEG(document.form1.T1.value);
}
// -->
</script>
</head>
<body>
<form method="POST" action="" name="form1">
<p>
<font size=4><center><b>网页Form控件与EIO_Applet互动示例</b></center></font>
</p>
<center><p>
<applet width="700" height="500" name="eioffice" code="EIOApplet.class" >
本浏览器不支持JAVA Applet
</applet></p>
将文字处理文档第 <input type="text" name="T1" size="2" value="1"> 页内容
<input type="button" value="转换为图片" name="convertfile" onclick="convert();">
<a href="d:\PIC.JPG">查看该图片</a>
</center>
</form>
</body>
</html> |
这个网页嵌入永中Office小应用程序,并根据输入的页码,生成相应的图片。

运行这个网页时,先用永中Office打开一个已经存在的文件(或者新建一个文字处理文件),在最后一行输入要生成图片的页码数,点击“转换为图片”,则生成了图片,点击“查看该图片”将打开图片供查阅。如果是第一页,则生成如左图片。
如果输入第0页,表示自动生成全部页面的图片,这篇文档共3页,故会在相同目录下生成3副图片,文件名称分别是“PIC001.JPG”、“PIC002.JPG”和“PIC003.JPG”。
这一切是如何实现的呢?我们来看一看 EIOApplet.class这个Applet的源代码就知道了。
import java.awt.Container;
import application.Application; //导入永中Office的类
import application.workbooks.workbook.documents.Document;
/**
*
* @author Evermore
*/
public class EIOApplet extends javax.swing.JApplet
{
/** Creates a new instance of EIO_Applet */
public EIOApplet()
{
}
private void createInstance()
{
//创建永中Office的applet实例
Application.createInstance(this);
//获得applet实例
getContentPane().add("Center", Application.getInstance());
//将applet添加到Applet面板中
Container contentPane=getContentPane();
}
public void start()
{
createInstance();
}
//EIO_Applet中的方法,供网页JavaScript函数调用,与网页按钮联动
public void convert2JPEG(java.lang.String pageNo)
{
//Application.gotoProduct(1);//切换到文字处理应用,此时为新建一个空白文档
Document doc = Application.getWorkbooks().getActiveDocument();
try
{
int pno = java.lang.Integer.parseInt(pageNo);
doc.convertToJPEG(pno, "d:\\PIC");
// doc.convertToOneJPEG("d:\\PIC"); // 保存全部页面为一副图片
}
catch (java.io.IOException e)
{
}
}
} |
看上面Applet中的 convert2JPEG()方法,首先取得活动的文字处理文档,然后直接调用doc. ConvertToJPEG()方法进行转换,该方法需要进行异常处理。如果采用 doc.convertToOneJPEG()方法,则可以将整篇文档一次性地转换为一副图片,效果如上页的右图所示,方便吧。不过这种转换很耗内存,如果页码太多,建议不用使用。
编译方法:在命令行用下列命令编译该java文件(确保永中Office已经安装了)
javac -classpath %EIO_HOME%/EIOOffice.ese;. EIOApplet.java
其中EIO_HOME为安装永中Office时系统自动设置的永中Office的路径;如果没有设置JAVA_HOME环境变量,则在javac命令前填充JDK的具体路径。 |