Skip to content

Latest commit

 

History

History
400 lines (307 loc) · 27.1 KB

File metadata and controls

400 lines (307 loc) · 27.1 KB
categories
Java PDF Processing
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
java
pdf
watermark
groupdocs
document-security
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 पूरी तरह अपारदर्शी होता है।

आपको PDF वॉटरमार्क क्यों चाहिए (और Java इसे आसान कैसे बनाता है)

क्या कभी आपके महत्वपूर्ण दस्तावेज़ बिना अनुमति के साझा किए गए हैं? या आपको अपनी कंपनी के PDFs को ब्रांड करना था लेकिन शुरुआत नहीं पता थी? आप अकेले नहीं हैं। PDFs में वॉटरमार्क जोड़ना आज डेवलपर्स के सामने सबसे सामान्य दस्तावेज़ सुरक्षा और ब्रांडिंग आवश्यकताओं में से एक है।

चाहे आप संवेदनशील व्यावसायिक दस्तावेज़ों की सुरक्षा कर रहे हों, मार्केटिंग सामग्री को ब्रांड कर रहे हों, या बस अनधिकृत वितरण को रोकना चाहते हों, प्रोग्रामेटिक रूप से वॉटरमार्क जोड़ने से आपको मैन्युअल काम में कई घंटे बच सकते हैं। और Java तथा सही लाइब्रेरी के साथ, यह आश्चर्यजनक रूप से सरल है।

इस गाइड में, आप सीखेंगे कि GroupDocs.Annotation for Java का उपयोग करके PDFs में पेशेवर‑दिखावट वाले वॉटरमार्क कैसे जोड़ें – उपलब्ध सबसे विश्वसनीय Java वॉटरमार्क लाइब्रेरी में से एक। हम बुनियादी सेटअप से लेकर उन्नत कस्टमाइज़ेशन तक सब कुछ कवर करेंगे, साथ ही सामान्य समस्याओं और उन्हें कैसे टालें।

अंत तक आप क्या सीखेंगे:

  • GroupDocs.Annotation for Java वॉटरमार्क सेटअप करना
  • पूर्ण नियंत्रण के साथ कस्टम वॉटरमार्क एनोटेशन बनाना
  • सामान्य वॉटरमार्क इम्प्लीमेंटेशन समस्याओं का समाधान
  • उत्पादन उपयोग के लिए अपने वॉटरमार्क कोड को ऑप्टिमाइज़ करना

PDF वॉटरमार्क क्या है और इसे कई पृष्ठों पर क्यों उपयोग करें?

PDF वॉटरमार्क एक ओवरले है जो दस्तावेज़ की सामग्री के ऊपर स्थित होता है बिना मूल टेक्स्ट को बदले। pdf watermark multiple pages का उपयोग करने से आप प्रत्येक पृष्ठ को लगातार एक ब्रांड, गोपनीयता नोटिस, या संस्करण टैग के साथ चिह्नित कर सकते हैं, जिससे सुरक्षा पूरे दस्तावेज़ के साथ रहती है।

पूर्वापेक्षाएँ

आवश्यक आवश्यकताएँ

  • Java पर्यावरण: JDK 8 या उससे ऊपर (JDK 11+ की सिफारिश), Maven 3.6+, आपका पसंदीदा IDE।
  • ज्ञान पूर्वापेक्षाएँ: बेसिक Java, फ़ाइल I/O, Maven डिपेंडेंसीज़।
  • प्रोजेक्ट सेटअप: आउटपुट फ़ोल्डर में लिखने की अनुमति और बड़े PDFs के लिए पर्याप्त RAM।

अपने Java PDF वॉटरमार्क पर्यावरण को सेटअप करना

अपने प्रोजेक्ट में GroupDocs.Annotation जोड़ना

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 तक का वर्तमान संस्करण है।

अपना लाइसेंस व्यवस्थित करना

यहाँ वह बात है जिसे कई ट्यूटोरियल छोड़ देते हैं – उत्पादन उपयोग के लिए आपको उचित लाइसेंसिंग की आवश्यकता है। यहाँ आपके विकल्प हैं:

  1. फ्री ट्रायल: परीक्षण और विकास के लिए उपयुक्त। डाउनलोड करें GroupDocs Downloads से
  2. टेम्पररी लाइसेंस: मूल्यांकन के लिए पूरी सुविधाएँ प्राप्त करें। प्राप्त करें Temporary License Page से
  3. फुल लाइसेंस: उत्पादन एप्लिकेशन के लिए। खरीदें 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() को कॉल करना न भूलें, अन्यथा विशेषकर कई दस्तावेज़ प्रोसेस करते समय मेमोरी लीक हो सकता है।

