|
導讀網頁的本質就是超級文本標記語言,通過結合使用其他的Web技術(如:腳本語言、公共網關接口、組件等),可以創造出功能強大的網頁。因而,超級文本標記語言是萬維網(Web)編程的基礎,也就是說萬維網是建立... 網頁的本質就是超級文本標記語言,通過結合使用其他的Web技術(如:腳本語言、公共網關接口、組件等),可以創造出功能強大的網頁。因而,超級文本標記語言是萬維網(Web)編程的基礎,也就是說萬維網是建立在超文本基礎之上的。超級文本標記語言之所以稱為超文本標記語言,是因為文本中包含了所謂“超級鏈接”點。 本篇文章給大家帶來的內容是關于node.js如何為PDF添加水印(代碼示例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助項目中有用到node做中間層,期間有個為PDF文件添加水印的需求,網上搜了不少帖子,發現有以下幾點存在的問題。 1、單頁PDF的話,可以用PNG圖片加到PDF上,但是實際使用情況就沒那么理想,必須滿足多頁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、dockerfileFROM 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添加水印(代碼示例)的詳細內容,更多請關注php中文網其它相關文章! 網站建設是一個廣義的術語,涵蓋了許多不同的技能和學科中所使用的生產和維護的網站。 |
溫馨提示:喜歡本站的話,請收藏一下本站!