1、利用jacob包将用户上传的word文件转换成htm格式,必须是“筛选过的网页”,不然显示不了图片;
2、将转换好的htm格式文档路径存入数据库,读的时候就在数据库里读。
jacob1.8包下载地址:http://sourceforge.net/projects/jacob-project/
可能会抛出no jacob in java.library.path异常,解决办法如下:
1、 把jacob.dll在 C:/Program Files/Java/jdk1.5.0_08/bin、C:/Program Files/Java/jdk1.5.0_08/jre/bin、 C:/WINDOWS/system32 目录下各.放一份
2、把jacob.jar放入 项目的lib包下
将word文档转换为htm格式的java代码如下:
import com.jacob.com.*;
import com.jacob.activeX.*;
import java.io.*;
public class WordToHtml {
//将指定目录下面的指定doc文件转化为HTML并存储在savepaths目录下
public static void change(String filepaths, String savepaths) {
File f = new File(filepaths);
String filename = f.getName();
String filetype = filename.substring((filename.length() - 3), filename.length());// 取得文件类型
if (filetype.equals("doc")) {// 判断是否为doc文件
System.out.println("当前正在转换......");
// 打印当前目录路径
System.out.println(filepaths);
ActiveXComponent app = new ActiveXComponent("Word.Application");// 启动word
String docpath = filepaths;
String htmlpath = savepaths + filename.substring(0, (filename.length() - 4));
String inFile = docpath;
// 要转换的word文件
String tpFile = htmlpath;
// HTML文件
boolean flag = false;
try {
app.setProperty("Visible", new Variant(false));// 设置word不可见
Object docs = app.getProperty("Documents").toDispatch();
Object doc = Dispatch.invoke(docs,"Open",Dispatch.Method,new Object[] { inFile, new Variant(false),new Variant(true) },
new int[1]).toDispatch();// 打开word文件
/*
* new Variant(10)筛选过的网页
* new Variant(9) 单个文件网页
* new Variant(8) 另存为网页
* new Variant(7) 另存为txt格式
* new Variant(6) 另存为rtf格式
* new Variant(0) 另存为doc格式
*/
Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] {tpFile, new Variant(10) }, new int[1]);// 作为html格式保存到临时文件
Variant fl = new Variant(false);
Dispatch.call(doc, "Close", fl);
flag = true;
} catch (Exception e) {
e.printStackTrace();
} finally {
app.invoke("Quit", new Variant[] {});
}
System.out.println("转化完毕!");
}
}
public static void main(String[] args) {
//转换目录下的所有doc文件
// String paths = new String("D://test//");
String savepaths = new String("D://test//");
// changeAll(paths, savepaths);
//
//转换指定doc文件
String filepaths = "D://test.doc";
change(filepaths, savepaths);
}
}
B. 在JSP中怎样同时显示文本和图片
你要单独写一个JSP来分别获取图片和文字,主页面输出内容如下:
<img src=getpic.jsp?id=xxx>文字
让getpic.jsp才从数据库获取指定记录的BLOB字段内容,然后以字节流输出。
C. jsp中实现界面的圆角矩形
/*CSS圆角*/.content{ margin:50; width:200px; background:#40534a; height:200px; padding:50px; } .circle_01{ background:#5e7365; height:1px; overflow:hidden; margin:0 3px;} .circle_02{ background:#5e7365; height:1px; overflow:hidden; margin:0 1px; } .circle_03{ background:#5e7365; height:1px; overflow:hidden; margin:0 1px; }.box{ border:1px solid #5e7365; background:#5e7365; height:100px; color:White; }页面:http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></A>http://www.w3.org/1999/xhtml"</A> > circle Content 效果图如下:
D. 怎样在自己JSP页面的地址栏上显示图片
jsp中显示图片的方法是通过加载img标签的src图片路径定位显示图片的。 比如: img 元素向网页中嵌入一幅图像。 请注意,从技术上讲, 标签并不会在网页中插入图像,而是从网页上链接图像。 标签创建的是被引用图像的占位空间。
E. 如何在jsp中显示图片
1、在JSP中显示图片与在HTML中显示图片没有什么区别,都是使用IMG标签来显示图片。
2、IMG标签显示图片,有两种方式,一种是使用绝对路径,一种是使用相对路径,现在项目为了地址不出错,一般都是使用相对路径。
3、当然在实际项目很多还会使用nginx在做图片的静态代理。
4、希望对你有帮助。总体而言jsp学习难度不大,要多上手尝试。加油、努力,祝你学有所得。
F. 如何在JSP中循环显示图片
<%
for(int j=1;j<=15;j++){
%>
document.write("<img src='pic/拉花艺术/12.jpg' width="399" height="299" />");
<%}%>
G. 一个jsp页面怎么嵌入另一个jsp页面并显示图片
在B.jsp中使用jsp指令
<jsp:include page="A.jsp">
<%@include file="A.jsp"%>
试试就知道了
H. 如何在JSP网页中生成动态图表
JSP页面中嵌入动态图表的两种方法 :在JSP页面中插入Applet小程序 ;通过JavaBean动态生成图像。
JSP是一种广泛应用的网页设计技术 ,它是一种HTML和Java脚本混合的编程技术 ,它结合了HTML的静态特性和Java语言的动态能力 ,因此用它进行动态网页设计非常方便。在进行图像处理时 ,一般处理静态图片非常容易 ,但是 ,在实际应用中常常需要动态地在网页中生成二维的图形.
基于JFreeChart开发的一个时序图的绘制。代码如下:
实例中createDataset()方法用于创建数据集合对象。时序图的数据集合与其他数据集合不同,它需要添加一个时间段内的所有数据,通常采用TimeSeries类进行添加。该实例中通过Math类的random()方法进行随机生成。
import java.awt.*;
import java.awt.event.ActionEvent;
import
java.awt.event.ActionListener;
import java.io.BufferedInputStream;
import
java.io.DataInputStream;
import java.io.FileOutputStream;
import
java.io.IOException;
import java.net.URL;
import
java.net.URLConnection;
import java.text.DateFormat;
import
java.text.ParseException;
import java.text.SimpleDateFormat;
import
java.util.Calendar;
import java.util.Date;
import java.util.Random;
import javax.swing.JApplet;
import javax.swing.Timer;
import org.jfree.chart.*;
import
org.jfree.chart.annotations.CategoryTextAnnotation;
import
org.jfree.chart.axis.CategoryAnchor;
import
org.jfree.chart.axis.CategoryAxis;
import
org.jfree.chart.axis.CategoryLabelPositions;
import
org.jfree.chart.axis.DateAxis;
import
org.jfree.chart.axis.DateTickUnit;
import
org.jfree.chart.axis.DateTickUnitType;
import
org.jfree.chart.axis.ValueAxis;
import
org.jfree.chart.labels.;
import
org.jfree.chart.plot.CategoryPlot;
import
org.jfree.chart.plot.PlotOrientation;
import
org.jfree.chart.plot.XYPlot;
import
org.jfree.chart.renderer.category.BarRenderer;
import
org.jfree.chart.title.TextTitle;
import
org.jfree.data.category.CategoryDataset;
import
org.jfree.data.category.IntervalCategoryDataset;
import org.jfree.chart.axis.NumberAxis;
import
org.jfree.data.category.DefaultCategoryDataset;
import
org.jfree.data.gantt.Task;
import org.jfree.data.gantt.TaskSeries;
import
org.jfree.data.gantt.TaskSeriesCollection;
import
org.jfree.data.time.Day;
import org.jfree.data.time.Second;
import
org.jfree.data.time.TimeSeries;
import
org.jfree.data.time.TimeSeriesCollection;
import
org.jfree.data.xy.XYDataset;
public class shixutu extends JApplet {
//PLOT_FONT是一静态的字体常量对象,使用此对象可以避免反复用到的字体对象被多次创建
private static final Font PLOT_FONT = new Font("黑体", Font.ITALIC ,
18);
JFreeChart chart;
//创建数据动态更新的监听
class DataGenerator extends Timer
implements ActionListener {
private static final long serialVersionUID =
3977867288743720504L;
String
equID;
//设备ID号
int
totalTask;
//任务数
String[][]
strTask;
//任务情况
public void
actionPerformed(ActionEvent actionevent) {
addTotalObservation();
} DataGenerator()
{
super(1000,
null);
addActionListener(this);
System.out.println("super");
}
}
//将更新的数据添加到chart中
private void addTotalObservation()
{
System.out.println("addTotalObservation");
//设置新的数据集
chart.getXYPlot().setDataset(createDataset());
//通知Jfreechart
数据发生了改变,重新绘制柱状图
if
(chart != null)
{
chart.fireChartChanged();
}
}
private static void
processChart(JFreeChart chart)
{
//设置标题字体
chart.getTitle().setFont(new Font("隶书", Font.BOLD,
26));
//设置背景色
chart.setBackgroundPaint(new
Color(252,175,134));
XYPlot plot = chart.getXYPlot();
//获取图表的绘制属性
plot.setDomainGridlinesVisible(false);
//设置网格不显示
//获取时间轴对象
DateAxis dateAxis = (DateAxis)
plot.getDomainAxis();
dateAxis.setLabelFont(PLOT_FONT);
//设置时间轴字体
//设置时间轴标尺值字体
dateAxis.setTickLabelFont(new
Font("宋体",Font.PLAIN,12));
dateAxis.setLowerMargin(0.0);
//设置时间轴上显示的最小值
//获取数据轴对象
ValueAxis valueAxis =
plot.getRangeAxis();
valueAxis.setLabelFont(PLOT_FONT);
//设置数据字体
DateFormat format = new SimpleDateFormat("mm分ss秒");
//创建日期格式对象
//创建DateTickUnit对象
DateTickUnit dtu = new
DateTickUnit(DateTickUnitType.SECOND,30,format);
dateAxis.setTickUnit(dtu);
//设置日期轴的日期标签 } //将结果输出在文件中
private static
void writeChartAsImage(JFreeChart chart)
{
FileOutputStream fos_jpg =
null;
try
{
fos_jpg = new
FileOutputStream("D:\test\shixutu.jpg");
ChartUtilities.writeChartAsJPEG(fos_jpg, 1, chart, 400, 300,
null);
} catch (Exception e)
{
e.printStackTrace();
} finally
{
try
{
fos_jpg.close();
} catch (Exception e)
{
}
}
}
//创建数据集合对象
public static XYDataset createDataset()
{
//实例化TimeSeries对象
TimeSeries timeseries = new
TimeSeries("Data");
Second second = new Second();
//实例化Day
double d =
50D;
//添加一年365天的数据
for (int i = 0; i < 500; i++)
{
d = d + (Math.random() - 0.5) * 10;
//创建随机数据
timeseries.second(day, d);
//向数据集合中添加数据
second = (Second)
second.next();
}
TimeSeriesCollection timeSeriesCollection =
new
TimeSeriesCollection(timeseries);
//返回数据集合对象
return timeSeriesCollection; }//Applet程序初始化
public void init()
{
// 1.
得到数据
XYDataset dataset =
createDataset();
// 2.
构造chart
chart =
ChartFactory.createTimeSeriesChart(
"时序图示范", //
图表标题
"时间", //
目录轴的显示标签--横轴
"数值", //
数值轴的显示标签--纵轴
dataset, //
数据集
false,
false, //
是否生成工具
false //
是否生成URL链接
);
// 3.
处理chart中文显示问题
processChart(chart);
// 4.
chart输出图片
//writeChartAsImage(chart);
// 5. chart
以swing形式输出
//6.使用applet输出
ChartPanel chartPanel = new
ChartPanel(chart);
chartPanel.setPreferredSize(new
java.awt.Dimension(800,500));
getContentPane().add(chartPanel); (new
DataGenerator()).start();
}
public void
paint(Graphics g)
{
if
(chart != null)
{
chart.draw((Graphics2D) g,
getBounds());
}
}
public void destroy() {
}
}
I. JSP中怎么显示文章部分内容
这和JSp无关 是CSS样式定义的。不过在FF上可能显示不了......
<div style="width:300px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;"> 任意长度的字符串 </div>
只要样式对就可以。有<span>或者<input>任意标签都可以。要显示多少长度就限制多少哈