在表单中显示PDF的第一页
本文关键字:第一页 PDF 显示 表单 | 更新日期: 2023-09-27 18:03:14
我有一个系统。在一种形式中,左侧有一个列表,右侧有web浏览器组件。pdf文件的名称通过ftp加载到列表中。当用户单击列表时,相关的PDF被加载到右侧(到web浏览器组件),但是当用户单击几个PDF文件时,它会从列表中加载所有PDF文件。所以我想重新构建它,当用户从列表中单击或鼠标在PDF名称上只是为了在web浏览器组件中预览,缩略图而不加载所有PDF文件时。有这样一个组件吗?
您可以尝试将PDF转换为图像并显示第一张图像。
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,你只需要显示第一个图像。