91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

如何在node.js為PDF添加水印

發布時間:2020-07-09 14:46:08 來源:億速云 閱讀:281 作者:Leah 欄目:web開發

如何在node.js為PDF添加水印?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

項目中有用到node做中間層,期間有個為PDF文件添加水印的需求,網上搜了不少帖子,發現有以下幾點存在的問題。

1、單頁PDF的話,可以用PNG圖片加到PDF上,但是實際使用情況就沒那么理想,必須滿足多頁PDF每頁都加上水印的效果方可。
2、中間想過,把PDF轉成圖片,圖片加上水印后再轉回PDF,但是感覺中間步驟太麻煩,而且會面臨清晰度下降的可能。
3、Python、Java有相關方案,可以實現,有想過用node去執行Python腳本去為PDF加水印,考慮到開發人員都是前端、如果以后需要維護,擴展可能就不是那么友好了。

解決方案

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

環境

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

實現

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

# 創建工作目錄
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

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

RUN npm set registry https://registry.npm.taobao.org/

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

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

3、效果

源文件

如何在node.js為PDF添加水印

水印文件

如何在node.js為PDF添加水印

添加水印后

如何在node.js為PDF添加水印

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

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

AI

庐江县| 汉源县| 贵溪市| 涿州市| 武夷山市| 江北区| 扎鲁特旗| 莱州市| 桐柏县| 庆阳市| 盐边县| 龙南县| 涟水县| 和林格尔县| 琼结县| 临朐县| 咸宁市| 左云县| 西峡县| 革吉县| 滦南县| 昭觉县| 哈巴河县| 淄博市| 包头市| 襄樊市| 英吉沙县| 额济纳旗| 松潘县| 康马县| 武定县| 崇文区| 时尚| 呼和浩特市| 广水市| 攀枝花市| 奇台县| 阳城县| 三江| 邵阳县| 桑植县|