當前位置:首頁 » 網頁前端 » javaweb顯示pdf
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

javaweb顯示pdf

發布時間: 2023-03-12 05:16:54

A. javaweb pdf流轉jpg流怎麼操作

package pdf;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import javax.swing.SwingUtilities;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGEncodeParam;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
import com.sun.pdfview.PDFFile;
import com.sun.pdfview.PDFPage;
public class PdfToJpg {
public static void setup() throws IOException {
// 載入一個pdf從一個位元組緩沖區
File file = new File("D:\\yangliu\\test.pdf");
RandomAccessFile raf = new RandomAccessFile(file, "r");
FileChannel channel = raf.getChannel();
ByteBuffer buf = channel.map(FileChannel.MapMode.READ_ONLY, 0,
channel.size());
PDFFile pdffile = new PDFFile(buf);
System.out.println("頁數:" + pdffile.getNumPages());
String getPdfFilePath = System.getProperty("user.dir") + "\\pdfPicFile";
System.out.println("getPdfFilePath is :" + getPdfFilePath);

for (int i = 1; i < pdffile.getNumPages(); i++) {
// 畫第一頁到一個圖像
PDFPage page = pdffile.getPage(i);
// 獲得寬度和高度的文件在默認的變焦
Rectangle rect = new Rectangle(0, 0, (int) page.getBBox()
.getWidth(), (int) page.getBBox().getHeight());
// 生成圖像
Image img = page.getImage(rect.width, rect.height, rect, null,
true, true);
BufferedImage tag = new BufferedImage(rect.width, rect.height,
BufferedImage.TYPE_INT_RGB);
tag.getGraphics().drawImage(img, 0, 0, rect.width, rect.height,
null);
// 輸出到文件流
FileOutputStream out = new FileOutputStream(getPdfFilePath + "\\"
+ i + ".jpg");
System.out.println("成功保存圖片到:"+getPdfFilePath+"\\"+i+".jpg");

JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(tag);
param.setQuality(1f, false); //1f是提高生成的圖片質量
encoder.setJPEGEncodeParam(param);
encoder.encode(tag); // JPEG編碼
out.close();
}
}

public static void main(final String[] args){
SwingUtilities.invokeLater(new Runnable() {
public void run() {
try {
PdfToJpg.setup();
} catch (IOException e) {
e.printStackTrace();
}
}
});
}
}

B. pdf-javaweb強大的在線文檔編輯工具,轉換為PDF插件用什麼比較好

office2010WORD轉換PDF步驟:1、用office2010打開WORD,點擊左上角的「文件」菜單,然後在新窗口中點擊「保存並發送」菜單。2、點擊創建「PFD/XPS文檔」後再點擊「創建PDF/XPS」。3、選擇要保存的位置,點擊「發布」。4、點擊發布後自動跳出生成的PDF文件。

C. java web利用poi實現word轉換成pdf

建議你是用acrobat 或者abbyy 這個 兩款軟體進行轉換編輯

Adobe公司推出的PDF格式是一種全新的電子文檔格式。藉助 Acrobat ,您幾乎可以用攜帶型文檔格

adobe-acrobat-x

式 (Portable Document Format,簡稱 PDF) 出版所有的文檔。 PDF 格式的文檔能如實保留原來的面貌和內容,以及字體和圖像。這類文檔可通過電子郵件發送,也可將它們存儲在WWW 、企業內部網、文件系統或CD-ROM上,來供其他用戶在 Microsoft Windows , Mac OS和 LINUX 等平台上進行查看。由於該格式使用Adobe公司開發的PostScript頁面描述語言,使得頁面中的文字和圖形的質量得到質的飛躍。無論您是使用PDF文檔進行網上閱讀,還是列印、印刷出版,Adobe Acrobat都能給你最好效果。

ABBYY 是一家俄羅斯軟體公司,在文檔識別,數據捕獲和語言技術的開發中居世界領先地位。其獲獎產品 FineReader OCR 軟體可以把靜態紙文件和 PDF 文件轉換成可管理的電子數據,可以大大節省您的時間和精力。

D. 求:JavaWEB實現Excel,Word ,PDF 等文檔在線預覽思路和源碼Jar

做OA、文檔管理的,現在都在用PageOffice組件,效果非常好,文檔格式不走樣,不過是收費的。找免費的,可忽略

E. Javaweb office文檔在線預覽怎麼實現!!!

在線預覽的不是office格式,而且是swf文件,
flexPaper是可以把swf放在頁面上進行展示的,
1、flash 的flexpaper 將文檔轉換為swf格式,然後使用flash在網頁中瀏覽,
2、使用開源的軟體openoffice+pdf2htmlEx,利用openoffice的介面先將文檔轉換為pdf格式,然後在使用pdf2htmlEx將文檔轉換為html直接在網頁中顯示;
3、搭建一個文檔預覽伺服器,基於office web app,也就是微軟的office online。

