2008-09-16 27 views

उत्तर

4

AFAIK C# में पीडीएफ को संभालने के लिए कोई अंतर्निहित समर्थन नहीं है, इसलिए आप जो भी पूछ रहे हैं वह किसी तृतीय पक्ष घटक या सीओटीएस लाइब्रेरी का उपयोग किए बिना नहीं किया जा सकता है।

पुस्तकालयों के संबंध में संभावनाओं की असंख्य संभावनाएं हैं। बस कुछ ही बात करने के लिए:

http://csharp-source.net/open-source/pdf-libraries

http://www.codeproject.com/KB/graphics/giospdfnetlibrary.aspx

http://www.pdftron.com/net/index.html

6

.नेट फ्रेमवर्क संशोधित/पीडीएफ़ बनाने की क्षमता नहीं है। आप जो भी खोज रहे हैं उसे पूरा करने के लिए आपको किसी तृतीय पक्ष घटक की आवश्यकता है।

22

मुझे नहीं लगता कि आप कर सकते हैं। ओपनसॉर्स घटक पीडीएफशर्प में कार्यक्षमता है, और एक अच्छा source code sample on file combining

+5

अपने नए साइट पर नमूने: http://www.pdfsharp.net/wiki/PDFsharpSamples.ashx –

+0

मैं जानता हूँ कि यह पुराना है, लेकिन मैं इस उत्तर का पालन किया और पता चला कि PDFSharp अभी भी के लिए समर्थन लागू नहीं किया पीडीएफ के अधिक आधुनिक संस्करण ... आपको सभी पीडीएफ के लिए काम करने के लिए हुप्स के माध्यम से कूदने की आवश्यकता हो सकती है। इसमें कूदने से पहले इसे देखें: http://forum.pdfsharp.net/viewtopic.php?f=2&t=693 –

5

जैसा कि अन्य ने कहा है, उस कार्य को करने के लिए कुछ भी नहीं बनाया गया है। इस example code के साथ iTextSharp का उपयोग करें।

+3

मुझे लगता है कि किसी को हमेशा यह नोट करना चाहिए कि iTextSharp एजीपीएल लाइसेंस का उपयोग करता है, जिसके लिए आपको अपना सोर्स कोड जारी करना होगा iTextSharps उपयोग को उचित रूप से दस्तावेज के साथ। हालांकि, उनके पास व्यावसायिक लाइसेंसिंग उपलब्ध है। सावधान रहें कि आप इसका उपयोग कैसे करते हैं! – Encryption

0

हालांकि यह पहले से ही कहा जा चुका है, आप .NET Framework के अंतर्निहित पुस्तकालयों के साथ पीडीएफ में हेरफेर नहीं कर सकते हैं। हालांकि मैं iTextSharp की सिफारिश कर सकता हूं, जो जावा iText का .NET पोर्ट है। मैंने इसके साथ खेला है, और इसे उपयोग करने के लिए एक बहुत ही आसान उपकरण पाया है।

3

जाना मुझे नहीं लगता कि .नेट फ्रेमवर्क पुस्तकालयों की तरह इस तरह के शामिल करते तरीका है। मैंने पीडीएफ फाइलों को गठबंधन करने के लिए C# के साथ iTextsharp का उपयोग किया। मुझे लगता है कि iTextsharp ऐसा करने का सबसे आसान तरीका है। यहां इस्तेमाल किया गया कोड है।

string[] lstFiles=new string[3]; 
    lstFiles[0][email protected]"C:/pdf/1.pdf"; 
    lstFiles[1][email protected]"C:/pdf/2.pdf"; 
    lstFiles[2][email protected]"C:/pdf/3.pdf"; 

    PdfReader reader = null; 
    Document sourceDocument = null; 
    PdfCopy pdfCopyProvider = null; 
    PdfImportedPage importedPage; 
    string [email protected]"C:/pdf/new.pdf"; 


    sourceDocument = new Document(); 
    pdfCopyProvider = new PdfCopy(sourceDocument, new System.IO.FileStream(outputPdfPath, System.IO.FileMode.Create)); 

    //Open the output file 
    sourceDocument.Open(); 

    try 
    { 
     //Loop through the files list 
     for (int f = 0; f < lstFiles.Length-1; f++) 
     { 
      int pages =get_pageCcount(lstFiles[f]); 

      reader = new PdfReader(lstFiles[f]); 
      //Add pages of current file 
      for (int i = 1; i <= pages; i++) 
      { 
       importedPage = pdfCopyProvider.GetImportedPage(reader, i); 
       pdfCopyProvider.AddPage(importedPage); 
      } 

      reader.Close(); 
     } 
     //At the end save the output file 
     sourceDocument.Close(); 
    } 
    catch (Exception ex) 
    { 
     throw ex; 
    } 


private int get_pageCcount(string file) 
{ 
    using (StreamReader sr = new StreamReader(File.OpenRead(file))) 
    { 
     Regex regex = new Regex(@"/Type\s*/Page[^s]"); 
     MatchCollection matches = regex.Matches(sr.ReadToEnd()); 

     return matches.Count; 
    } 
} 
+0

क्या यह सही या उपयोगी है कृपया उत्तर दें –

+0

धन्यवाद! आखिरी मिनट बचाओ जब मुझे इसकी ज़रूरत थी। यह भी तेज़ है! –

संबंधित मुद्दे