| categories |
|
|||||
|---|---|---|---|---|---|---|
| date | 2026-02-10 | |||||
| description | GroupDocs.Annotation का उपयोग करके जावा में PDFs में कई पृष्ठों पर PDF वॉटरमार्क कैसे जोड़ें, सीखें। यह चरण‑दर‑चरण ट्यूटोरियल कोड उदाहरणों, समस्या निवारण टिप्स और सर्वोत्तम प्रथाओं के साथ जावा में PDF वॉटरमार्क जोड़ने का तरीका दिखाता है। | |||||
| keywords | java pdf watermark, add watermark to pdf java, java watermark library, pdf annotation java, groupdocs java watermark | |||||
| lastmod | 2026-02-10 | |||||
| linktitle | Java PDF Watermark Guide | |||||
| tags |
|
|||||
| title | जावा पीडीएफ वॉटरमार्क – पीडीएफ वॉटरमार्क कई पृष्ठों के लिए गाइड | |||||
| type | docs | |||||
| url | /hi/java/graphical-annotations/groupdocs-java-watermark-annotations-pdf-guide/ | |||||
| weight | 1 |
_BLOCK_0}} etc.
Now produce final content.# Java PDF Watermark – pdf watermark multiple pages गाइड
Adding a pdf watermark multiple pages is a common requirement when you need to protect, brand, or label documents in bulk. In this tutorial you’ll see exactly how to add pdf watermark java using GroupDocs.Annotation, from project setup to advanced customizations. We’ll walk through each step, explain the why behind every setting, and give you practical tips to avoid the usual pitfalls.
- Java में pdf watermark multiple pages जोड़ने वाली लाइब्रेरी कौन सी है? GroupDocs.Annotation for Java.
- क्या मुझे लाइसेंस की आवश्यकता है? हाँ, विकास के लिए एक फ्री ट्रायल काम करता है; उत्पादन के लिए पूर्ण लाइसेंस आवश्यक है।
- क्या मैं सभी पृष्ठों को एक साथ वॉटरमार्क कर सकता हूँ? हाँ – लूप में प्रत्येक पृष्ठ के लिए एक वॉटरमार्क एनोटेशन बनाएं।
- कौन सा Java संस्करण आवश्यक है? JDK 8+ (JDK 11+ की सिफारिश की जाती है)।
- ऑपेसिटी कैसे नियंत्रित करें?
setOpacity(double)का उपयोग करें जहाँ 0.0 पूरी तरह पारदर्शी और 1.0 पूरी तरह अपारदर्शी होता है।
क्या कभी आपके महत्वपूर्ण दस्तावेज़ बिना अनुमति के साझा किए गए हैं? या आपको अपनी कंपनी के PDFs को ब्रांड करना था लेकिन शुरुआत नहीं पता थी? आप अकेले नहीं हैं। PDFs में वॉटरमार्क जोड़ना आज डेवलपर्स के सामने सबसे सामान्य दस्तावेज़ सुरक्षा और ब्रांडिंग आवश्यकताओं में से एक है।
चाहे आप संवेदनशील व्यावसायिक दस्तावेज़ों की सुरक्षा कर रहे हों, मार्केटिंग सामग्री को ब्रांड कर रहे हों, या बस अनधिकृत वितरण को रोकना चाहते हों, प्रोग्रामेटिक रूप से वॉटरमार्क जोड़ने से आपको मैन्युअल काम में कई घंटे बच सकते हैं। और Java तथा सही लाइब्रेरी के साथ, यह आश्चर्यजनक रूप से सरल है।
इस गाइड में, आप सीखेंगे कि GroupDocs.Annotation for Java का उपयोग करके PDFs में पेशेवर‑दिखावट वाले वॉटरमार्क कैसे जोड़ें – उपलब्ध सबसे विश्वसनीय Java वॉटरमार्क लाइब्रेरी में से एक। हम बुनियादी सेटअप से लेकर उन्नत कस्टमाइज़ेशन तक सब कुछ कवर करेंगे, साथ ही सामान्य समस्याओं और उन्हें कैसे टालें।
अंत तक आप क्या सीखेंगे:
- GroupDocs.Annotation for Java वॉटरमार्क सेटअप करना
- पूर्ण नियंत्रण के साथ कस्टम वॉटरमार्क एनोटेशन बनाना
- सामान्य वॉटरमार्क इम्प्लीमेंटेशन समस्याओं का समाधान
- उत्पादन उपयोग के लिए अपने वॉटरमार्क कोड को ऑप्टिमाइज़ करना
PDF वॉटरमार्क एक ओवरले है जो दस्तावेज़ की सामग्री के ऊपर स्थित होता है बिना मूल टेक्स्ट को बदले। pdf watermark multiple pages का उपयोग करने से आप प्रत्येक पृष्ठ को लगातार एक ब्रांड, गोपनीयता नोटिस, या संस्करण टैग के साथ चिह्नित कर सकते हैं, जिससे सुरक्षा पूरे दस्तावेज़ के साथ रहती है।
- Java पर्यावरण: JDK 8 या उससे ऊपर (JDK 11+ की सिफारिश), Maven 3.6+, आपका पसंदीदा IDE।
- ज्ञान पूर्वापेक्षाएँ: बेसिक Java, फ़ाइल I/O, Maven डिपेंडेंसीज़।
- प्रोजेक्ट सेटअप: आउटपुट फ़ोल्डर में लिखने की अनुमति और बड़े PDFs के लिए पर्याप्त RAM।
The first step to adding watermarks to PDFs in Java is getting the GroupDocs.Annotation library properly configured. Here's the Maven setup that actually works:
<repositories>
<repository>
<id>repository.groupdocs.com</id>
<name>GroupDocs Repository</name>
<url>https://releases.groupdocs.com/annotation/java/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-annotation</artifactId>
<version>25.2</version>
</dependency>
</dependencies>प्रो टिप: बग फिक्स और प्रदर्शन सुधारों के लिए हमेशा नवीनतम संस्करण का उपयोग करें। ऊपर दिया गया संस्करण 2025 तक का वर्तमान संस्करण है।
यहाँ वह बात है जिसे कई ट्यूटोरियल छोड़ देते हैं – उत्पादन उपयोग के लिए आपको उचित लाइसेंसिंग की आवश्यकता है। यहाँ आपके विकल्प हैं:
- फ्री ट्रायल: परीक्षण और विकास के लिए उपयुक्त। डाउनलोड करें GroupDocs Downloads से
- टेम्पररी लाइसेंस: मूल्यांकन के लिए पूरी सुविधाएँ प्राप्त करें। प्राप्त करें Temporary License Page से
- फुल लाइसेंस: उत्पादन एप्लिकेशन के लिए। खरीदें GroupDocs Purchase Page से
एक बार जब आप अपनी डिपेंडेंसीज़ व्यवस्थित कर लेते हैं, तो यहाँ लाइब्रेरी को सही तरीके से इनिशियलाइज़ करने का तरीका है:
import com.groupdocs.annotation.Annotator;
public class WatermarkSetup {
public static void main(String[] args) {
String inputFilePath = "YOUR_DOCUMENT_DIRECTORY/input.pdf";
Annotator annotator = new Annotator(inputFilePath);
// Your watermark code goes here...
// Always remember to dispose!
annotator.dispose();
}
}आम गलती से बचें: dispose() को कॉल करना न भूलें, अन्यथा विशेषकर कई दस्तावेज़ प्रोसेस करते समय मेमोरी लीक हो सकता है।
अब मुख्य भाग – वास्तव में उन वॉटरमार्क को जोड़ना! GroupDocs.Annotation लाइब्रेरी यह प्रक्रिया आश्चर्यजनक रूप से सरल बनाती है जब आप घटकों को समझ लेते हैं।
वॉटरमार्क एनोटेशन को अपने PDF पर ओवरले लेयर के रूप में सोचें। इनमें टेक्स्ट हो सकता है, कस्टम पोजिशनिंग, रंग, ऑपेसिटी लेवल और यहाँ तक कि रोटेशन एंगल भी हो सकते हैं। साधारण टेक्स्ट जोड़ने से अलग, वॉटरमार्क एनोटेशन विशेष रूप से दृश्य मार्कर के रूप में डिज़ाइन किए गए हैं जो दस्तावेज़ की मूल सामग्री में हस्तक्षेप नहीं करते।
पहले, चलिए सभी इम्पोर्ट्स को व्यवस्थित करते हैं। ये आवश्यक क्लासेस हैं जिनकी आपको आवश्यकता होगी:
import com.groupdocs.annotation.Annotator;
import com.groupdocs.annotation.models.Reply;
import com.groupdocs.annotation.models.Rectangle;
import com.groupdocs.annotation.models.annotationmodels.WatermarkAnnotation;
import java.util.ArrayList;
import java.util.Calendar;प्रत्येक क्लास की एक विशिष्ट भूमिका है:
Annotator: PDF के साथ काम करने के लिए आपका मुख्य इंटरफ़ेसWatermarkAnnotation: वह वॉटरमार्क ऑब्जेक्ट जिसे आप कस्टमाइज़ करेंगेRectangle: निर्धारित करता है कि आपका वॉटरमार्क कहाँ दिखाई देगा और उसका आकारReply: वॉटरमार्क के बारे में वैकल्पिक टिप्पणी या नोट्स
String inputFilePath = "YOUR_DOCUMENT_DIRECTORY/input.pdf";
String outputPath = "YOUR_OUTPUT_DIRECTORY/AddWatermarkAnnotation.pdf";
final Annotator annotator = new Annotator(inputFilePath);महत्वपूर्ण नोट: Annotator ऑब्जेक्ट आपका PDF मेमोरी में लोड करता है, इसलिए बड़े फ़ाइलों के लिए पर्याप्त RAM सुनिश्चित करें। 50 MB से बड़े PDFs के लिए छोटे बैच में प्रोसेस करने पर विचार करें।
हालाँकि आवश्यक नहीं है, रिप्लाई दस्तावेज़ ट्रैकिंग या अनुमोदन वर्कफ़्लो के लिए उपयोगी हो सकते हैं:
Reply reply1 = new Reply();
reply1.setComment("First comment");
reply1.setRepliedOn(Calendar.getInstance().getTime());
Reply reply2 = new Reply();
reply2.setComment("Second comment");
reply2.setRepliedOn(Calendar.getInstance().getTime());यहीं पर आप रचनात्मक हो सकते हैं। वॉटरमार्क कॉन्फ़िगरेशन यह नियंत्रित करता है कि आपका वॉटरमार्क कैसे दिखेगा:
ArrayList<Reply> replies = new ArrayList<>();
replies.add(reply1);
replies.add(reply2);
WatermarkAnnotation watermark = new WatermarkAnnotation();
watermark.setAngle(75.0); // Set the angle of the watermark.
watermark.setBox(new Rectangle(200, 200, 100, 50)); // Define position and size with a rectangle.
watermark.setCreatedOn(Calendar.getInstance().getTime());
watermark.setText("Watermark");
watermark.setFontColor(65535); // Yellow color in ARGB format
watermark.setFontSize(12.0);
watermark.setMessage("This is a watermark annotation");
watermark.setOpacity(0.7);
watermark.setPageNumber(0);
watermark.setReplies(replies);आइए इन सेटिंग्स को समझते हैं:
setAngle(75.0): आपका वॉटरमार्क 75 डिग्री घुमाता है। तिरछे “CONFIDENTIAL” स्टैम्प के लिए बेहतरीन।setBox(new Rectangle(200, 200, 100, 50)): स्थिति (200, 200) साथ में चौड़ाई 100 और ऊँचाई 50।setFontColor(65535): ARGB रंग फ़ॉर्मेट – इस मामले में पीला।setOpacity(0.7): 70 % ऑपेसिटी – दिखता है लेकिन अधिक नहीं।setPageNumber(0): पहले पृष्ठ पर लागू (0‑इंडेक्स्ड)।
annotator.add(watermark);
annotator.save(outputPath);
annotator.dispose();बस इतना ही! आपका PDF अब एक प्रोफ़ेशनल वॉटरमार्क रखता है। save() मेथड आपके वॉटरमार्क लागू करके एक नई PDF फ़ाइल बनाता है, मूल फ़ाइल अपरिवर्तित रहती है।
डिफ़ॉल्ट रूप से, वॉटरमार्क एक पृष्ठ पर लागू होता है। pdf watermark multiple pages जोड़ने के लिए, दस्तावेज़ के पृष्ठों पर लूप करें और प्रत्येक के लिए एक अलग WatermarkAnnotation जोड़ें:
// Get total page count first
int pageCount = annotator.getDocument().getPages().size();
for (int i = 0; i < pageCount; i++) {
WatermarkAnnotation watermark = new WatermarkAnnotation();
// Reuse the same configuration or customize per page
watermark.setAngle(45.0);
watermark.setText("CONFIDENTIAL");
watermark.setFontColor(16711680); // Red
watermark.setOpacity(0.3);
watermark.setFontSize(24.0);
watermark.setBox(new Rectangle(100, 300, 400, 100));
watermark.setPageNumber(i);
annotator.add(watermark);
}
annotator.save(outputPath);
annotator.dispose();// Better error handling approach
try {
File inputFile = new File(inputFilePath);
if (!inputFile.exists()) {
throw new FileNotFoundException("Input PDF not found: " + inputFilePath);
}
Annotator annotator = new Annotator(inputFilePath);
// ... your watermark code
} catch (Exception e) {
System.err.println("Error processing PDF: " + e.getMessage());
}- पूर्ण पथों को दोबारा जांचें।
- पढ़ने/लिखने की अनुमतियों की पुष्टि करें।
- सुनिश्चित करें कि आउटपुट फ़ोल्डर मौजूद है।
- हमेशा
dispose()कॉल करें। - फ़ाइलों को एक बार में प्रोसेस करें, समानांतर में नहीं।
- JVM हीप बढ़ाएँ (
-Xmx4gबहुत बड़े दस्तावेज़ों के लिए)।
- याद रखें PDF कॉर्डिनेट्स बॉटम‑लेफ़्ट से शुरू होते हैं।
- विभिन्न पृष्ठ आकारों के साथ परीक्षण करें; A4 बनाम Letter स्थिति बदल सकता है।
- यदि वॉटरमार्क धुंधला दिखे तो ऑपेसिटी समायोजित करें।
आप उपयोग कर सकते हैं ARGB मान:
- लाल:
16711680 - नीला:
255 - हरा:
65280 - काला:
0 - सफ़ेद:
16777215 - पीला:
65535(जैसा कि हमारे उदाहरण में उपयोग किया गया है)
WatermarkAnnotation confidentialWatermark = new WatermarkAnnotation();
confidentialWatermark.setAngle(45.0);
confidentialWatermark.setText("CONFIDENTIAL");
confidentialWatermark.setFontColor(16711680); // Red
confidentialWatermark.setOpacity(0.3); // Subtle but visible
confidentialWatermark.setFontSize(24.0);
confidentialWatermark.setBox(new Rectangle(100, 300, 400, 100));WatermarkAnnotation brandWatermark = new WatermarkAnnotation();
brandWatermark.setText("© YourCompany 2025");
brandWatermark.setFontColor(0); // Black
brandWatermark.setOpacity(0.6);
brandWatermark.setFontSize(10.0);
brandWatermark.setBox(new Rectangle(400, 50, 150, 30));WatermarkAnnotation versionWatermark = new WatermarkAnnotation();
versionWatermark.setText("DRAFT - v2.1");
versionWatermark.setFontColor(255); // Blue
versionWatermark.setOpacity(0.8);
versionWatermark.setBox(new Rectangle(50, 750, 100, 30));public void processMultiplePDFs(List<String> pdfPaths) {
for (String path : pdfPaths) {
Annotator annotator = null;
try {
annotator = new Annotator(path);
// Add your watermark logic here
annotator.save(path.replace(".pdf", "_watermarked.pdf"));
} finally {
if (annotator != null) {
annotator.dispose(); // Always dispose, even if exceptions occur
}
}
}
}- मेमोरी उपयोग कम रखने के लिए दस्तावेज़ों को क्रमिक रूप से प्रोसेस करें।
- लंबी रन के लिए प्रोग्रेस इंडिकेटर का उपयोग करें।
- जब तक लाइब्रेरी की थ्रेड‑सेफ़्टी की पुष्टि न हो, समानांतर प्रोसेसिंग से बचें।
public class WatermarkTemplates {
public static WatermarkAnnotation createConfidentialWatermark() {
WatermarkAnnotation watermark = new WatermarkAnnotation();
watermark.setAngle(45.0);
watermark.setText("CONFIDENTIAL");
watermark.setFontColor(16711680);
watermark.setOpacity(0.3);
watermark.setFontSize(24.0);
return watermark;
}
public static WatermarkAnnotation createBrandWatermark(String companyName) {
WatermarkAnnotation watermark = new WatermarkAnnotation();
watermark.setText("© " + companyName + " 2025");
watermark.setFontColor(0);
watermark.setOpacity(0.6);
watermark.setFontSize(10.0);
return watermark;
}
}प्रश्न: मैं PDF में कई पृष्ठों पर वॉटरमार्क कैसे जोड़ूँ?
उत्तर: दस्तावेज़ के पृष्ठ गिनती पर लूप चलाएँ और प्रत्येक पृष्ठ के लिए WatermarkAnnotation बनाएं, लूप के अंदर setPageNumber(i) सेट करें।
प्रश्न: क्या मैं अपने वॉटरमार्क के लिए कस्टम फ़ॉन्ट्स उपयोग कर सकता हूँ?
उत्तर: GroupDocs.Annotation सिस्टम‑इंस्टॉल्ड फ़ॉन्ट्स का उपयोग करता है। होस्ट मशीन पर मौजूद फ़ॉन्ट फ़ैमिली निर्दिष्ट करें; यदि फ़ॉन्ट नहीं मिलता तो लाइब्रेरी डिफ़ॉल्ट पर वापस आती है।
प्रश्न: पेशेवर वॉटरमार्क के लिए कौन सा ऑपेसिटी सेटिंग सबसे अच्छा है?
उत्तर: 0.3 से 0.7 के बीच आदर्श है—इतना कम कि सामग्री पढ़ने योग्य रहे, और इतना अधिक कि ध्यान आकर्षित करे।
प्रश्न: बहुत बड़े PDF फ़ाइलों को कैसे संभालूँ?
उत्तर: JVM हीप बढ़ाएँ (-Xmx4g या अधिक), फ़ाइलों को एक‑एक करके प्रोसेस करें, और प्रत्येक दस्तावेज़ के बाद हमेशा dispose() कॉल करें।
प्रश्न: क्या मौजूदा वॉटरमार्क को हटाना या संशोधित करना संभव है?
उत्तर: हाँ—annotator.get() से मौजूदा एनोटेशन प्राप्त करें, WatermarkAnnotation के लिए फ़िल्टर करें, फिर आवश्यकतानुसार संपादित या हटाएँ:
// Get existing annotations
List<AnnotationBase> annotations = annotator.get();
// Filter and modify as needed- डॉक्यूमेंटेशन: GroupDocs Annotation Java Docs
- पूर्ण API रेफ़रेंस: GroupDocs Annotation Java API
- नवीनतम संस्करण डाउनलोड करें: GroupDocs Downloads
- व्यावसायिक लाइसेंसिंग: Purchase GroupDocs
- कम्युनिटी सपोर्ट: GroupDocs Forums
अंतिम अपडेट: 2026-02-10
टेस्ट किया गया संस्करण: GroupDocs.Annotation 25.2
लेखक: GroupDocs