Skip to content

Latest commit

 

History

History
453 lines (342 loc) · 31.4 KB

File metadata and controls

453 lines (342 loc) · 31.4 KB
categories
Java Development
date 2026-01-18
description GroupDocs.Comparison का उपयोग करके जावा में फ़ाइल प्रकार कैसे प्राप्त करें और दस्तावेज़ मेटाडेटा निकालें, सीखें। सरल कोड उदाहरणों और समस्या निवारण टिप्स के साथ पृष्ठ संख्या, आकार और अधिक प्राप्त करें।
keywords java document metadata extraction, groupdocs comparison tutorial, extract file properties java, document info java api, how to get document metadata in java
lastmod 2026-01-18
linktitle Java Document Metadata Extraction
tags
groupdocs
document-processing
metadata-extraction
java-tutorial
title जावा फ़ाइल प्रकार प्राप्त करें – दस्तावेज़ मेटाडेटा निकालने की गाइड
type docs
url /hi/java/document-information/extract-document-info-groupdocs-comparison-java/
weight 1

जावा फ़ाइल प्रकार प्राप्त करें – दस्तावेज़ मेटाडेटा निकालने का गाइड

क्या आपने कभी बिना दस्तावेज़ खोलें फ़ाइल की जानकारी जल्दी से प्राप्त करने की ज़रूरत महसूस की है? आप अकेले नहीं हैं। चाहे आप एक दस्तावेज़ प्रबंधन प्रणाली बना रहे हों, फ़ाइल अपलोड को मान्य करने की आवश्यकता हो, या दस्तावेज़ प्रोसेसिंग वर्कफ़्लो को स्वचालित करना चाहते हों, java get file type प्रोग्रामेटिकली आपके बहुत समय की बचत कर सकता है।

इस गाइड में, हम बिल्कुल वही दिखाएंगे कि GroupDocs.Comparison for Java का उपयोग करके दस्तावेज़ मेटाडेटा (जैसे फ़ाइल प्रकार, पेज काउंट, और आकार) कैसे निकाला जाए। यदि आप इस लाइब्रेरी में नए हैं तो चिंता न करें – हम सब कुछ चरण‑दर‑चरण कवर करेंगे, सामान्य समस्याओं और उन्हें कैसे टालें, इस पर भी चर्चा करेंगे।

त्वरित उत्तर

  • मैं java get file type के लिए कौन सी लाइब्रेरी उपयोग कर सकता हूँ? GroupDocs.Comparison for Java.
  • क्या मैं java extract pdf metadata भी कर सकता हूँ? हाँ – वही API PDFs और कई अन्य फ़ॉर्मेट्स के लिए काम करता है।
  • क्या मुझे लाइसेंस चाहिए? विकास के लिए ट्रायल या टेम्पररी लाइसेंस काम करता है; उत्पादन के लिए पूर्ण लाइसेंस आवश्यक है।
  • कौन सा Java संस्करण आवश्यक है? JDK 8+ (JDK 11+ की सलाह दी जाती है)।
  • क्या कोड थ्रेड‑सेफ़ है? प्रत्येक थ्रेड के लिए एक अलग Comparer इंस्टेंस बनाएँ।

दस्तावेज़ मेटाडेटा क्यों निकालें?

कोड में डुबने से पहले, आइए देखें कि वास्तविक‑दुनिया के अनुप्रयोगों में यह क्यों महत्वपूर्ण है:

  • डॉक्यूमेंट मैनेजमेंट सिस्टम – फ़ाइलों को उनके गुणों के आधार पर स्वचालित रूप से वर्गीकृत और इंडेक्स करें।
  • फ़ाइल अपलोड वैधता – प्रोसेसिंग से पहले फ़ाइल प्रकार और आकार जांचें।
  • कंटेंट एनालिसिस – लंबाई, फ़ॉर्मेट या अन्य मानदंडों के आधार पर दस्तावेज़ फ़िल्टर और सॉर्ट करें।
  • लीगल & कंप्लायंस – सुनिश्चित करें कि दस्तावेज़ विशिष्ट आवश्यकताओं को पूरा करते हैं।
  • परफ़ॉर्मेंस ऑप्टिमाइज़ेशन – केवल उन फ़ाइलों को प्री‑प्रोसेस करें जो कुछ मानदंडों को पूरा करती हैं।

