>  기사  >  웹 프론트엔드  >  node.js에서 PDF에 워터마크를 추가하는 방법(코드 예)

node.js에서 PDF에 워터마크를 추가하는 방법(코드 예)

不言
不言앞으로
2018-12-06 15:56:434153검색

이 글의 내용은 node.js를 사용하여 PDF에 워터마크를 추가하는 방법(코드 예제)입니다. 필요한 친구들이 참고할 수 있기를 바랍니다

프로젝트에서 node를 중간 레이어로 사용했는데, 이 기간 동안 PDF 파일에 워터마크를 추가해야 할 필요성이 있어서 온라인에서 많은 게시물을 검색했는데 다음과 같은 문제를 발견했습니다.

1. 단일 페이지 PDF의 경우 PNG 이미지를 사용하여 PDF에 추가할 수 있지만, 다중 페이지 PDF의 각 페이지에 워터마크를 추가하는 효과는 그다지 이상적이지 않습니다.
2. PDF를 사진으로 변환하고, 사진에 워터마크를 추가한 후 다시 PDF로 변환할까도 생각했지만, 중간 단계가 너무 번거롭고 선명도가 떨어질 수 있다는 생각이 들었습니다.
3. Python과 Java에는 구현할 수 있는 관련 솔루션이 있습니다. Python 스크립트를 실행하여 PDF에 워터마크를 추가하는 것을 고려하면 향후 유지 관리가 필요할 경우 확장이 불가능할 수 있습니다. 너무 친절하세요.

Solution

Github와 NPM을 검색한 결과 node-pdftk가 요구 사항을 충족할 수 있다는 것을 알았지만 PDFTK 소프트웨어에 의존해야 한다는 것을 알게 되었습니다. 자세히 알아보고 나서 PDFTK가 Linux를 지원한다는 것을 알았습니다. 이것.

환경

프로젝트 배포에는 docker를 사용하므로 상황에 더 적합하고 번거로움이 덜한 docker를 사용하지만, 일반적으로 자신의 컴퓨터에서 개발하지만 서버 환경을 연습하거나 시뮬레이션하기 위해 Linux 환경이 필요한 경우, Linux 이미지를 사용하여 도커 컨테이너를 실행할 수도 있습니다. 여기서는 자세히 설명하지 않겠습니다.

Implementation

1. app.js

API는 비교적 간단합니다. 입력 방식에서는 소스 파일을 입력하고, 스탬프 방식에서는 워터마크 파일을 입력하고, 출력 방식에서는 저장할 경로를 지정합니다. .여기서 서비스를 시작합니다. 포트 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, effect

소스 파일

node.js에서 PDF에 워터마크를 추가하는 방법(코드 예)

워터마크 파일

node.js에서 PDF에 워터마크를 추가하는 방법(코드 예)

워터마크 추가 후

node.js에서 PDF에 워터마크를 추가하는 방법(코드 예)

위 내용은 node.js에서 PDF에 워터마크를 추가하는 방법(코드 예)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제