欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

node.js實(shí)現(xiàn)為PDF添加水印的示例代碼

 更新時(shí)間:2018年12月05日 09:04:29   作者:wy丶  
這篇文章主要介紹了node.js實(shí)現(xiàn)為PDF添加水印的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

背景

項(xiàng)目中有用到node做中間層,期間有個(gè)為PDF文件添加水印的需求,網(wǎng)上搜了不少帖子,發(fā)現(xiàn)有以下幾點(diǎn)存在的問(wèn)題。

1、單頁(yè)P(yáng)DF的話,可以用PNG圖片加到PDF上,但是實(shí)際使用情況就沒(méi)那么理想,必須滿足多頁(yè)P(yáng)DF每頁(yè)都加上水印的效果方可。

2、中間想過(guò),把PDF轉(zhuǎn)成圖片,圖片加上水印后再轉(zhuǎn)回PDF,但是感覺中間步驟太麻煩,而且會(huì)面臨清晰度下降的可能。

3、Python、Java有相關(guān)方案,可以實(shí)現(xiàn),有想過(guò)用node去執(zhí)行Python腳本去為PDF加水印,考慮到開發(fā)人員都是前端、如果以后需要維護(hù),擴(kuò)展可能就不是那么友好了。

解決方案

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

環(huán)境

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

實(shí)現(xiàn)

1、app.js

API相對(duì)較為簡(jiǎn)單,input方法中我們輸入源文件,stamp方法中我們輸入水印文件,out方法中指定保存的路徑,這里的話我們起了一個(gè)服務(wù),當(dāng)訪問(wèn)3100端口的時(shí)候就去生成我們帶水印的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啟動(dòng)應(yīng)用
CMD ["./node_modules/pm2/bin/pm2-docker", "process.yml"]

3、效果

源文件


水印文件


添加水印后

4、地址

Github倉(cāng)庫(kù)地址

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用Nodejs獲取bing每日?qǐng)D片

    使用Nodejs獲取bing每日?qǐng)D片

    這篇文章主要為大家詳細(xì)介紹了如何使用Nodejs獲取bing每日?qǐng)D片,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,有興趣的小伙伴可以學(xué)習(xí)一下
    2023-12-12
  • 輕松創(chuàng)建nodejs服務(wù)器(10):處理POST請(qǐng)求

    輕松創(chuàng)建nodejs服務(wù)器(10):處理POST請(qǐng)求

    這篇文章主要介紹了輕松創(chuàng)建nodejs服務(wù)器(10):處理POST請(qǐng)求,本文告訴你如何實(shí)現(xiàn)在node.js中處理POST請(qǐng)求,需要的朋友可以參考下
    2014-12-12
  • Node.js連接mongodb實(shí)例代碼

    Node.js連接mongodb實(shí)例代碼

    這篇文章主要介紹了Node.js連接mongodb實(shí)例代碼,這里整理了詳細(xì)的代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • node.js中ws模塊創(chuàng)建服務(wù)端與客戶端實(shí)例代碼

    node.js中ws模塊創(chuàng)建服務(wù)端與客戶端實(shí)例代碼

    在Node.js中提供了http模塊與https模塊,專用于創(chuàng)建HTTP服務(wù)器、HTTP客戶端,以及HTTPS服務(wù)器及HTTPS客戶端,同時(shí)實(shí)現(xiàn)這些服務(wù)器端與客戶端之中所需進(jìn)行的處理,下面這篇文章主要給大家介紹了關(guān)于node.js中ws模塊創(chuàng)建服務(wù)端與客戶端的相關(guān)資料,需要的朋友可以參考下
    2023-05-05
  • Nginx設(shè)置為Node.js的前端服務(wù)器方法總結(jié)

    Nginx設(shè)置為Node.js的前端服務(wù)器方法總結(jié)

    在本篇文章中小編給大家分享了關(guān)于Nginx設(shè)置為Node.js的前端服務(wù)器的方法和實(shí)例,需要的朋友們學(xué)習(xí)下。
    2019-03-03
  • nodejs實(shí)現(xiàn)文件或文件夾上傳功能的代碼示例

    nodejs實(shí)現(xiàn)文件或文件夾上傳功能的代碼示例

    在平常的工作中,經(jīng)常會(huì)遇到需要將本地項(xiàng)目文件同步到遠(yuǎn)端服務(wù)器的情況,所以每次遇到都需要考慮如何將文件上傳到服務(wù)器上,所以本文就給大家介紹一下nodejs實(shí)現(xiàn)文件或文件夾上傳功能,需要的朋友可以參考下
    2023-08-08
  • Node.js中的HTTP模塊與URL模塊

    Node.js中的HTTP模塊與URL模塊

    這篇文章介紹了Node.js中的HTTP模塊與URL模塊,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • nodeJs爬蟲獲取數(shù)據(jù)簡(jiǎn)單實(shí)現(xiàn)代碼

    nodeJs爬蟲獲取數(shù)據(jù)簡(jiǎn)單實(shí)現(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了nodeJs爬蟲獲取數(shù)據(jù)簡(jiǎn)單實(shí)現(xiàn)代碼,感興趣的小伙伴們可以參考一下
    2016-03-03
  • 讓你的Node.js應(yīng)用程序處理數(shù)百萬(wàn)的API請(qǐng)求技巧

    讓你的Node.js應(yīng)用程序處理數(shù)百萬(wàn)的API請(qǐng)求技巧

    歡迎閱讀關(guān)于優(yōu)化 NodeJS 應(yīng)用以處理數(shù)百萬(wàn) API 請(qǐng)求的終極指南,如果你是一名開發(fā)人員,希望擴(kuò)展應(yīng)用,那么你來(lái)對(duì)地方了,在這篇博客中,我們將深入研究最佳實(shí)踐和技術(shù),幫助你處理高流量負(fù)載,確保應(yīng)用保持性能和響應(yīng)速度
    2023-10-10
  • node.js解決獲取圖片真實(shí)文件類型的問(wèn)題

    node.js解決獲取圖片真實(shí)文件類型的問(wèn)題

    這篇文章主要介紹了node.js解決獲取圖片真實(shí)文件類型的問(wèn)題,本文根據(jù)二進(jìn)制流及文件頭獲取文件類型mime-type,然后讀取文件二進(jìn)制的頭信息,獲取其真實(shí)的文件類型,需要的朋友可以參考下
    2014-12-12

最新評(píng)論