android - एंड्रॉइड प्रोजेक्ट में पीडीएफबॉक्स कैसे जोड़ें या वैकल्पिक सुझाव दें




pdf pdfbox (4)

मुझे लगता है कि पुस्तकालय वर्ग फ़ाइलों को एपीके फ़ाइल में शामिल नहीं किया गया है। लाइब्रेरी कक्षाओं को डीईएक्स फाइलों में परिवर्तित करने की आवश्यकता है, फिर केवल यह पता लगाया जाएगा। कृपया देखें http://developer.android.com/guide/developing/building/index.html

मैं एक मौजूदा पीडीएफ फ़ाइल खोलने का प्रयास कर रहा हूं और फिर एक एंड्रॉइड एप्लिकेशन के भीतर से पीडीएफ दस्तावेज़ में एक और पेज जोड़ सकता हूं। जोड़े गए पृष्ठ पर, मुझे कुछ टेक्स्ट और एक छवि जोड़ने की ज़रूरत है।

मैं पीडीएफबॉक्स को एक कोशिश देना चाहता हूं। ITextPDF जैसे अन्य समाधान लाइसेंसिंग शर्तों / मूल्य के कारण हमारी कंपनी के लिए उपयुक्त नहीं हैं।

मेरे पास मुख्य कोड बेस के साथ एक लाइब्रेरी प्रोजेक्ट है, और लाइब्रेरी प्रोजेक्ट का संदर्भ देने वाली पूर्ण और लाइट परियोजनाएं भी हैं।

मैंने http://pdfbox.apache.org/download.html से जार डाउनलोड किया है और इसे लाइब्रेरी प्रोजेक्ट्स lib फ़ोल्डर में कॉपी किया है और जावा बिल्ड पथ पुस्तकालयों में pdfbox-app-1.6.0.jar फ़ाइल को जोड़ा है।

मैं पुस्तकालयों को सफलतापूर्वक आयात करने में सक्षम हूं जैसे import org.apache.pdfbox.pdmodel.PDDocument; और सभी परियोजनाओं को संकलित करें। हालांकि जब मैं एप्लिकेशन चलाता हूं तो यह PDDocument document = new PDDocument(); पर दुर्घटनाग्रस्त हो जाता है PDDocument document = new PDDocument(); निम्नलिखित त्रुटि के साथ।

ई / एंड्रॉइड रनटाइम (24451): java.lang.NoClassDefFoundError: org.apache.pdfbox.pdmodel.PDDocument

मैंने कहीं पढ़ा है कि पीडीएफबॉक्स के संस्करण 1.5 ने एंड्रॉइड के साथ काम नहीं किया है इसलिए मैंने पीडीएफबॉक्स-ऐप-1.4.0.जर फ़ाइल डाउनलोड करने का प्रयास किया लेकिन मुझे एक ही समस्या मिली। मैंने अपनी पूर्ण और लाइट परियोजनाओं में बिल्ड पथ में लाइब्रेरी भी जोड़ा लेकिन मुझे एक ही त्रुटि या ग्रहण स्मृति त्रुटि से बाहर दुर्घटनाग्रस्त हो गया।

कोई मुझे बता सकता हैं मुझसे क्या गलती हो रही है? क्या मैंने गलत फाइल डाउनलोड की है? क्या मैंने इसे सही तरीके से आयात किया है?

धन्यवाद,


पीडीएफबॉक्स का एंड्रॉइड पोर्ट

पीडीएफबॉक्स का एक मुफ्त एंड्रॉइड पोर्ट यहां उपलब्ध है:

https://github.com/TomRoush/PdfBox-Android


पीडीएफबॉक्स गैर यूआई कार्यों के लिए भी जावा अल्ट और स्विंग का उपयोग करता है, मैंने संदर्भों को हटाने की कोशिश की है लेकिन बहुत सारी फाइलें हैं, और मैं बहुत अधिक सामान निकाल रहा था

मैंने अभी पीडीएफजेट का परीक्षण किया है http://pdfjet.com/os/edition.html यह बीएसडी लाइसेंस प्राप्त है (अधिक सुविधाओं के साथ वाणिज्यिक संस्करण), इस नमूना कोड के साथ (example_03.java से फिसल गया) मैं एक जेपीईजी को परिवर्तित करने में सक्षम था एक पीडीएफ

    FileOutputStream fos = null;
    try
    {
        fos = new FileOutputStream("/sdcard/sample.pdf");
        PDF pdf = new PDF(fos);
        InputStream f = getApplicationContext().getAssets().open("img0.jpg"); 
        Image image = new Image(pdf, f, ImageType.JPEG);
        Page page = new Page(pdf, A4.PORTRAIT);
        image.setPosition(0, 0);
        image.drawOn(page);
        pdf.flush();
        fos.close();
    } catch (Exception e)
    {
        e.printStackTrace();
    }

मुझे यहां लिंक मिला है http://java-source.net/open-source/pdf-libraries


एंड्रॉइड स्टूडियो 1.5 में यह मेरे लिए काम करता है

प्रोजेक्ट में जहां आप बाहरी लाइब्रेरी प्रोजेक्ट जोड़ना चाहते हैं, मेनू पर जाएं -> नया -> * नया मॉड्यूल आयात करें **, लाइब्रेरी प्रोजेक्ट पर नेविगेट करें जिसे आप अपनी प्रोजेक्ट में जोड़ना चाहते हैं, 'लाइब्रेरी' मॉड्यूल जोड़ने के लिए चुनें आपका प्रोजेक्ट। आपको अपनी परियोजनाओं में सेटिंग्स मिल जाएगी। ऐप के बगल में, लाइब्रेरी शामिल है, इस तरह कुछ:

include ':app', ':library'

निर्भरता अनुभाग में build.gradle (मॉड्यूल: ऐप) में जोड़ें:

संकलन परियोजना ('पुस्तकालय')

परियोजना को पुनर्निर्माण करें, और यही वह है।

* आप जितनी चाहें उतने पुस्तकालयों (मॉड्यूल) जोड़ सकते हैं। उस मामले में सेटिंग्स में। Gradle आप होगा:

 include ':app', ':lib1', ':lib2', ...

और build.gradle में, आपको यह करना होगा:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])

    // Some other dependencies...

    compile project(':lib1')
    compile project(':lib2')
    ...
}




android pdf pdfbox