通过 PDFRenderer 实现预览PDF 功能

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                需要一个jar PDFRenderer-0.9.0.jar 

http://java.net/downloads/pdf-renderer/PDFRenderer-0.9.0.jar 


package com.wonders.stpt.attach.action;import java.awt.Image;import java.awt.Rectangle;import java.awt.image.BufferedImage;import java.io.File;import java.io.FileInputStream;import java.io.FilenameFilter;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;import java.io.RandomAccessFile;import java.nio.ByteBuffer;import java.nio.channels.FileChannel;import java.util.Arrays;import java.util.Comparator;import javax.imageio.*;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts2.convention.annotation.Action;import org.apache.struts2.convention.annotation.Namespace;import org.apache.struts2.convention.annotation.ParentPackage;import org.apache.struts2.convention.annotation.Result;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.context.annotation.Scope;import org.springframework.stereotype.Component;import com.sun.image.codec.jpeg.JPEGCodec;import com.sun.image.codec.jpeg.JPEGImageEncoder;import com.sun.pdfview.PDFFile;import com.sun.pdfview.PDFPage;import com.wonders.stpt.attach.model.vo.UploadFile;import com.wonders.stpt.attach.service.FjshService;import com.wonders.stpt.userMsg.action.AbstractParamAction;@SuppressWarnings("serial")@ParentPackage("struts-default")@Namespace(value="/attach")@Component("attachViewerAction")@Scope("prototype")public class AttachViewerAction extends AbstractParamAction{  private FjshService fjshService; private final int maxPage = 30;   public FjshService getFjshService() {  return fjshService; }  @Autowired(required=falsepublic void setFjshService(@Qualifier("fjshService")FjshService fjshService) {  this.fjshService = fjshService; }  /**  * PDF文档在线以图片格式预览.  *   */ 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
使用 PdfRenderer 类可以在 Android 应用中实现 PDF 文件的预览。这个类是从 Android 5.0 (API 级别 21) 开始引入的。 以下是一个简单的示例,演示如何使用 PdfRenderer 在 ImageView 中显示 PDF 页面: 1. 首先,在你的布局文件中添加一个 ImageView 组件: ```xml <ImageView android:id="@+id/imageView" android:layout_width="match_parent" android:layout_height="match_parent"/> ``` 2. 在代码中加载和显示 PDF 文件: ```java import android.graphics.Bitmap; import android.graphics.pdf.PdfRenderer; import android.os.Bundle; import android.os.ParcelFileDescriptor; import android.widget.ImageView; import androidx.appcompat.app.AppCompatActivity; import java.io.File; import java.io.IOException; public class PdfPreviewActivity extends AppCompatActivity { private ImageView imageView; private PdfRenderer pdfRenderer; private PdfRenderer.Page currentPage; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_pdf_preview); imageView = findViewById(R.id.imageView); try { openPdfRenderer(); showPage(0); // 显示第一页 } catch (IOException e) { e.printStackTrace(); } } private void openPdfRenderer() throws IOException { File file = new File("path_to_your_pdf_file"); ParcelFileDescriptor fileDescriptor = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY); pdfRenderer = new PdfRenderer(fileDescriptor); } private void showPage(int index) { if (currentPage != null) { currentPage.close(); } currentPage = pdfRenderer.openPage(index); Bitmap bitmap = Bitmap.createBitmap(currentPage.getWidth(), currentPage.getHeight(), Bitmap.Config.ARGB_8888); currentPage.render(bitmap, null, null, PdfRenderer.Page.RENDER_MODE_FOR_DISPLAY); imageView.setImageBitmap(bitmap); } @Override protected void onDestroy() { super.onDestroy(); if (currentPage != null) { currentPage.close(); } if (pdfRenderer != null) { pdfRenderer.close(); } } } ``` 请确保将 "path_to_your_pdf_file" 替换为你的 PDF 文件的实际路径。这个示例代码会加载 PDF 文件的第一页,并将其渲染到 ImageView 中显示。你可以根据需要实现翻页等功能。 请注意,PdfRenderer 需要在 Android 5.0 及以上的设备上运行,因此在使用之前请确保目标设备的最低 API 级别符合要求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值