【问题标题】:Writing PDF File using Android PdfDocument API使用 Android PdfDocument API 编写 PDF 文件
【发布时间】:2015-02-06 09:59:09
【问题描述】:

我正在使用以下代码使用 Android PDFDocument API (https://developer.android.com/reference/android/graphics/pdf/PdfDocument.html) 从 View 编写 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 页面大小,这些视图将被切断。

提前致谢。

【问题讨论】:

    标签: android


    【解决方案1】:

    我认为您在这里有两个选择。一种是缩放环境以使视图适合一页。另一种是手动“平铺”或“分页”视图。您必须计算需要多少页,然后在页面之间转换画布

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

    【讨论】:

      猜你喜欢
      • 2017-08-09
      • 1970-01-01
      • 2015-03-12
      • 2014-05-13
      • 1970-01-01
      • 2021-08-24
      • 1970-01-01
      • 1970-01-01
      • 2016-03-19
      相关资源
      最近更新 更多