Wasserzeichen auf bestimmten Seiten
Wie Sie ein Text- oder Bildwasserzeichen mit dem Selektor pages auf bestimmte Seiten begrenzen, und die häufigsten Muster.
Standardmäßig landet ein Wasserzeichen auf jeder Seite. Das Feld pages grenzt
das auf eine genaue Teilmenge ein (ein Deckblatt, einen Anhang, alles außer der
ersten Seite), sodass Sie es genau dort aufbringen, wo Sie es brauchen. Sowohl
Textwasserzeichen hinzufügen als auch
Bildwasserzeichen hinzufügen akzeptieren
es, und es funktioniert bei jeder Aktion, die ein Feld pages entgegennimmt,
auf dieselbe Weise.
Der Selektor pages
pages ist eine durch Kommas getrennte Liste von Seitenzahlen und Bereichen,
beginnend bei 1. Sie wird als Menge behandelt: Reihenfolge und Duplikate
werden ignoriert, und das Wasserzeichen wird immer in der Reihenfolge des
Dokuments aufgebracht. Wird sie weggelassen, sind alle Seiten ausgewählt. Siehe
Seiten auswählen für die vollständige Syntax.
| Ziel | Wert von pages |
|---|---|
| Nur das Deckblatt | 1 |
| Jede Seite außer der ersten | 2.. |
| Jede Seite außer der letzten | ..-2 |
| Nur die letzte Seite | -1 |
| Ein Anhang ab Seite 8 | 8.. |
| Eine bestimmte Menge von Seiten | 1..3,5 |
| Die letzten drei Seiten | -3..-1 |
Wasserzeichen auf jeder Seite außer dem Deckblatt aufbringen
Eine häufige Anforderung: ein durchlaufender Vertraulichkeitshinweis auf dem
Hauptteil eines Dokuments, aber nicht über der Titelseite. Wählen Sie
pages=2.., also Seite 2 bis zur letzten Seite.
curl https://api.pdfblocks.com/v1/add_text_watermark \
-H 'X-API-Key: your_api_key' \
-F file=@input.pdf \
-F line_1='CONFIDENTIAL' \
-F pages='2..' \
-o watermarked.pdf# pip install requests
import requests
with open('input.pdf', 'rb') as file:
response = requests.post(
'https://api.pdfblocks.com/v1/add_text_watermark',
headers={'X-API-Key': 'your_api_key'},
files={'file': file},
data={'line_1': 'CONFIDENTIAL', 'pages': '2..'},
)
response.raise_for_status()
with open('watermarked.pdf', 'wb') as output:
output.write(response.content)// Node.js 18+
import { readFile, writeFile } from 'node:fs/promises';
const body = new FormData();
body.set('file', new Blob([await readFile('input.pdf')]), 'input.pdf');
body.set('line_1', 'CONFIDENTIAL');
body.set('pages', '2..');
const response = await fetch('https://api.pdfblocks.com/v1/add_text_watermark', {
method: 'POST',
headers: { 'X-API-Key': 'your_api_key' },
body,
});
if (!response.ok) throw new Error(`Request failed: ${response.status}`);
await writeFile('watermarked.pdf', Buffer.from(await response.arrayBuffer()));<?php
$ch = curl_init('https://api.pdfblocks.com/v1/add_text_watermark');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['X-API-Key: your_api_key'],
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => [
'file' => new CURLFile('input.pdf', 'application/pdf'),
'line_1' => 'CONFIDENTIAL',
'pages' => '2..',
],
]);
$pdf = curl_exec($ch);
if (curl_getinfo($ch, CURLINFO_HTTP_CODE) === 200) {
file_put_contents('watermarked.pdf', $pdf);
}# gem install http
require 'http'
response = HTTP
.headers('X-API-Key' => 'your_api_key')
.post('https://api.pdfblocks.com/v1/add_text_watermark', form: {
file: HTTP::FormData::File.new('input.pdf'),
line_1: 'CONFIDENTIAL',
pages: '2..',
})
File.write('watermarked.pdf', response.body) if response.status.success?package main
import (
"bytes"
"io"
"mime/multipart"
"net/http"
"os"
)
func main() {
var buf bytes.Buffer
form := multipart.NewWriter(&buf)
file, _ := os.Open("input.pdf")
defer file.Close()
part, _ := form.CreateFormFile("file", "input.pdf")
io.Copy(part, file)
form.WriteField("line_1", "CONFIDENTIAL")
form.WriteField("pages", "2..")
form.Close()
req, _ := http.NewRequest("POST",
"https://api.pdfblocks.com/v1/add_text_watermark", &buf)
req.Header.Set("Content-Type", form.FormDataContentType())
req.Header.Set("X-API-Key", "your_api_key")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
out, _ := os.Create("watermarked.pdf")
defer out.Close()
io.Copy(out, res.Body)
}using var client = new HttpClient();
client.DefaultRequestHeaders.Add("X-API-Key", "your_api_key");
using var form = new MultipartFormDataContent
{
{ new ByteArrayContent(File.ReadAllBytes("input.pdf")), "file", "input.pdf" },
{ new StringContent("CONFIDENTIAL"), "line_1" },
{ new StringContent("2.."), "pages" },
};
var response = await client.PostAsync(
"https://api.pdfblocks.com/v1/add_text_watermark", form);
response.EnsureSuccessStatusCode();
await File.WriteAllBytesAsync(
"watermarked.pdf", await response.Content.ReadAsByteArrayAsync());Weitere Muster zur Zielauswahl
Das Einzige, was sich zwischen diesen Beispielen ändert, ist der Wert von
pages. Jedes Snippet schreibt in eine andere Ausgabedatei.
# pages=1: stamp just the title page.
curl https://api.pdfblocks.com/v1/add_text_watermark \
-H 'X-API-Key: your_api_key' \
-F file=@input.pdf \
-F line_1='DRAFT' \
-F pages='1' \
-o cover.pdf# pages=..-2: the first page through the second-to-last.
curl https://api.pdfblocks.com/v1/add_text_watermark \
-H 'X-API-Key: your_api_key' \
-F file=@input.pdf \
-F line_1='DO NOT DISTRIBUTE' \
-F pages='..-2' \
-o body.pdf# pages=8..: page 8 to the end.
curl https://api.pdfblocks.com/v1/add_text_watermark \
-H 'X-API-Key: your_api_key' \
-F file=@input.pdf \
-F line_1='APPENDIX' \
-F pages='8..' \
-o appendix.pdf# pages=1..3,5: pages 1, 2, 3, and 5.
curl https://api.pdfblocks.com/v1/add_text_watermark \
-H 'X-API-Key: your_api_key' \
-F file=@input.pdf \
-F line_1='REVIEW COPY' \
-F pages='1..3,5' \
-o review.pdfBildwasserzeichen lassen sich genauso ansteuern
Ein Bildwasserzeichen verwendet ein identisches Feld pages: Übergeben Sie ein
PNG oder JPEG im Feld image neben file. Damit wird ein Logo nur auf dem
Deckblatt aufgebracht:
curl https://api.pdfblocks.com/v1/add_image_watermark \
-H 'X-API-Key: your_api_key' \
-F file=@input.pdf \
-F image=@logo.png \
-F pages='1' \
-o watermarked.pdf# pip install requests
import requests
with open('input.pdf', 'rb') as file, open('logo.png', 'rb') as image:
response = requests.post(
'https://api.pdfblocks.com/v1/add_image_watermark',
headers={'X-API-Key': 'your_api_key'},
files={'file': file, 'image': image},
data={'pages': '1'},
)
response.raise_for_status()
with open('watermarked.pdf', 'wb') as output:
output.write(response.content)// Node.js 18+
import { readFile, writeFile } from 'node:fs/promises';
const body = new FormData();
body.set('file', new Blob([await readFile('input.pdf')]), 'input.pdf');
body.set('image', new Blob([await readFile('logo.png')]), 'logo.png');
body.set('pages', '1');
const response = await fetch('https://api.pdfblocks.com/v1/add_image_watermark', {
method: 'POST',
headers: { 'X-API-Key': 'your_api_key' },
body,
});
if (!response.ok) throw new Error(`Request failed: ${response.status}`);
await writeFile('watermarked.pdf', Buffer.from(await response.arrayBuffer()));Derselbe Selektor pages steuert auch die seitenorientierten Aktionen:
Seiten extrahieren, Seiten
entfernen und Seiten
drehen lesen ihn alle auf dieselbe Weise.
Einmal lernen, überall wiederverwenden.
Siehe auch
Die vollständige Syntax für Seitenbereiche, einschließlich negativer Indizes.
Vorlagen, Farben, Deckkraft und Ränder.
Bringen Sie ein PNG- oder JPEG-Logo statt Text auf.
Holen Sie mit demselben Selektor eine Teilmenge von Seiten heraus.