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

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

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

背景

項目中有用到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

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、效果

源文件


水印文件


添加水印后

4、地址

Github倉庫地址

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 使用Nodejs獲取bing每日圖片

    使用Nodejs獲取bing每日圖片

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

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

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

    Node.js連接mongodb實例代碼

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

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

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

    Nginx設置為Node.js的前端服務器方法總結

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

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

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

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

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

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

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

    讓你的Node.js應用程序處理數(shù)百萬的API請求技巧

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

    node.js解決獲取圖片真實文件類型的問題

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

最新評論