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

資訊專欄INFORMATION COLUMN

node.js實現(xiàn)為PDF添加水印

whjin / 614人閱讀

摘要:背景項目中有用到做中間層,期間有個為文件添加水印的需求,網(wǎng)上搜了不少帖子,發(fā)現(xiàn)有以下幾點存在的問題。有相關方案,可以實現(xiàn),有想過用去執(zhí)行腳本去為加水印,考慮到開發(fā)人員都是前端如果以后需要維護,擴展可能就不是那么友好了。

背景

項目中有用到node做中間層,期間有個為PDF文件添加水印的需求,網(wǎng)上搜了不少帖子,發(fā)現(xiàn)有以下幾點存在的問題。
1、單頁PDF的話,可以用PNG圖片加到PDF上,但是實際使用情況就沒那么理想,必須滿足多頁PDF每頁都加上水印的效果方可。
2、中間想過,把PDF轉成圖片,圖片加上水印后再轉回PDF,但是感覺中間步驟太麻煩,而且會面臨清晰度下降的可能。
3、Python、Java有相關方案,可以實現(xiàn),有想過用node去執(zhí)行Python腳本去為PDF加水印,考慮到開發(fā)人員都是前端、如果以后需要維護,擴展可能就不是那么友好了。

解決方案

逛了Github和NPM,發(fā)現(xiàn)node-pdftk可以滿足需求,不過得依賴PDFTK這個軟件,進一步了解,發(fā)現(xiàn)PDFTK支持linux,好,直接用這個開搞。

環(huán)境

項目部署是用了docker,那就用docker來吧,比較貼合情況也省事點;如果平時在自己電腦上開發(fā),但需要linux環(huán)境的話練手或者模擬服務器環(huán)境的話,大家也可以用一個linux鏡像運行一個dokcer容器,這里就不贅述了。

實現(xiàn) 1、app.js

API相對較為簡單,input方法中我們輸入源文件,stamp方法中我們輸入水印文件,out方法中指定保存的路徑,這里的話我們起了一個服務,當訪問3100端口的時候就去生成我們帶水印的PDF。

"use strict";

const express = require("express");
const pdftk = require("node-pdftk");
const path = require("path");
const app = express();

app.get("/", (req, res) => {
    pdftk
        .input(path.resolve(__dirname + "/../files/javascript.pdf"))
        .stamp(path.resolve(__dirname + "/../files/watermark.pdf"))
        .output(path.resolve(__dirname + "/../files/javascript_watermark.pdf"))
        .then(buffer => {
            return res.send("successful");
        })
        .catch(err => {
            console.error(err);
            return res.send("failed");
        });
});

app.listen(3100);
2、dockerfile
FROM node:7.6.0

# 創(chuàng)建工作目錄
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

COPY ./node_modules /usr/src/app/node_modules

# 下載安裝PDFTK
RUN apt-get update
RUN apt-get install -y pdftk

# 使用PM2啟動應用
CMD ["./node_modules/pm2/bin/pm2-docker", "process.yml"]
3、效果

源文件

水印文件

添加水印后

4、地址

Github倉庫地址

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

轉載請注明本文地址:http://systransis.cn/yun/99737.html

相關文章

  • 工具庫-基于LibreOffice實現(xiàn)文檔操作

    摘要:基于實現(xiàn)的文檔轉換項目,無框架依賴,即插即用項目源代碼技術棧功能使用安裝配置獲取依賴編輯配置文件執(zhí)行轉換按照文件路徑轉換按照輸入輸出流轉換按照文件轉換圖片處理按照文件路徑處理按照文件處理添加水印按照文件路徑添加水印按照流添加水印按照添加水 基于libreoffice實現(xiàn)的文檔轉換項目,無框架依賴,即插即用 項目源代碼:github/workable-converter 1. 技術棧 ...

    ZoomQuiet 評論0 收藏0
  • 真實體驗迅捷PDF轉換器 PDF Word Excel PPT等格式轉換工具

    摘要:文章目錄隱藏第一迅捷轉換器的版本介紹第二迅捷轉換器的功能體驗第一迅捷轉換器的版本介紹老蔣有看到,迅捷轉換器的版本有多個版本。而且老蔣有在體驗這款迅捷轉換軟件的時候,速度確實提高不少,那種在線轉換的時候速度特別慢。由于工作的需要,我們很多網(wǎng)友朋友可能會希望將PDF文件格式轉換成Word、PPT、TXT 或者 Excel等格式。我們一般是用什么軟件操作的呢?比如老蔣每次遇到這樣的需求,就會找網(wǎng)上...

    wuyangchun 評論0 收藏0
  • 教你20行python代碼實現(xiàn)編輯永久免費pdf工具

      小編寫這篇文章的主要目的,主要是給大家介紹一下關于python代碼實現(xiàn)pdf編輯免費pdf工具相關知識的解答?! DF是在日常生活中使用范圍還是比較的廣泛的,很多的文檔都是PDF格式。格式穩(wěn)定是他的一個優(yōu)勢,使得我們在打印、分享、傳輸過程中能夠最優(yōu)的保持原有色彩和格式。  PDF各種各樣的的版本是比較的多的,它在格式的穩(wěn)定性方面雖然具有很大優(yōu)勢。但是,在可編輯性方面卻為使用者引入了另外一個困...

    89542767 評論0 收藏0
  • 如何使用JavaScript UI控件,構建Electron應用程序

    摘要:概述是一個使用和構建跨平臺桌面應用程序的框架。它設置了許可證密鑰,因此應用程序在運行時不會顯示水印。最后一步是創(chuàng)建控件并將它們綁定到數(shù)據(jù)源。現(xiàn)在,請下載,享用控件的應用程序吧。靈活高效的前端開發(fā)工具包,可快速搭建企業(yè)應用程序 概述 What is Electron?Electron是一個使用JavaScript、HTML和CSS構建跨平臺桌面應用程序的框架。 您可以將Electron與...

    zhisheng 評論0 收藏0

發(fā)表評論

0條評論

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