Java के साथ pdf watermark multiple pages कैसे जोड़ें

अब मुख्य भाग – वास्तव में उन वॉटरमार्क को जोड़ना! GroupDocs.Annotation लाइब्रेरी यह प्रक्रिया आश्चर्यजनक रूप से सरल बनाती है जब आप घटकों को समझ लेते हैं।

वॉटरमार्क एनोटेशन को समझना

वॉटरमार्क एनोटेशन को अपने PDF पर ओवरले लेयर के रूप में सोचें। इनमें टेक्स्ट हो सकता है, कस्टम पोजिशनिंग, रंग, ऑपेसिटी लेवल और यहाँ तक कि रोटेशन एंगल भी हो सकते हैं। साधारण टेक्स्ट जोड़ने से अलग, वॉटरमार्क एनोटेशन विशेष रूप से दृश्य मार्कर के रूप में डिज़ाइन किए गए हैं जो दस्तावेज़ की मूल सामग्री में हस्तक्षेप नहीं करते।

चरण 1: सही क्लासेस इम्पोर्ट करें

पहले, चलिए सभी इम्पोर्ट्स को व्यवस्थित करते हैं। ये आवश्यक क्लासेस हैं जिनकी आपको आवश्यकता होगी:

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: वॉटरमार्क के बारे में वैकल्पिक टिप्पणी या नोट्स

चरण 2: वॉटरमार्किंग के लिए अपना PDF इनिशियलाइज़ करें

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 के लिए छोटे बैच में प्रोसेस करने पर विचार करें।

चरण 3: वैकल्पिक Reply ऑब्जेक्ट बनाएं

हालाँकि आवश्यक नहीं है, रिप्लाई दस्तावेज़ ट्रैकिंग या अनुमोदन वर्कफ़्लो के लिए उपयोगी हो सकते हैं:

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());

चरण 4: अपना वॉटरमार्क कॉन्फ़िगर करें (मज़ेदार भाग!)

यहीं पर आप रचनात्मक हो सकते हैं। वॉटरमार्क कॉन्फ़िगरेशन यह नियंत्रित करता है कि आपका वॉटरमार्क कैसे दिखेगा:

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‑इंडेक्स्ड)।

चरण 5: अपना वॉटरमार्क किया हुआ PDF लागू करें और सहेजें

annotator.add(watermark);
annotator.save(outputPath);
annotator.dispose();

बस इतना ही! आपका PDF अब एक प्रोफ़ेशनल वॉटरमार्क रखता है। save() मेथड आपके वॉटरमार्क लागू करके एक नई PDF फ़ाइल बनाता है, मूल फ़ाइल अपरिवर्तित रहती है।

pdf watermark multiple pages कैसे जोड़ें (सभी पृष्ठों पर)

डिफ़ॉल्ट रूप से, वॉटरमार्क एक पृष्ठ पर लागू होता है। 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();

सामान्य समस्याएँ और उन्हें कैसे ठीक करें

“File Not Found” त्रुटियाँ

// 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());
}
  • पूर्ण पथों को दोबारा जांचें।
  • पढ़ने/लिखने की अनुमतियों की पुष्टि करें।
  • सुनिश्चित करें कि आउटपुट फ़ोल्डर मौजूद है।

बड़े PDFs के साथ मेमोरी समस्याएँ

  • हमेशा dispose() कॉल करें।
  • फ़ाइलों को एक बार में प्रोसेस करें, समानांतर में नहीं।
  • JVM हीप बढ़ाएँ (-Xmx4g बहुत बड़े दस्तावेज़ों के लिए)।

वॉटरमार्क अपेक्षित स्थान पर नहीं दिख रहा है

  • याद रखें PDF कॉर्डिनेट्स बॉटम‑लेफ़्ट से शुरू होते हैं।
  • विभिन्न पृष्ठ आकारों के साथ परीक्षण करें; A4 बनाम Letter स्थिति बदल सकता है।
  • यदि वॉटरमार्क धुंधला दिखे तो ऑपेसिटी समायोजित करें।

फ़ॉन्ट रंग समस्याएँ

आप उपयोग कर सकते हैं ARGB मान:

  • लाल: 16711680
  • नीला: 255
  • हरा: 65280
  • काला: 0
  • सफ़ेद: 16777215
  • पीला: 65535 (जैसा कि हमारे उदाहरण में उपयोग किया गया है)

Java PDF वॉटरमार्क के वास्तविक‑जीवन उपयोग केस

व्यावसायिक दस्तावेज़ सुरक्षा

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

अतिरिक्त संसाधन


अंतिम अपडेट: 2026-02-10
टेस्ट किया गया संस्करण: GroupDocs.Annotation 25.2
लेखक: GroupDocs