富文本框上傳pdf文件並預覽


以百度編輯器ueditor為例

上傳圖片調用的action為 uploadimage 

在config.json中開放pdf的格式校驗

然后在 BinaryUploader 中修改代碼,判斷如果是pdf文件,則調用pdf轉圖片的方法,把圖片保存下來,然后返回相應地址

package test;
 
 
 
import java.awt.image.BufferedImage;
 
import java.io.File;
 
import java.io.IOException;
 
 
 
import javax.imageio.ImageIO;
 
 
 
import org.apache.pdfbox.pdmodel.PDDocument;
 
import org.apache.pdfbox.rendering.PDFRenderer;
 
 
 
import com.lowagie.text.pdf.PdfReader;
 
 
 
public class PDF2IMAGE {
 
    public static void main(String[] args) {
 
        pdf2Image("D:/1.pdf", "D:/pdf", 300);
 
    }
 
 
 
    /***
     * PDF文件轉PNG圖片,全部頁數
     * 
     * @param PdfFilePath pdf完整路徑
     * @param imgFilePath 圖片存放的文件夾
     * @param dpi dpi越大轉換后越清晰,相對轉換速度越慢
     * @return
     */
 
    public static void pdf2Image(String PdfFilePath, String dstImgFolder, int dpi) {
 
        File file = new File(PdfFilePath);
 
        PDDocument pdDocument;
 
        try {
 
            String imgPDFPath = file.getParent();
 
            int dot = file.getName().lastIndexOf('.');
 
            String imagePDFName = file.getName().substring(0, dot); // 獲取圖片文件名
 
            String imgFolderPath = null;
 
            if (dstImgFolder.equals("")) {
 
                imgFolderPath = imgPDFPath + File.separator + imagePDFName;// 獲取圖片存放的文件夾路徑
 
            } else {
 
                imgFolderPath = dstImgFolder + File.separator + imagePDFName;
 
            }
 
 
 
            if (createDirectory(imgFolderPath)) {
 
 
 
                pdDocument = PDDocument.load(file);
 
                PDFRenderer renderer = new PDFRenderer(pdDocument);
 
                /* dpi越大轉換后越清晰,相對轉換速度越慢 */
 
                PdfReader reader = new PdfReader(PdfFilePath);
 
                int pages = reader.getNumberOfPages();
 
                StringBuffer imgFilePath = null;
 
                for (int i = 0; i < pages; i++) {
 
                    String imgFilePathPrefix = imgFolderPath + File.separator + imagePDFName;
 
                    imgFilePath = new StringBuffer();
 
                    imgFilePath.append(imgFilePathPrefix);
 
                    imgFilePath.append("_");
 
                    imgFilePath.append(String.valueOf(i + 1));
 
                    imgFilePath.append(".png");
 
                    File dstFile = new File(imgFilePath.toString());
 
                    BufferedImage image = renderer.renderImageWithDPI(i, dpi);
 
                    ImageIO.write(image, "png", dstFile);
 
                }
 
                System.out.println("PDF文檔轉PNG圖片成功!");
 
 
 
            } else {
 
                System.out.println("PDF文檔轉PNG圖片失敗:" + "創建" + imgFolderPath + "失敗");
 
            }
 
 
 
        } catch (IOException e) {
 
            e.printStackTrace();
 
        }
 
    }
 
 
 
    private static boolean createDirectory(String folder) {
 
        File dir = new File(folder);
 
        if (dir.exists()) {
 
            return true;
 
        } else {
 
            return dir.mkdirs();
 
        }
 
    }
 
 
 
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM