当前位置:首页 » 网页前端 » 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();
}