2011-01-14 18 views
17

का उपयोग कर पीडीएफ को जेपीजी या पीएनजी में कनवर्ट करें मुझे पीडीएफ फाइल को छवियों में कनवर्ट करने की आवश्यकता है। मैंने परीक्षण उद्देश्यों के लिए उपयोग किया "कुल पीडीएफ कनवर्टर" जो एक कमांड लाइन प्रदान करता है, लेकिन यह शेयरवेयर है और मुझे एक मुफ्त विकल्प खोजने की आवश्यकता है।सी # या कमांड लाइन

क्या कोई इस तरह के एक उपकरण या शायद एक मुफ्त सी # पुस्तकालय जानता है?

उत्तर

16
ImageMagick बंडल से

convert उपकरण (या magicksince version 7) ऐसा कर सकते हैं (और भी बहुत कुछ शामिल)।

इसके सरलतम रूप में, यह सिर्फ

convert myfile.pdf myfile.png 

या

magick myfile.pdf myfile.png 
+1

तहत Windows बाइनरी पा सकते हैं इस जवाब पर विस्तार करने के लिए, आप http://www.csharp-station.com/HowTo/ProcessStart.aspx –

+1

मैं ImageMagick और यह कोशिश की है का प्रयोग करेंगे छवि रूपांतरण में बहुत अच्छी तरह से काम करता है। पीडीएफ के साथ काम करने के लिए आपको GhostScript भी इंस्टॉल करना होगा। http://sourceforge.net/projects/ghostscript/ –

+0

मैंने कोशिश की लेकिन किसी कारण से मुझे केवल बीच में एक ब्लैक लाइन और साइड पर कुछ यादृच्छिक पाठ वाला एक सफेद पृष्ठ मिलता है .. – Martin

1

आप नीली लपटें तेज का उपयोग करना चाहिए है। यह पीडीएफ में हेरफेर करने के लिए एक ओपन सोर्स जावा परियोजना का एक बंदरगाह है। http://sourceforge.net/projects/itextsharp/

+4

मैं इसका उपयोग जीपीएल लाइसेंस के कारण नहीं कर सकता ... – Martin

2

आप इस नि: शुल्क समाधान भी देखना चाहें

http://www.codeproject.com/Articles/32274/How-To-Convert-PDF-to-Image-Using-Ghostscript-API

यह आसानी से छवियों पीडीएफ (एकल फाइल या एक से अधिक फ़ाइलों) है खुला स्रोत कनवर्ट करते हैं, और Ghostscript (मुफ्त डाउनलोड) का उपयोग

इसके उपयोग का उदाहरण:

converter = new PDFConverter(); 
converter.JPEGQuality = 90; 
converter.OutputFormat = "jpg"; 
string output = "output.jpg"; 
converter.Convert("input.pdf", output); 
5

questio एन काफी पुराना है, लेकिन हाल ही में मुझे यह समाधान मिला है जो मेरे लिए काम करता है: https://github.com/jhabjan/Ghostscript.NET। यह एक nuget डाउनलोड के रूप में भी उपलब्ध है।

private static void Test() 
    { 
     var localGhostscriptDll = Path.Combine(Environment.CurrentDirectory, "gsdll64.dll"); 
     var localDllInfo = new GhostscriptVersionInfo(localGhostscriptDll); 

     int desired_x_dpi = 96; 
     int desired_y_dpi = 96; 

     string inputPdfPath = "test.pdf"; 

     string outputPath = Environment.CurrentDirectory; 

     GhostscriptRasterizer _rasterizer = new GhostscriptRasterizer(); 

     _rasterizer.Open(inputPdfPath, localDllInfo, false); 

     for (int pageNumber = 1; pageNumber <= _rasterizer.PageCount; pageNumber++) 
     { 
      string pageFilePath = Path.Combine(outputPath, "Page-" + pageNumber.ToString() + ".png"); 

      Image img = _rasterizer.GetPage(desired_x_dpi, desired_y_dpi, pageNumber); 
      img.Save(pageFilePath, ImageFormat.Png); 
     } 

     _rasterizer.Close(); 
    } 
+1

चेतावनी: अंत में _rasterizer.Close() को कॉल करना न भूलें। (यह महत्वपूर्ण है और उदाहरण के लिए यदि आप इस कोड का उपयोग लूप में करेंगे तो अपवाद से बचें)। – bau

