2015-02-06 184 views
3

我正在使用以下代碼使用Android PDFDocument API從視圖編寫PDF(https://developer.android.com/reference/android/graphics/pdf/PdfDocument.html)。

代碼使用Android PdfDocument API編寫PDF文件

/** 
    * Writes given PDFDocument using content view. 
    * 
    * @param pdfDocument PDFDocument to be written. 
    */ 
    private void writePDFDocument(final PdfDocument pdfDocument) { 

     // crate a page description 
     PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(PDF_PAGE_WIDTH, PDF_PAGE_HEIGHT, 1).create(); 

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

     // draw view on the page 
     int measureWidth = View.MeasureSpec.makeMeasureSpec(page.getCanvas().getWidth(), View.MeasureSpec.EXACTLY); 
     int measuredHeight = View.MeasureSpec.makeMeasureSpec(page.getCanvas().getHeight(), View.MeasureSpec.EXACTLY); 
     contentView.measure(measureWidth, measuredHeight); 
     contentView.layout(0, 0, page.getCanvas().getWidth(), page.getCanvas().getHeight()); 
     contentView.draw(page.getCanvas()); 

     // finish the page 
     pdfDocument.finishPage(page); 
    } 



問題
如果我寫A4大小的PDF。


因此,如果我的視圖大小超過了我的PDF大小,那麼如何自動將它寫入第二頁,現在如果視圖大小超過pdf頁面大小,那麼這些視圖會被截斷。

在此先感謝。

回答

1

我認爲你在這裏有兩個選擇。一種是縮放環境以使視圖適合一個頁面。另一個是手動「拼貼」或「分頁」視圖。您將必須計算您需要的頁數,然後翻譯頁面之間的頁面

contentView.draw(page.getCanvas()); 
pdfDocument.finishPage(page); 
page.getCanvas().translate(595,842); 
page = document.startPage(pageInfo); 
contentView.draw(page.getCanvas()); 
//etc.