PDF दस्तावेज़ हेरफेर Java में

Aspose.PDF FOSS Java के लिए मौजूदा PDF दस्तावेज़ों को हेरफेर करने के लिए APIs का समृद्ध सेट प्रदान करता है — विभाजन, संयोजन, पृष्ठ निकालना, पृष्ठ रेंज सम्मिलित करना, और पृष्ठों के भीतर सामग्री का आकार बदलना। ये क्षमताएँ PdfFileEditor में और इसके सहयोगी वर्गों ContentsResizeParameters और ContentsResizeValue में समाहित हैं।

PdfFileEditor: मुख्य पृष्ठ संचालन

PdfFileEditor वर्ग उच्च-स्तरीय PDF फ़ाइल संचालन के लिए प्रमुख सुविधा है। यह कई PDF फ़ाइलों को संयोजित करने, पृष्ठ उपसमुच्चय निकालने, दस्तावेज़ को व्यक्तिगत पृष्ठों में विभाजित करने, और किसी दस्तावेज़ से दूसरे में विशिष्ट स्थान पर पृष्ठ सम्मिलित करने के लिए विधियाँ प्रदान करता है।

PdfFileEditor editor = new PdfFileEditor();
// Concatenate two documents into one
editor.concatenate("first.pdf", "second.pdf", "combined.pdf");
// Extract pages 2 through 5 to a new file
editor.extract("source.pdf", 2, 5, "extracted.pdf");

मुख्य विधियों में शामिल हैं:

  • concatenate(inputFiles, outputFile) — क्रम में कई दस्तावेज़ों को मिलाता है
  • extract(inputFile, startPage, endPage, outputFile) — एक निरंतर रेंज निर्यात करता है
  • extract(inputFile, pageNumbers, outputFile) — एक असतत सेट को निर्यात करता है
  • splitToPages(inputFile) — प्रत्येक पृष्ठ पर एक ByteArrayOutputStream में विभाजित करता है
  • insert(inputFile, insertPosition, portFile, startPage, endPage, outputFile) — एक सीमा सम्मिलित करता है
  • delete(inputFile, pageNumbers, outputFile) — विशिष्ट पृष्ठों को हटाता है
  • append(inputFile, portFile, startPage, endPage, outputFile) — एक पृष्ठ रेंज जोड़ता है

बड़ी फ़ाइलों के लिए, setUseDiskBuffer(true) आंतरिक स्टोरेज को हीप से डिस्क में बदल देता है।

ContentsResizeParameters के साथ सामग्री का आकार बदलना

PdfFileEditor.resizeContents() मौजूदा पृष्ठ सीमाओं के भीतर सामग्री को समायोजित करता है। प्रत्येक मार्जिन — बाएँ, दाएँ, ऊपर, नीचे — और सामग्री की चौड़ाई तथा ऊँचाई को ContentsResizeValue इंस्टैंसेस के रूप में निर्दिष्ट किया जाता है, जिसे फ़ैक्टरी मेथड्स ContentsResizeValue.percents(value) या ContentsResizeValue.units(value) द्वारा निर्मित किया जाता है।

try (Document doc = new Document("input.pdf")) {
    PdfFileEditor editor = new PdfFileEditor();
    ContentsResizeParameters params = new ContentsResizeParameters(
        ContentsResizeValue.percents(10),   // left margin
        ContentsResizeValue.percents(80),   // content width
        ContentsResizeValue.percents(10),   // right margin
        ContentsResizeValue.percents(10),   // top margin
        ContentsResizeValue.percents(80),   // content height
        ContentsResizeValue.percents(10)    // bottom margin
    );
    editor.resizeContents(doc, params);
    doc.save("resized.pdf");
}

ContentsResizeParameters के छह-तर्क वाले कंस्ट्रक्टर में मान क्रम में स्वीकार करता है: leftMargin, contentsWidth, rightMargin, topMargin, contentsHeight, bottomMargin। सभी छह का योग प्रतिशत-आधारित मानों के उपयोग पर 100% होना चाहिए, या पूर्णांक बिंदु मानों के उपयोग पर पृष्ठ आयामों के बराबर होना चाहिए।

विशिष्ट पृष्ठों का आकार बदलना

जब केवल पृष्ठों का एक उपसमुच्चय आकार बदलने की आवश्यकता रखता है, तो वह ओवरलोड जो पृष्ठ संख्याओं के पूर्णांक एरे को स्वीकार करता है, उन पृष्ठों को लक्षित करता है जबकि बाकी को अपरिवर्तित छोड़ देता है:

PdfFileEditor editor = new PdfFileEditor();
ContentsResizeParameters params = new ContentsResizeParameters(
    ContentsResizeValue.units(28),   // left margin in points
    ContentsResizeValue.units(540),  // content width
    ContentsResizeValue.units(28),   // right margin
    ContentsResizeValue.units(28),   // top margin
    ContentsResizeValue.units(786),  // content height
    ContentsResizeValue.units(28)    // bottom margin
);
// Only resize pages 1 and 3
editor.resizeContents(doc, new int[]{1, 3}, params);

ContentsResizeValue.getValue() और isPercent() संग्रहीत मान की जांच करने और यह निर्धारित करने की अनुमति देते हैं कि यह प्रतिशत है या एक पूर्णांक बिंदु गणना।

बुकलेट और N-अप लेआउट

PdfFileEditor में makeBooklet() शामिल है जो दो-तरफ़ा बुकलेट क्रम में पृष्ठों को व्यवस्थित करता है और makeNUp() कई पृष्ठों को प्रति शीट टाइल करने के लिए। दोनों विधियाँ फ़ाइल पथ या स्ट्रीम स्वीकार करती हैं:

PdfFileEditor editor = new PdfFileEditor();
// Print as a folded booklet
editor.makeBooklet("input.pdf", "booklet.pdf");
// Tile 2 columns × 3 rows per sheet
editor.makeNUp("input.pdf", "nup.pdf", 2, 3);

PdfPageEditor: प्रति-पृष्ठ ज़ूम नियंत्रण

PdfPageEditor व्यक्तिगत पृष्ठ गुणों जैसे ज़ूम स्तर को लक्षित करता है। setZoom() एक फ्लोट गुणक स्वीकार करता है जो दस्तावेज़ को व्यूअर में खोलते समय प्रारंभिक आवर्धन को नियंत्रित करता है:

PdfPageEditor pageEditor = new PdfPageEditor();
pageEditor.bindPdf("input.pdf");
pageEditor.setZoom(1.5f);
pageEditor.save("zoomed.pdf");

0.0 के मान या नकारात्मक मान अस्वीकार किए जाते हैं — उन मामलों में getZoom() 1.0 लौटाता है। इससे PdfPageEditor उन दस्तावेज़ों को तैयार करने के लिए उपयुक्त बनता है जिन्हें अभिगम्यता या कियोस्क डिस्प्ले उपयोग मामलों के लिए एक विशिष्ट आवर्धन पर खुलना आवश्यक है।

शुरू करना

Maven निर्भरता जोड़ें और facades पैकेज आयात करें:

<dependency>
  <groupId>org.aspose</groupId>
  <artifactId>aspose-pdf-foss</artifactId>
  <version>26.8.0</version>
</dependency>
import org.aspose.pdf.*;
import org.aspose.pdf.facades.*;

Aspose.PDF FOSS for Java MIT-licensed है और https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-Java पर उपलब्ध है।

संबंधित संसाधन