中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

如何在node.js為PDF添加水印-創(chuàng)新互聯(lián)

如何在node.js為PDF添加水?。亢芏嘈率謱Υ瞬皇呛芮宄?,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

創(chuàng)新互聯(lián)專業(yè)提供服務器托管服務,為用戶提供五星數(shù)據中心、電信、雙線接入解決方案,用戶可自行在線購買服務器托管服務,并享受7*24小時金牌售后服務。

項目中有用到node做中間層,期間有個為PDF文件添加水印的需求,網上搜了不少帖子,發(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

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添加水印

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注創(chuàng)新互聯(lián)網站制作公司行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)建站的支持。

新聞標題:如何在node.js為PDF添加水印-創(chuàng)新互聯(lián)
鏈接分享:http://www.rwnh.cn/article26/dpejjg.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供定制網站、ChatGPT、移動網站建設、做網站、網站制作、網站導航

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網站建設
隆化县| 新津县| 石门县| 金川县| 昌图县| 新密市| 定日县| 招远市| 连平县| 聂拉木县| 剑川县| 修武县| 台前县| 洛阳市| 牙克石市| 桂林市| 沿河| 罗平县| 东乌珠穆沁旗| 米脂县| 曲周县| 抚州市| 西华县| 华蓥市| 汉寿县| 旺苍县| 新营市| 麟游县| 余江县| 澎湖县| 丽江市| 哈尔滨市| 阿合奇县| 平昌县| 舟山市| 上林县| 剑阁县| 阜宁县| 伊金霍洛旗| 莆田市| 博乐市|