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>任意標簽都可以。要顯示多少長度就限制多少哈