亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

html怎么轉pdf

發布時間:2021-04-26 13:58:25 來源:億速云 閱讀:144 作者:小新 欄目:web開發

這篇文章給大家分享的是有關html怎么轉pdf的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

html有什么特點

1、簡易性:超級文本標記語言版本升級采用超集方式,從而更加靈活方便,適合初學前端開發者使用。 2、可擴展性:超級文本標記語言的廣泛應用帶來了加強功能,增加標識符等要求,超級文本標記語言采取子類元素的方式,為系統擴展帶來保證。  3、平臺無關性:超級文本標記語言能夠在廣泛的平臺上使用,這也是萬維網盛行的一個原因。 4、通用性:HTML是網絡的通用語言,它允許網頁制作人建立文本與圖片相結合的復雜頁面,這些頁面可以被網上任何其他人瀏覽到,無論使用的是什么類型的電腦或瀏覽器。

1、準備資源

itext.jar

 www.baidu.com

html2canvas.js

www.baidu.com

2、前端代碼:

    //進行截圖操作,document.querySelector("body") 為要截圖的區域
     function test() {
            html2canvas(document.querySelector("body"), {
                onrendered: function (canvas) {
                    var dataUrl = canvas.toDataURL('image/png');
                    var formData = new FormData(); //模擬表單對象
                    formData.append("imgData", convertBase64UrlToBlob(dataUrl)); //寫入數據
                    var xhr = new XMLHttpRequest(); //數據傳輸方法
                    xhr.open("POST", "http://localhost:8080/pdf"); //配置傳輸方式及地址
                    xhr.send(formData);
                    xhr.onreadystatechange = function () { //回調函數
                    };
                }
            });
        }

        //格式化圖片base64編碼轉換為byte文件流
        function convertBase64UrlToBlob(urlData){
            //去掉url的頭,并轉換為byte
            var bytes=window.atob(urlData.split(',')[1]);
            //處理異常,將ascii碼小于0的轉換為大于0
            var ab = new ArrayBuffer(bytes.length);
            var ia = new Uint8Array(ab);
            for (var s = 0;s<bytes.length;s++){
                ia[s] = bytes.charCodeAt(s);
            }
            return new Blob( [ab] , {type : 'image/png'});
        }
        
        <body onclick="test()">//調用截圖方法即可

3、后端代碼:

@RequestMapping(value = "/pdf",method = RequestMethod.POST)
    public void test(MultipartHttpServletRequest request, HttpServletResponse response) throws IOException {
        String filePath = "D:\\blog\\exportPdf2.pdf";
        String imagePath = "D:\\blog\\exportImg2.png";
        Document document = new Document();
        try{
            Map getMap = request.getFileMap();
            MultipartFile mfile = (MultipartFile) getMap.get("imgData"); //獲取數據
            InputStream file = mfile.getInputStream();
            byte[] fileByte = FileCopyUtils.copyToByteArray(file);

            FileImageOutputStream imageOutput = new FileImageOutputStream(new File(imagePath));//打開輸入流
            imageOutput.write(fileByte, 0, fileByte.length);//生成本地圖片文件
            imageOutput.close();

            PdfWriter.getInstance(document, new FileOutputStream(filePath)); //itextpdf文件
            document.open();
            document.add(new Paragraph("JUST TEST ..."));
            Image image = Image.getInstance(imagePath); //itext-pdf-image
            float heigth = image.getHeight();
            float width = image.getWidth();
            int percent = getPercent2(heigth, width);  //按比例縮小圖片
            image.setAlignment(Image.MIDDLE);
            image.scalePercent(percent+3);
            document.add(image);
            document.close();

        }catch (DocumentException de) {
            System.err.println(de.getMessage());
        }
        catch (Exception e) {
            e.printStackTrace();

        }
    }

    private static int getPercent2(float h, float w) {
        int p = 0;
        float p2 = 0.0f;
        p2 = 530 / w * 100;
        p = Math.round(p2);
        return p;
    }

4、包名

import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Image;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Controller;
import org.springframework.util.FileCopyUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;

import javax.imageio.stream.FileImageOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Map;

5、項目源碼地址

https://github.com/zhangjy520/learn_java/tree/master/boot

感謝各位的閱讀!關于“html怎么轉pdf”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

广南县| 运城市| 磐安县| 夏津县| 信丰县| 南岸区| 友谊县| 榆社县| 凌云县| 巩义市| 东丽区| 朔州市| 宾阳县| 运城市| 黄冈市| 肃北| 涡阳县| 贞丰县| 泾川县| 新竹市| 承德县| 云梦县| 东兰县| 松滋市| 峨眉山市| 武胜县| 西城区| 英吉沙县| 桐城市| 郑州市| 正蓝旗| 靖安县| 南开区| 桑日县| 资溪县| 公安县| 滕州市| 调兵山市| 宿迁市| 盱眙县| 江川县|