सारांश? मेटाडेटा एक्सट्रैक्शन आपको अपने दस्तावेज़ों को कैसे हैंडल करना है, इस बारे में smarter निर्णय लेने में मदद करता है।

इस गाइड में आप क्या सीखेंगे

इस ट्यूटोरियल के अंत तक, आप सक्षम होंगे:

  • अपने प्रोजेक्ट में GroupDocs.Comparison for Java सेट‑अप करना।
  • java get file type और अन्य आवश्यक दस्तावेज़ गुण कुछ ही लाइनों के कोड से प्राप्त करना।
  • विभिन्न फ़ाइल फ़ॉर्मेट्स और एज केसों को हैंडल करना।
  • सामान्य समस्याओं का ट्रबलशूट करना।
  • प्रोडक्शन एनवायरनमेंट्स के लिए बेस्ट प्रैक्टिसेज लागू करना।

पूर्वापेक्षाएँ: शुरू करने से पहले क्या चाहिए

आवश्यक सॉफ़्टवेयर और टूल्स

  • Java Development Kit (JDK) – संस्करण 8 या उससे ऊपर (बेहतर परफ़ॉर्मेंस के लिए हम JDK 11+ की सलाह देते हैं)।
  • Maven – डिपेंडेंसी मैनेजमेंट और प्रोजेक्ट बिल्ड के लिए।
  • IDE – कोई भी Java IDE जैसे IntelliJ IDEA, Eclipse, या VS Code।

ज्ञान की पूर्वापेक्षाएँ

आपको Java विशेषज्ञ होने की ज़रूरत नहीं, लेकिन निम्न बुनियादी बातें जानना उपयोगी होगा:

  • Java सिंटैक्स और ऑब्जेक्ट‑ओरिएंटेड कॉन्सेप्ट्स।
  • Maven डिपेंडेंसी मैनेजमेंट (हम इसको भी गाइड करेंगे)।
  • Try‑with‑resources स्टेटमेंट्स (सही रिसोर्स मैनेजमेंट के लिए)।

GroupDocs.Comparison क्यों?

आप सोच रहे होंगे – मेटाडेटा एक्सट्रैक्शन के लिए GroupDocs.Comparison क्यों? जबकि यह मुख्यतः दस्तावेज़ तुलना के लिए जाना जाता है, यह उत्कृष्ट दस्तावेज़ जानकारी निकालने की क्षमताएँ भी प्रदान करता है। साथ ही, यदि बाद में आपको तुलना फीचर चाहिए, तो आप पहले से ही तैयार हैं!

GroupDocs.Comparison for Java सेट‑अप करना

आइए आपका प्रोजेक्ट सही तरीके से कॉन्फ़िगर करें। यह चरण बहुत महत्वपूर्ण है – डिपेंडेंसीज़ गलत होने से सबसे आम समस्याओं में से एक आती है।

चरण 1: Maven कॉन्फ़िगरेशन

अपने pom.xml फ़ाइल में यह जोड़ें (सही सेक्शन में रखें):

<repositories>
   <repository>
      <id>repository.groupdocs.com</id>
      <name>GroupDocs Repository</name>
      <url>https://releases.groupdocs.com/comparison/java/</url>
   </repository>
</repositories>
<dependencies>
   <dependency>
      <groupId>com.groupdocs</groupId>
      <artifactId>groupdocs-comparison</artifactId>
      <version>25.2</version>
   </dependency>
</dependencies>

Pro tip: हमेशा GroupDocs वेबसाइट पर नवीनतम संस्करण संख्या जांचें – पुरानी संस्करणों से संगतता समस्याएँ हो सकती हैं।

चरण 2: लाइसेंस सेट‑अप (इसे न छोड़ें!)

GroupDocs.Comparison मुफ्त लाइब्रेरी नहीं है, लेकिन आपके पास विकल्प हैं:

  1. Free Trial: परीक्षण और छोटे प्रोजेक्ट्स के लिए परफेक्ट। डाउनलोड करें free trial page से।
  2. Temporary License: विकास और मूल्यांकन के लिए बढ़िया। आवेदन करें here
  3. Full License: प्रोडक्शन उपयोग के लिए। Purchase here

