2015-01-26 28 views
6

Web sayfasındaki içerikten pdf oluşturmak için PdfDocument frameworkünü kullanıyorum (link). Pdf iyi oluşturuldu ama sadece bir sayfa belgesi. Web görüntüleme içeriği büyük olduğunda, bir çok sayfalı belge oluşturmam gerekiyor. TÜM İHTİYAÇLARIM SİTEDEKİ WEBVIEW İÇERİĞİNİ SÖYLEDİR. Bunu nasıl başarabilirim? iText veya herhangi bir üçüncü parti kütüphanesini kullanmak istemiyorum.Android, çoklu sayfalarda web sayfasından pdf belgesi oluştur

Yardım gerekiyor. Şimdiden teşekkürler. Sonra birden fazla sayfa oluşturmak istiyorsanız

// 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

Bir çözüm buldunuz mu? Ben de çözmeye çalışıyorum. – Annabelle

cevap

2

sadece size belgede oluşturmak istediğiniz her sayfa için StartPage() ve finishPage() diyoruz. Böyle
şey:

// 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

Daha fazla sayfa ekleyebileceğimi biliyorum, ancak istediğim, bu içeriğin bir ISO A4 sayfası için çok uzun olması durumunda, web sayfası içeriğini birden fazla sayfada bölmektir. – user3065901

+0

Tamam, uzun içerik için sorununuzu yaşıyorum. İçerik bölümlerini birden fazla sayfada nasıl kırpacağınızı ve yaydığınızı göremiyorum. Belki de web görüntülemenizin yüksekliğini alabilir ve tuvalinizi ölçeklendirebilirsiniz. – rtome

0

Son birkaç gün boyunca bu aynı sorunu yaşıyordu, bu yüzden Rakesh Gopathi bu answer bulundu sorunsuz çalıştı. Bunu kontrol etmek için yerel PdfDocument sınıflarını kullanan herkese gerçekten tavsiye ederim.

İlgili konular