2015-01-26 14 views
6

मैं अपने वेबव्यू सामग्री से पीडीएफ दस्तावेज़ बनाने के लिए एंड्रॉइड (link) से पीडीएफडी दस्तावेज़ ढांचे का उपयोग कर रहा हूं। पीडीएफ अच्छी तरह से बनाया गया है लेकिन यह केवल एक पेज दस्तावेज़ है। जब वेबव्यू सामग्री बड़ी होती है तो मुझे एक बहुआयामी दस्तावेज़ बनाने की आवश्यकता होती है। मुझे पेग में वेब सामग्री सामग्री को चलाने की ज़रूरत है। इसे कैसे प्राप्त किया जा सकता है? मैं iText या किसी तीसरे पक्ष की लाइब्रेरी का उपयोग नहीं करना चाहता हूं।एंड्रॉइड वेबव्यू से कई पेजों के साथ पीडीएफ दस्तावेज बनाते हैं

कृपया मदद की ज़रूरत है। अग्रिम में धन्यवाद।

// create a new document 
PdfDocument document = new PdfDocument(); 

// create a page description 
PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(width, height, 1).create(); 

// start a page 
PdfDocument.Page page = document.startPage(pageInfo); 

// draw something on the page 
View content = myWebview; 
content.draw(page.getCanvas()); 

// finish the page 
document.finishPage(page); 

FileOutputStream fos; 
try { 
    fos = new FileOutputStream(fileNameWithPath, false); 
    // write the document content 
    document.writeTo(fos); 

} catch (FileNotFoundException e) { 
    e.printStackTrace(); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 

// close the document 
document.close(); 
+0

क्या आपको कोई समाधान मिला है? मैं इसे हल करने की कोशिश भी कर रहा हूं। – Annabelle

उत्तर

2

आप तो कई पेज बनाने के लिए चाहते हैं, बस हर पृष्ठ है कि आप अपने दस्तावेज़ में बनाना चाहते हैं के लिए कॉल प्रारंभ पृष्ठ() और finishPage()।
कुछ इस तरह:

// create document 
PdfDocument document = new PdfDocument(); 

// create a page description 
PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(width, height, 1).create(); 

// start 1st page 
PdfDocument.Page page = document.startPage(pageInfo); 
// draw something on the page 
View content = myWebview; 
content.draw(page.getCanvas()); 
// finish 1st page 
document.finishPage(page); 

// start 2nd page 
PdfDocument.Page page = document.startPage(pageInfo); 
// draw something on the page 
View content = someOtherWebview; 
content.draw(page.getCanvas()); 
// finish 2nd page 
document.finishPage(page); 

// and so on... 

FileOutputStream fos; 
try { 
    fos = new FileOutputStream(fileNameWithPath, false); 
    // write the document content 
    document.writeTo(fos); 

} catch (FileNotFoundException e) { 
    e.printStackTrace(); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 

// close the document 
document.close(); 
+0

मुझे पता है कि मैं और पेज जोड़ सकता हूं, लेकिन मैं जो चाहता हूं वह वेब पेज सामग्री को एकाधिक पृष्ठों में विभाजित करना है यदि वह सामग्री आईएसओ ए 4 पेज के लिए बहुत लंबी है। – user3065901

+0

ठीक है, मुझे आपकी सामग्री लंबी सामग्री के लिए मिलती है। मैं नहीं देखता कि आप कितने पृष्ठों पर सामग्री खंडों को छोटा कर सकते हैं और फैला सकते हैं। हो सकता है कि आप अपने वेबव्यू की ऊंचाई प्राप्त कर सकें और अपने कैनवास को स्केल कर सकें? – rtome

0

मैं पिछले कुछ दिनों के लिए यह एक ही मुद्दा हो रही थी, तो मैं राकेश Gopathi से इस answer पाया, यह दोषरहित काम किया। मैं वास्तव में किसी को भी अनुशंसा करता हूं जो इसे देखने के लिए देशी PdfDocument कक्षाओं का उपयोग कर रहा है।

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