चरण 3: सेट‑अप वैरिफ़ाई करें

सब कुछ ठीक काम कर रहा है, यह सुनिश्चित करने के लिए एक सरल टेस्ट क्लास बनाएँ:

import com.groupdocs.comparison.Comparer;

public class SetupTest {
    public static void main(String[] args) {
        System.out.println("GroupDocs.Comparison is ready to use!");
        // We'll add actual functionality next
    }
}

इम्प्लीमेंटेशन गाइड: दस्तावेज़ मेटाडेटा चरण‑दर‑चरण निकालना

अब मज़े का हिस्सा – चलिए कुछ ऐसा कोड लिखते हैं जो वास्तव में उपयोगी हो!

java get file type – Comparer ऑब्जेक्ट इनिशियलाइज़ करें

Comparer क्लास आपके दस्तावेज़ जानकारी का गेटवे है। इसे सही तरीके से सेट‑अप करने का तरीका नीचे दिया गया है:

import com.groupdocs.comparison.Comparer;
import java.io.IOException;

try (Comparer comparer = new Comparer("YOUR_DOCUMENT_DIRECTORY/source_document.docx")) {
    // We'll extract info here
} catch (Exception e) {
    System.err.println("Error initializing comparer: " + e.getMessage());
}

यहाँ क्या हो रहा है?

  • हम try‑with‑resources का उपयोग कर रहे हैं ताकि सही क्लीन‑अप सुनिश्चित हो (मेमोरी लीक्स रोकने के लिए बहुत ज़रूरी)।
  • पाथ आपके वास्तविक दस्तावेज़ की ओर इशारा करना चाहिए।
  • एरर हैंडलिंग फ़ाइल न मिलने या एक्सेस समस्याओं जैसी समस्याओं को पकड़ती है।

डॉक्यूमेंट इन्फॉर्मेशन ऑब्जेक्ट प्राप्त करें

अब हम वह डॉक्यूमेंट इन्फो ऑब्जेक्ट लाते हैं जिसमें सभी मेटाडेटा होते हैं:

import com.groupdocs.comparison.interfaces.IDocumentInfo;

try (Comparer comparer = new Comparer("YOUR_DOCUMENT_DIRECTORY/source_document.docx")) {
    try (IDocumentInfo info = comparer.getSource().getDocumentInfo()) {
        // Extract metadata here
    }
} catch (Exception e) {
    System.err.println("Error retrieving document info: " + e.getMessage());
}

मुख्य बिंदु:

  • getSource() स्रोत दस्तावेज़ देता है।
  • getDocumentInfo() वह इंटरफ़ेस लौटाता है जिसमें सभी मेटाडेटा होते हैं।
  • एक और try‑with‑resources सुनिश्चित करता है कि हम सही ढंग से क्लीन‑अप करें।

उपयोगी डेटा निकालें

अब वास्तविक मेटाडेटा प्राप्त करते हैं:

try (Comparer comparer = new Comparer("YOUR_DOCUMENT_DIRECTORY/source_document.docx")) {
    try (IDocumentInfo info = comparer.getSource().getDocumentInfo()) {
        // Extract key information
        String fileType = info.getFileType().getFileFormat();
        int pageCount = info.getPageCount();
        long fileSize = info.getSize();
        
        // Display the results
        System.out.printf("File type: %s\n", fileType);
        System.out.printf("Number of pages: %d\n", pageCount);
        System.out.printf("Document size: %d bytes (%.2f KB)\n", 
                         fileSize, fileSize / 1024.0);
    }
} catch (Exception e) {
    System.err.println("Error extracting document info: " + e.getMessage());
}

प्रत्येक मेथड क्या रिटर्न करता है:

  • getFileType().getFileFormat(): फ़ाइल फ़ॉर्मेट (DOCX, PDF, TXT, आदि)।
  • getPageCount(): कुल पेजों की संख्या।
  • getSize(): बाइट्स में फ़ाइल आकार।

रियल‑वर्ल्ड उदाहरण: पूर्ण इम्प्लीमेंटेशन

