国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

node 使用第三方api 生成 word 文檔之修改源碼實現需求

luckyyulin / 640人閱讀

摘要:使用了第三方實現生成文檔,但是發現下劃線無法滿足需求。修改源碼以便后人踩坑以下是我的一個,通過傳參數設置下劃線顏色以及高度。

使用了 officegen 第三方 api 實現生成word 文檔,但是發現下劃線無法滿足需求。修改源碼以便后人踩坑,以下是我的一個demo,通過傳參數設置下劃線顏色以及高度。本demo 通過json 配置方式,還有api 調用方式實現方式,詳細可以參考git 的例子
GITHUB Api地址: https://github.com/Ziv-Barber/officegen

var officegen = require("officegen");
var fs = require("fs");
var path = require("path");
var docx = officegen("docx");

var header = docx.getHeader().createP({
    align: ("center")
});

console.log("路徑為" + __dirname);

var table = [
    [{
        val: "No.",
        opts: {
            cellColWidth: 4261,
            b: true,
            sz: "48",
            shd: {
                fill: "7F7F7F",
                themeFill: "text1",
                themeFillTint: "80"
            },
            fontFamily: "Avenir Book"
        }
    }, {
        val: "Title1",
        opts: {
            b: true,
            color: "A00000",
            align: "right",
            shd: {
                fill: "92CDDC",
                themeFill: "text1",
                themeFillTint: "80"
            }
        }
    }, {
        val: "Title2",
        opts: {
            align: "center",
            cellColWidth: 42,
            b: true,
            sz: "48",
            shd: {
                fill: "92CDDC",
                themeFill: "text1",
                themeFillTint: "80"
            }
        }
    }],
    [1, "All grown-ups were once children", ""],
    [2, "there is no harm in putting off a piece of work until another day.", ""],
    [3, "But when it is a matter of baobabs, that always means a catastrophe.", ""],
    [4, "watch out for the baobabs!", "END"]
]

var tableStyle = {
    tableColWidth: 4261,
    tableSize: 24,
    tableColor: "ada",
    tableAlign: "left",
    tableFontFamily: "Comic Sans MS"
}

var data = [
    [{
            align: "right"
        },
        {
            type: "text",
            val: "Simple"
        },
        {
            type: "text",
            val: " with color",
            opt: {
                color: "000088"
            }
        },
        {
            type: "text",
            val: "  and back color.",
            opt: {
                color: "00ffff",
                back: "000088"
            }
        },
        {
            type: "linebreak"
        },
        {
            type: "text",
            val: "Bold + underline",
            opt: {
                bold: true,
                underline: true
            }
        }
    ],
    {
        type: "horizontalline",
        opt: {
            height: "2",
            fillcolor: "FF0000"
        }
    },
    [
        {
            type: "text",
            val: "  backline text1.",
            opt: {
                bold: true
            }
        },
        {
            type: "text",
            val: "  backline text2.",
            opt: {
                color: "000088"
            }
        }
    ],
    {
        type: "text",
        val: "Left this text.",
        lopt: {
            align: "left"
        }
    },
    {
        type: "text",
        val: "Center this text.",
        lopt: {
            align: "center"
        }
    },
    {
        type: "text",
        val: "Right this text.",
        lopt: {
            align: "right"
        }
    },
    {
        type: "text",
        val: "Fonts face only.",
        opt: {
            font_face: "Arial"
        }
    },
    {
        type: "text",
        val: "Fonts face and size.",
        opt: {
            font_face: "Arial",
            font_size: 40
        }
    },
    {
        type: "table",
        val: table,
        opt: tableStyle
    },
    {
        type: "pagebreak"
    },
    [{},
        {
            type: "numlist"
        },
        {
            type: "text",
            val: "numList1."
        },
        {
            type: "numlist"
        },
        {
            type: "text",
            val: "numList2."
        }
    ],
    [{},
        {
            type: "dotlist"
        }, {
            type: "text",
            val: "dotlist1."
        }, {
            type: "dotlist"
        }, {
            type: "text",
            val: "dotlist2."
        }
    ],
    {
        type: "pagebreak"
    }
]

docx.createByJson(data)

//var pObj = docx.createTable(table, tableStyle);
var out = fs.createWriteStream("out.docx"); // 文件寫入
out.on("error", function(err) {
    console.log(err);
});
var result = docx.generate(out);

找到源碼修改

修改代碼部分如下:gendocx.js 部分

 else if ( objs_list[i].data[j].horizontal_line ) {
                        console.log(objs_list[i].data[j]);
                        var height=typeof objs_list[i].data[j].options.height=="string"?objs_list[i].data[j].options.height:".75";
                        var fillcolor=typeof objs_list[i].data[j].options.fillcolor=="string"?objs_list[i].data[j].options.fillcolor:"e0e0e0";
                        //outString += ``;
                        outString += ``;
                    // Bookmark start support:
                    }

docx-p.js 部分

MakeDocxP.prototype.addHorizontalLine = function (opt) {
    var newP = this;
    newP.data[newP.data.length] = { "horizontal_line": true, options:opt||{} };
};

修改為傳參數設置其下滑線顏色跟高度最后附上效果圖:

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/101062.html

相關文章

  • Node.js中通過單元測試為API自動生成文檔

    摘要:我在單元測試中主要用的庫有和,框架為。如果運行單元測試不想生成文檔,直接用就可以了,相應的配置如下如果不想為某個生成文檔,就不要調用的,直接按原生的寫法就可以了。生成的文檔內容形式如下原文地址通過單元測試為自動生成文檔 在開發中,為項目生成文檔是很常見的需求,很多第三方庫(如jsdoc、swagger等)的做法是為需要生成文檔的函數編寫相應的符合規范的注釋,然后運行相應的命令,生成一個...

    smallStone 評論0 收藏0
  • nodejs(officegen)+vue(axios)在客戶端導出word文檔

    摘要:方式請求的數據只能存放在內存空間,可以通過訪問,但是無法保存到硬盤,因為不能直接和硬盤交互,否則將是一個安全問題。是第一個第三方的庫,所以同理。這里是返回的對象這里表示類型創建下載的鏈接下載后文件名點擊下載下載完成移除元素釋放掉對象 前言 我的項目中有一個需求:點擊按鈕生成可編輯的word文檔訂單詳情的信息我使用的前端框架是Vue.js、后臺使用的是node.jsnode.js生成和導...

    Julylovin 評論0 收藏0
  • 24 個實例入門并掌握「Webpack4」(三)

    摘要:繼個實例入門并掌握二后續配置配置配置使用加快打包速度多頁面打包配置編寫編寫編寫十七配置源碼地址本節使用的代碼為基礎我們來模擬平時開發中,將打包完的代碼防止到服務器上的操作,首先打包代碼然后安裝一個插件在中配置一個命令運 繼 24 個實例入門并掌握「Webpack4」(二) 后續: PWA 配置 TypeScript 配置 Eslint 配置 使用 DLLPlugin 加快打包速度 多...

    mindwind 評論0 收藏0
  • GitHub 值得收藏的前端項目[每月更新...]

    摘要:也是一款優秀的響應式框架站點所使用的一套框架為微信服務量身設計的一套框架一組很小的,響應式的組件,你可以在網頁的項目上到處使用一個可定制的文件,使瀏覽器呈現的所有元素,更一致和符合現代標準。 GitHub 值得收藏的前端項目 整理與收集的一些比較優秀github項目,方便自己閱讀,順便分享出來,大家一起學習,本篇文章會持續更新,版權歸原作者所有。歡迎github star與fork 預...

    maxmin 評論0 收藏0

發表評論

0條評論

luckyyulin

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<