在表单中显示PDF的第一页

时间:2015-07-17 07:54:09

标签: c# ftp

我有一个系统。在一种形式中,左侧有一个列表,右侧有Web浏览器组件。通过ftp将pdf文件的名称加载到列表中。当用户点击列表时,相关的pdf被加载到右侧(到Web浏览器组件),但是当用户有争议地点击几个pdf文件时,它会从列表中加载所有pdf文件。所以我想重建它,就像当用户点击或鼠标悬停在列表中的pdf名称上只是为了进行预览,缩略图在Web浏览器组件中而不加载所有的pdf文件。有没有做soo的组件?

2 个答案:

答案 0 :(得分:0)

您可以尝试将PDF转换为图像并显示第一张图像。

答案 1 :(得分:0)

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.imageio.ImageIO;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageNode;


public List<String> generateImages(String pdfFile) throws IOException  {

     String imagePath = "/Users/$user/pdfimages/";
     List <String> fileNames = new ArrayList<String>();
      document = PDDocument.load(pdfFile);  //// load pdf   
      node = document.getDocumentCatalog().getPages(); ///// get pages
      List<PDPage> kids = node.getKids();
      int count=0;
      for(PDPage page : kids) {   ///// iterate
           BufferedImage img = page.convertToImage(BufferedImage.TYPE_INT_RGB,128);
           File imageFile = new File(imagePath+ count++ + ".jpg");
               ImageIO.write(img, "jpg", imageFile);
               fileNames.add(imageFile.getName());     
           }
           return fileNames;   
    }

使用PDFBox,您只需显示第一张图片。