यहाँ एक अधिक मजबूत उदाहरण है जिसे आप अपने प्रोजेक्ट्स में सीधे उपयोग कर सकते हैं:

import com.groupdocs.comparison.Comparer;
import com.groupdocs.comparison.interfaces.IDocumentInfo;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class DocumentMetadataExtractor {
    
    public static void extractDocumentInfo(String filePath) {
        // First, check if file exists
        Path path = Paths.get(filePath);
        if (!Files.exists(path)) {
            System.err.println("File not found: " + filePath);
            return;
        }
        
        try (Comparer comparer = new Comparer(filePath)) {
            try (IDocumentInfo info = comparer.getSource().getDocumentInfo()) {
                displayDocumentInfo(info, filePath);
            }
        } catch (Exception e) {
            System.err.println("Error processing file " + filePath + ": " + e.getMessage());
        }
    }
    
    private static void displayDocumentInfo(IDocumentInfo info, String filePath) {
        String fileName = Paths.get(filePath).getFileName().toString();
        String fileType = info.getFileType().getFileFormat();
        int pageCount = info.getPageCount();
        long fileSize = info.getSize();
        
        System.out.println("=== Document Information ===");
        System.out.printf("File name: %s\n", fileName);
        System.out.printf("File type: %s\n", fileType);
        System.out.printf("Pages: %d\n", pageCount);
        System.out.printf("Size: %d bytes (%.2f KB)\n", fileSize, fileSize / 1024.0);
        System.out.println("============================\n");
    }
    
    public static void main(String[] args) {
        // Test with different file types
        extractDocumentInfo("path/to/your/document.docx");
        extractDocumentInfo("path/to/your/document.pdf");
    }
}

सामान्य समस्याएँ और समाधान

समस्या 1: "File Not Found" एरर

लक्षण: Comparer इनिशियलाइज़ करते समय एक्सेप्शन फेंका जाता है
समाधान: हमेशा फ़ाइल पाथ और अस्तित्व की वैधता जांचें:

Path filePath = Paths.get(documentPath);
if (!Files.exists(filePath)) {
    throw new IllegalArgumentException("File does not exist: " + documentPath);
}
if (!Files.isReadable(filePath)) {
    throw new IllegalArgumentException("File is not readable: " + documentPath);
}

समस्या 2: बड़े फ़ाइलों के साथ मेमोरी समस्याएँ

लक्षण: OutOfMemoryError या धीमी परफ़ॉर्मेंस
समाधान: फ़ाइलों को एक‑एक करके प्रोसेस करें और सही रिसोर्स क्लीन‑अप सुनिश्चित करें:

// Always use try-with-resources
try (Comparer comparer = new Comparer(filePath)) {
    // Process immediately and don't store large objects
    processDocumentInfo(comparer.getSource().getDocumentInfo());
} // Resources automatically cleaned up here

समस्या 3: असमर्थित फ़ाइल फ़ॉर्मेट्स

लक्षण: कुछ फ़ाइलों को प्रोसेस करने पर एक्सेप्शन
समाधान: पहले सपोर्टेड फ़ॉर्मेट्स की जाँच करें:

public static boolean isSupportedFormat(String filePath) {
    String extension = FilenameUtils.getExtension(filePath).toLowerCase();
    return Arrays.asList("docx", "doc", "pdf", "txt", "rtf", "odt").contains(extension);
}

समस्या 4: प्रोडक्शन में लाइसेंस समस्याएँ

लक्षण: वॉटरमार्क या फ़ंक्शनलिटी लिमिटेशन
समाधान: सुनिश्चित करें कि आपका लाइसेंस सही ढंग से लागू किया गया है:

// Apply license at application startup
License license = new License();
license.setLicense("path/to/your/license.lic");

प्रोडक्शन उपयोग के लिए बेस्ट प्रैक्टिसेज

1. रिसोर्स मैनेजमेंट

ऑटोमैटिक क्लीन‑अप के लिए हमेशा try‑with‑resources का उपयोग करें:

// Good - resources cleaned up automatically
try (Comparer comparer = new Comparer(filePath);
     IDocumentInfo info = comparer.getSource().getDocumentInfo()) {
    // Process info
}

