Red de conocimiento informático - Aprendizaje de programación - Cómo agregar una marca de agua a un PDF con node.js (ejemplo de código)

Cómo agregar una marca de agua a un PDF con node.js (ejemplo de código)

El contenido que le ofrece este artículo trata sobre cómo agregar una marca de agua a un PDF con node.js (ejemplo de código). Los amigos que lo necesiten pueden consultarlo. Espero que sea útil para todos.

Project Node se utiliza como capa intermedia. Hay un problema al agregar marcas de agua a los archivos PDF. Busqué algunas publicaciones en Internet y encontré los siguientes problemas.

1. Se puede agregar un PDF de una sola página al PDF usando imágenes PNG, pero el uso real no es tan ideal. Debe cumplir con el efecto de agregar una marca de agua a cada página de una página múltiple. PDF.

2. Pensé en convertir el PDF en una imagen, agregar una marca de agua a la imagen y luego volver a convertirlo en un PDF, pero sentí que este paso intermedio era demasiado problemático y enfrentaría la posibilidad de una pérdida de claridad.

3. Python y Java tienen programas relacionados que se pueden implementar. He pensado en usar node para ejecutar scripts de Python para agregar marcas de agua a los archivos PDF. necesario en el futuro, es posible que no sea tan amigable.

Solución

Busqué en Github y NPM y descubrí que node-pdftk puede satisfacer las necesidades, pero tiene que depender del software PDFTK. Después de aprender más, descubrí que PDFTK es compatible. Linux, lo cual es bueno. Puedo usarlo directamente.

Entorno

El proyecto se implementa usando Docker, luego use Docker, que es más adecuado para la situación real y le ahorra problemas si normalmente desarrolla en su propia computadora, pero necesita hacerlo; usar linux Puede practicar o simular el entorno del servidor en el entorno, y también puede usar la imagen de Linux para ejecutar el contenedor dokcer, que no entraré en detalles aquí.

Implementación

1. app.js

La API es relativamente simple. En el método de entrada, ingresamos el archivo fuente, en el método amp. ingrese el archivo de marca de agua y, en el método de salida, especificamos la ruta para guardar, aquí iniciamos un servicio y, al acceder al puerto 3100, generaremos nuestro PDF con marca de agua.

'use estricto';

const express = require('express');

const pdftk = require('node-pdftk');

p>

ruta constante = require('ruta');

aplicación const = express();

app.get('/', ( req, res) = gt; {

pdftk

.input(path.resolve(__dirname '/. /files/javascript.pdf'))

.stamp(path. resolve(__dirname '/... /files/watermark.pdf')

.output(path.resolve(__dirname '/... /files/watermark.pdf'))

.resolve(__dirname '/... /files/javascript_watermark.pdf'))

.then(buffer =gt; {

return res. enviar('exitoso' );

})

.catch(err =gt; {

console.error(err);

return res. send('fallido');

});

}); : 7.6.0

# Crear directorio de trabajo

EJECUTAR mkdir -p /usr/src/app

WORKDIR /usr/src/app

COPIAR ./node_modules /usr /src/app/node_modules

EJECUTAR registro de conjunto npm https://registry.npm.taobao.org/

# Descargar e instalar PDFTK

EJECUTAR apt -get update

EJECUTAR apt-get install -y pdftk

# Utilice PM2 para iniciar la aplicación

CMD ["./node_modules /pm2/bin/pm2 -docker", "process.yml"]3. Archivo fuente del efecto

Archivo de marca de agua

Después de agregar la marca de agua