成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

node 使用第三方api 生成 word 文檔之修改源碼實(shí)現(xiàn)需求

luckyyulin / 648人閱讀

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

使用了 officegen 第三方 api 實(shí)現(xiàn)生成word 文檔,但是發(fā)現(xiàn)下劃線無法滿足需求。修改源碼以便后人踩坑,以下是我的一個(gè)demo,通過傳參數(shù)設(shè)置下劃線顏色以及高度。本demo 通過json 配置方式,還有api 調(diào)用方式實(shí)現(xiàn)方式,詳細(xì)可以參考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||{} };
};

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

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/101062.html

相關(guān)文章

  • Node.js中通過單元測試為API自動(dòng)生成文檔

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

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

    摘要:方式請求的數(shù)據(jù)只能存放在內(nèi)存空間,可以通過訪問,但是無法保存到硬盤,因?yàn)椴荒苤苯雍陀脖P交互,否則將是一個(gè)安全問題。是第一個(gè)第三方的庫,所以同理。這里是返回的對象這里表示類型創(chuàng)建下載的鏈接下載后文件名點(diǎn)擊下載下載完成移除元素釋放掉對象 前言 我的項(xiàng)目中有一個(gè)需求:點(diǎn)擊按鈕生成可編輯的word文檔訂單詳情的信息我使用的前端框架是Vue.js、后臺使用的是node.jsnode.js生成和導(dǎo)...

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

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

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

    摘要:也是一款優(yōu)秀的響應(yīng)式框架站點(diǎn)所使用的一套框架為微信服務(wù)量身設(shè)計(jì)的一套框架一組很小的,響應(yīng)式的組件,你可以在網(wǎng)頁的項(xiàng)目上到處使用一個(gè)可定制的文件,使瀏覽器呈現(xiàn)的所有元素,更一致和符合現(xiàn)代標(biāo)準(zhǔn)。 GitHub 值得收藏的前端項(xiàng)目 整理與收集的一些比較優(yōu)秀github項(xiàng)目,方便自己閱讀,順便分享出來,大家一起學(xué)習(xí),本篇文章會(huì)持續(xù)更新,版權(quán)歸原作者所有。歡迎github star與fork 預(yù)...

    maxmin 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<