+0

क्या 'GetPage' का कोई विकल्प है जो आपको पूरा करने वाला पूरा दस्तावेज़ प्राप्त करेगा? – rogerdeuce

0

2JPEG कमांड लाइन टूल यह कर सकते हैं, जैसे:

2jpeg.exe -src "C:

यहाँ PNG छवियों में सभी पीडीएफ पृष्ठों परिवर्तित करने के लिए नमूना कोड है \ में । \ * पीडीएफ "-dst" C: \ आउट "

+0

क्षमा करें, लेकिन यह बहुत सारी त्रुटियों के साथ काम नहीं करता है। – Turtle

+0

हाय टर्टल, क्या आप कृपया मुझे 2 जेपीईजी त्रुटियों के बारे में अधिक जानकारी बता सकते हैं? –

7

यह एक पुरानी सवाल है, लेकिन एक GhostScript जवाब के रूप में याद आ रही है और मल्टीपेज पीडीएफ निर्यात के लिए कोई संकेत अभी तक नहीं है मैं जोड़ने लगता है एक और संस्करण ठीक है।

gs -dBATCH -dNOPAUSE -sDEVICE=pnggray -r300 -dUseCropBox -sOutputFile=item-%03d.png examples.pdf 

विकल्प वर्णन:

  • dBatch और dNOPAUSE सिर्फ बैच मोड है, जो कम या ज्यादा यह किसी भी सवाल पूछने नहीं होगी में चलाने के लिए जी एस बताओ। यदि आप बैश स्क्रिप्ट में कमांड चलाने के लिए चाहते हैं तो वे पैरामीटर भी महत्वपूर्ण हैं।
  • sDEVICE जीएस बताता है कि आउटपुट प्रारूप किस उत्पादन के लिए है। pnggray 2412 बिट आरजीबी रंग के लिए ग्रेस्केल, png16m के लिए है। यदि आप बनाने पर जोर देते हैं तो जेपीईजी रंग जेपीईजी फाइलों का उत्पादन करने के लिए -sDEVICE=jpeg का उपयोग करें।-dJPEGQ=N का उपयोग करें (एन 0 से 100 का एक पूर्णांक है, डिफ़ॉल्ट 75) पैरामीटर जेपीजीजी गुणवत्ता को नियंत्रित करने के लिए।
  • -r300 स्कैन रिज़ॉल्यूशन 300dpi पर सेट करता है। यदि आप छोटे आउटपुट आकारों को -r70 का उपयोग करते हैं या यदि आप इनपुट करते हैं तो पीडीएफ में उच्च पुनर्वसन का उपयोग होता है -r600। यदि आपके पास 300 डीपीआई वाला पीडीएफ है और निर्दिष्ट करें- आपकी छवियों को अपरिवर्तित किया जाएगा।
  • -dUseCropBox परिभाषित किए गए क्रॉपबॉक्स का उपयोग करने के लिए जीएस को बताएं। एक क्रॉपबॉक्स पृष्ठ पर ब्याज का एक क्षेत्र निर्दिष्ट करता है। यदि आपके पास बड़े सफेद मार्जिन वाला पीडीएफ है और आप अपने आउटपुट पर यह मार्जिन नहीं चाहते हैं तो यह विकल्प सहायता हो सकता है।
  • -sOutputFile आउटपुट फ़ाइल के नाम (ओं) को परिभाषित करता है। % 03d.png भाग जीएस को कई फाइलों के लिए काउंटर शामिल करने के लिए कहता है। एक दो पेज पीडीएफ परिणामस्वरूप आइटम -001.png और आइटम -002.png नाम की दो फाइलों का परिणाम होगा।
  • पिछले (अनाम पैरामीटर इनपुट फ़ाइल है।)

उपलब्धता: ImageMagick की परिवर्तित आदेश का उपयोग करता है gs आंतरिक रूप से आदेश। यदि आप imagemagick के साथ एक पीडीएफ कन्वर्ट कर सकते हैं, तो आपके पास पहले से ही जीएस इंस्टॉल है।

स्थापित Ghostscript:

RHEL:

yum install ghostscript 

SLES:

zypper install ghostscript 

Debian/Ubuntu:

sudo apt-get install ghostscript 

विंडोज:

आप http://www.ghostscript.com/download/gsdnld.html