搭建伺服器步驟:
首先,需要轉換server
安裝IIS 7.0,打開伺服器管理器,添加角色和功能,打開「添加角色和功能向導」界面,點擊下一步,因為是基於本機安裝,所以要選擇「基於角色或者基於功能安裝」,在伺服器角色列表上選擇「Web伺服器」,點擊下一步,安裝完成。
其次,域控server

(1)打開伺服器管理器,添加角色和功能,出現「添加角色和功能」界面,下一步,因為是基於本機安裝,所以要選擇「基於角色或基於功能安裝」,選擇添加AD域服務,同時添加所需功能,根據提示操作,下一步,等待安裝完成。
(2)配置域,點擊伺服器管理器左側「AD DS」,點擊「升級為域控制器」,進入AD域伺服器配置向導,下一步(注意:域的填寫),填寫密碼,下一步,提示DNS無法創建,不用管,繼續下一步,安裝路徑,默認,下一步,查看選項,默認,下一步,點擊安裝,安裝完成,會提示注銷重啟。
(3)將轉換伺服器加入到域控伺服器,修改NDS,指向域控伺服器,在計算機屬性中,修改計算機名稱,並添加到域控伺服器(如下圖),確定後提示注銷重啟伺服器,在域控伺服器,管理中選擇添加伺服器,名稱填寫office web apps server的計算機名稱,立即查找。然後添加到右邊,確定。在域控伺服器中,所有伺服器顯示兩台伺服器,並都是聯機狀態則表示成功。
至此,伺服器安裝完成。

F. java如何實現在web工程中用OpenOffice生成帶有圖片水印的pdf

需要itext2.1.5,

以下是對pdf加水印的代碼,包括文字水印和圖片水印


public int fileCopy(String srcPath, String destPath) {
FileOutputStream fos = null;
FileInputStream fis = null;
try {
fos = new FileOutputStream(destPath);
fis = new FileInputStream(srcPath);
byte[] buffer = new byte[1024];
int len = 0;
while ((len = fis.read(buffer)) > 0) {
fos.write(buffer, 0, len);
}
return 1;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
fis.close();
fos.flush();
fos.close();

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return 0;
}

/**
* 為pdf文件加文字水印
*
* @param srcPath
* 源文件路徑
* @param destPath
* 目標文件路徑
* @param waterText
* 水印文字
* @throws DocumentException
* @throws IOException
*/
public void wordWaterMark(String srcPath, String destPath, String waterText) throws DocumentException, IOException {
int result = fileCopy(srcPath, destPath);
if (result == 1) {
// 待加水印的文件
PdfReader reader = new PdfReader(destPath);
// 加完水印的文件
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(srcPath));

int total = reader.getNumberOfPages() + 1;
PdfContentByte content;
// 設置字體
BaseFont base = BaseFont.createFont(fontPath, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);

// 水印文字
int j = waterText.length(); // 文字長度
char c = 0;
int high = 0;// 高度
// 循環對每頁插入水印
for (int i = 1; i < total; i++) {
// 水印的起始
high = 60;
content = stamper.getUnderContent(i);
PdfGState gs = new PdfGState();
gs.setFillOpacity(0.1f);// 設置透明度為0.2
content.setGState(gs);
// 開始
content.beginText();
// 設置顏色
// content.setColorFill(new Color());
// 設置字體及字型大小
content.setFontAndSize(base, 88);
// 設置起始位置
content.setTextMatrix(120, 333);
// 開始寫入水印
for (int k = 0; k < j; k++) {
content.setTextRise(high);
c = waterText.charAt(k);
content.showText(c + "");
high += 20;
}
content.endText();

}
stamper.close();
System.out.println("添加成功++++++++++++++++++++++++++++++++++++++++++");
} else {
System.out.println("復制pdf失敗====================");
}

}

public void picWaterMark(String srcPath, String destPath, String imageFilePath)
throws DocumentException, IOException {
int result = fileCopy(srcPath, destPath);
if (result == 1) {
// 待加水印的文件
PdfReader reader = new PdfReader(destPath);
// 加完水印的文件
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(srcPath));
Image img = Image.getInstance(imageFilePath);
img.setAbsolutePosition(50, 400);// 坐標
img.setRotation(20);// 旋轉 弧度
img.setRotationDegrees(45);// 旋轉 角度
// image.scaleAbsolute(200,100);//自定義大小
img.scalePercent(50);// 依照比例縮放
int pageSize = reader.getNumberOfPages();
for (int i = 1; i <= pageSize; i++) {
PdfContentByte under = stamper.getUnderContent(i);
under.addImage(img);
PdfGState gs = new PdfGState();
gs.setFillOpacity(0.2f);// 設置透明度為0.2
under.setGState(gs);
}
stamper.close();// 關閉
System.out.println("添加成功++++++++++++++++++++++++++++++++++++++++++");
} else {
System.out.println("復制pdf失敗====================");
}
}


linux下轉pdf可以用libreoffice,需要安裝,這個是免費的,具體代碼如下:

String command = "libreoffice5.0 --invisible --convert-to pdf:writer_pdf_Export --outdir " + destFilepath
+ " " + source;
try {
p = Runtime.getRuntime().exec(command);
p.waitFor();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}