// Bad - potential memory leaks
Comparer comparer = new Comparer(filePath);
IDocumentInfo info = comparer.getSource().getDocumentInfo();
// Processing code
// Resources might not be cleaned up properly

2. एरर हैंडलिंग स्ट्रेटेजी

व्यापक एरर हैंडलिंग लागू करें:

public DocumentInfo extractSafely(String filePath) {
    try {
        return extractDocumentInfo(filePath);
    } catch (SecurityException e) {
        log.warn("Access denied for file: " + filePath, e);
        return null;
    } catch (IOException e) {
        log.error("I/O error processing file: " + filePath, e);
        return null;
    } catch (Exception e) {
        log.error("Unexpected error processing file: " + filePath, e);
        return null;
    }
}

3. परफ़ॉर्मेंस ऑप्टिमाइज़ेशन

कई फ़ाइलों को प्रोसेस करने के लिए बैचिंग पर विचार करें:

public List<DocumentInfo> processDocumentBatch(List<String> filePaths) {
    return filePaths.parallelStream()
                   .map(this::extractSafely)
                   .filter(Objects::nonNull)
                   .collect(Collectors.toList());
}

कब इस विधि का उपयोग करें बनाम अन्य अप्रोचेज़

GroupDocs.Comparison का उपयोग तब करें जब:

  • आपको विभिन्न Office फ़ॉर्मेट्स से भरोसेमंद मेटाडेटा एक्सट्रैक्शन चाहिए।
  • बाद में दस्तावेज़ तुलना फीचर की आवश्यकता हो सकती है।
  • आप जटिल दस्तावेज़ों के साथ काम कर रहे हैं जिन्हें सटीक पेज काउंट चाहिए।

विकल्पों पर विचार करें जब:

  • आपको केवल बेसिक फ़ाइल जानकारी चाहिए (फ़ाइल आकार, डेट्स के लिए java.nio.file.Files उपयोग करें)।
  • आप साधारण टेक्स्ट फ़ाइलों के साथ काम कर रहे हैं (बिल्ट‑इन Java API पर्याप्त है)।
  • बजट एक बड़ी बाधा है (पहले ओपन‑सोर्स विकल्प देखें)।

ट्रबलशूटिंग गाइड

इश्यू: कोड कंपाइल होता है लेकिन रन‑टाइम एक्सेप्शन फेंकता है

जाँचें:

  1. क्या आपका लाइसेंस सही ढंग से कॉन्फ़िगर है?
  2. क्या आप सही फ़ाइल पाथ उपयोग कर रहे हैं?
  3. क्या फ़ाइलों पर पढ़ने की अनुमति है?
  4. क्या फ़ाइल फ़ॉर्मेट वास्तव में सपोर्टेड है?

इश्यू: मेमोरी उपयोग लगातार बढ़ रहा है

समाधान:

  1. सुनिश्चित करें कि आप try‑with‑resources उपयोग कर रहे हैं।
  2. एक बार में कई फ़ाइलें लोड करने के बजाय एक‑एक करके प्रोसेस करें।
  3. किसी भी स्टैटिक रेफ़रेंस की जाँच करें जो ऑब्जेक्ट्स को रखे हुए हो सकते हैं।

इश्यू: कुछ मेटाडेटा फ़ील्ड्स null रिटर्न कर रहे हैं

यह सामान्य है जब:

  • फ़ाइल में वह प्रकार का मेटाडेटा नहीं होता।
  • फ़ाइल करप्ट या अधूरी हो।
  • फ़ॉर्मेट का वह वेरिएंट सपोर्टेड नहीं है।

मेटाडेटा उपयोग करने से पहले हमेशा null वैल्यू की जाँच करें।

निष्कर्ष और अगले कदम

आपके पास अब GroupDocs.Comparison for Java का उपयोग करके दस्तावेज़ मेटाडेटा निकालने की ठोस नींव है! हमने कवर किया:

✅ लाइब्रेरी और डिपेंडेंसीज़ को सही तरीके से सेट‑अप करना
java get file type और अन्य प्रमुख दस्तावेज़ गुण
✅ सामान्य एरर और एज केसों को हैंडल करना
✅ प्रोडक्शन एनवायरनमेंट्स के लिए बेस्ट प्रैक्टिसेज
✅ सामान्य समस्याओं के लिए ट्रबलशूटिंग गाइड

