ホームページ  >  記事  >  ウェブフロントエンド  >  Node.jsでPDFにウォーターマークを追加する方法(コード例)

Node.jsでPDFにウォーターマークを追加する方法(コード例)

不言
不言転載
2018-12-06 15:56:434150ブラウズ

この記事の内容は、node.js を使用して PDF にウォーターマークを追加する方法 (コード例) です。必要な方は参考にしていただければ幸いです。

このプロジェクトでは、node を中間層として使用しています。この間、PDF ファイルにウォーターマークを追加する必要があり、インターネット上の多くの投稿を検索したところ、次のような問題が見つかりました。

1. 単一ページの PDF の場合、PNG 画像を使用して PDF に追加できますが、実際の使用方法は、マルチページの各ページにウォーターマークを追加するような効果を満たす必要があります。 -ページPDF。 ####2. PDF を画像に変換し、画像に透かしを追加してから PDF に戻すことも考えましたが、途中の手順が煩雑で、鮮明さが損なわれる可能性があると感じました。

3. Python と Java には実装可能な関連ソリューションがあり、将来メンテナンスが必要になった場合に備えて、Python スクリプトを実行して PDF にウォーターマークを追加することを考えました。あまりフレンドリーではないかもしれません。

解決策

Github と NPM を参照したところ、node-pdftk はニーズを満たすことができるが、PDFTK ソフトウェアに依存する必要があることがわかりました。 PDFTK が Linux をサポートしていることがわかりました。これを使い始めてください。

環境

プロジェクトのデプロイメントに docker を使用する場合は、通常自分のコンピューターで開発する場合には、より状況に適しており、手間が少ない docker を使用してください。ただし、サーバー環境を練習またはシミュレートするために Linux 環境が必要な場合は、Linux イメージを使用して dokcer コンテナーを実行することもできます。ここでは詳しく説明しません。

実装

1. app.js

API は、入力メソッドでソース ファイルを入力します。 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にウォーターマークを追加する方法(コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。