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