आगे क्या करें?

अब जब आपके पास मेटाडेटा एक्सट्रैक्शन है, तो आप विचार कर सकते हैं:

  • डॉक्यूमेंट तुलना फीचर का उपयोग करके बदलाव ट्रैक करना।
  • Spring Boot के साथ इंटीग्रेशन करके वेब एप्लिकेशन बनाना।
  • बैच प्रोसेसिंग के ज़रिए कई फ़ाइलों को कुशलता से हैंडल करना।
  • कस्टम मेटाडेटा एक्सट्रैक्शन विशेष फ़ाइल प्रकारों के लिए।

और गहराई में जाना चाहते हैं? उन्नत फीचर्स और उदाहरणों के लिए आधिकारिक GroupDocs दस्तावेज़ीकरण देखें।

अक्सर पूछे जाने वाले प्रश्न

प्र: क्या मैं पासवर्ड‑प्रोटेक्टेड दस्तावेज़ों से मेटाडेटा निकाल सकता हूँ?
उ: हाँ, लेकिन Comparer ऑब्जेक्ट इनिशियलाइज़ करते समय पासवर्ड प्रदान करना होगा। लोड ऑप्शन्स को स्वीकार करने वाले ओवरलोडेड कंस्ट्रक्टर का उपयोग करें।

प्र: मेटाडेटा एक्सट्रैक्शन के लिए कौन‑से फ़ाइल फ़ॉर्मेट सपोर्टेड हैं?
उ: GroupDocs.Comparison अधिकांश सामान्य दस्तावेज़ फ़ॉर्मेट्स को सपोर्ट करता है जैसे DOCX, PDF, XLSX, PPTX, TXT, RTF, और कई अन्य। पूरी लिस्ट के लिए उनकी डॉक्यूमेंटेशन देखें।

प्र: क्या Office दस्तावेज़ों से कस्टम प्रॉपर्टीज़ निकालना संभव है?
उ: बेसिक डॉक्यूमेंट इन्फो मुख्यतः स्टैंडर्ड प्रॉपर्टीज़ को कवर करता है। कस्टम प्रॉपर्टीज़ के लिए आपको अतिरिक्त GroupDocs लाइब्रेरीज़ या अन्य टूल्स का उपयोग करना पड़ सकता है।

प्र: बहुत बड़ी फ़ाइलों को मेमोरी खत्म हुए बिना कैसे हैंडल करें?
उ: हमेशा try‑with‑resources उपयोग करें, फ़ाइलों को एक‑एक करके प्रोसेस करें, और बैच प्रोसेसिंग के लिए स्ट्रीम‑बेस्ड अप्रोच अपनाएँ। साथ ही अपने JVM में पर्याप्त हीप स्पेस सुनिश्चित करें।

प्र: क्या यह क्लाउड स्टोरेज में रखी फ़ाइलों के साथ काम कर सकता है?
उ: हाँ, लेकिन आपको फ़ाइल को पहले लोकली डाउनलोड करना होगा या स्ट्रीम‑बेस्ड अप्रोच अपनाना होगा। GroupDocs लोकल फ़ाइलों और स्ट्रीम्स दोनों के साथ काम करता है।

प्र: लाइसेंस एरर मिलने पर क्या करें?
उ: सुनिश्चित करें कि आपने एप्लिकेशन स्टार्टअप पर लाइसेंस सही ढंग से लागू किया है और लाइसेंस एक्सपायर नहीं हुआ है। यदि समस्या बनी रहे तो GroupDocs सपोर्ट से संपर्क करें।

प्र: क्या यह मल्टी‑थ्रेडेड एप्लिकेशन में सुरक्षित है?
उ: हाँ, लेकिन प्रत्येक थ्रेड के लिए अलग Comparer इंस्टेंस बनाएँ। इंस्टेंस को थ्रेड्स के बीच शेयर न करें।

Additional Resources


Last Updated: 2026-01-18
Tested With: GroupDocs.Comparison 25.2
Author: GroupDocs