Jest to uzupełnienie odpowiedzi @Dennis z 18:06 30 Jul 2012. On z pewnością zajmuje się trudniejszym przypadkiem.
W najprostszym przypadku, gdy znak wodny jest prostym, nie ozdobionym tekstem, na przykład
Smedley For Commissioner
nieskompresowane znaki wodne PDF mogą być zdefiniowane w ten sposób:
BT
75.96 625 Td
(Smedley For Commissioner)Tj
ET
gdzie 75.96
jest przesunięciem poziomym, a 625
przesunięciem pionowym dla tej konkretnej instancji znaku wodnego. (Tak, mogą tu występować zarówno liczby rzeczywiste, jak i całkowite).
Regexp taki jak poniższy będzie działał dla wszystkich takich znaków wodnych, ignorując wszelkie różnice w ich rozmieszczeniu:
^BT\n[0-9.]+ [0-9.]+ Td\n\(Smedley For Commissioner\)Tj\nET\n
Należy jednak pamiętać, że w przypadku znaków wodnych o bardziej skomplikowanym formatowaniu w grę mogą wchodzić różne operatory modyfikujące PDF. Takie bajery mogą przekształcić to, czego czytelnik spodziewa się (ma nadzieję?), że będzie ciągłym, łatwym do znalezienia ciągiem znaków, w plątaninę alfabetycznej zupy. Na przykład,
E1 = mc² by Smedley™
Może być produktem tego:
BT
75.96 625 Td
(E)Tj
-5 Ts
(1)Tj
0 Ts
( = mc)Tj
5 Ts
(2)Tj
0 Ts
(by Smedley)Tj
5 Ts
(TM)Tj
0 Ts
ET
… lub znacznie gorzej, jeśli twój znak wodny jest wzmocniony kolorystycznie!
Zauważywszy to wszystko, zauważę również, że PDFtk ma wersję GUI, która rzekomo obsługuje znaki wodne, w zamian za opłatę licencyjną w wysokości 4$. Wcale nie drogo!
Z drugiej strony, znalazłem jego stronę internetową obecnie reklamuje pełne wsparcie dla O / S przez Windows 8
i OS X 10.8 Mountain Lion
. Ten rocznik to ponad 4 lata temu. Czy PDFtk może być przestarzały? Podejrzewam, że nie, ale nie wiem.