使用 android.graphics.pdf 创建多页 PDF

Posted

技术标签:

【中文标题】使用 android.graphics.pdf 创建多页 PDF【英文标题】:Creating multiple pages of PDF using android.graphics.pdf 【发布时间】:2017-06-28 18:24:07 【问题描述】:

我正在尝试使用 android.graphics.pdf 创建 PDF。我的问题是多页。我可以提供 android.graphics.pdf html,然后可以将其打印为 PDF。现在,如果文本超出设置的页面大小,这将不起作用。是否有可能给它所有的html,它会根据页面大小的内容创建多个页面?和 TCPDF 一样 :)

注意。我试图通过计算内容的高度来避免创建单独的多个页面。

【问题讨论】:

嘿,试试这个链接,你会得到答案***.com/a/36349822/2888952 内容溢出时是否抛出错误? 【参考方案1】:

为此,您需要将 iTextG 的 jar 添加到您的项目中:

   public void createandDisplayPdf(String text) 

    Document doc = new Document();

    try 
        String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Dir";

        File dir = new File(path);
        if(!dir.exists())
            dir.mkdirs();

        File file = new File(dir, "newFile.pdf");
        FileOutputStream fOut = new FileOutputStream(file);

        PdfWriter.getInstance(doc, fOut);

        //open the document
        doc.open();

        Paragraph p1 = new Paragraph(text);
        Font paraFont= new Font(Font.COURIER);
        p1.setAlignment(Paragraph.ALIGN_CENTER);
        p1.setFont(paraFont);

        //add paragraph to document
        doc.add(p1);    

     catch (DocumentException de) 
        Log.e("PDFCreator", "DocumentException:" + de);
     catch (IOException e) 
        Log.e("PDFCreator", "ioException:" + e);
    
    finally 
        doc.close();
    

    viewPdf("newFile.pdf", "Dir");


// Method for opening a pdf file
private void viewPdf(String file, String directory) 

    File pdfFile = new File(Environment.getExternalStorageDirectory() + "/" + directory + "/" + file);
    Uri path = Uri.fromFile(pdfFile);

    // Setting the intent for pdf reader
    Intent pdfIntent = new Intent(Intent.ACTION_VIEW);
    pdfIntent.setDataAndType(path, "application/pdf");
    pdfIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

    try 
        startActivity(pdfIntent);
     catch (ActivityNotFoundException e) 
        Toast.makeText(TableActivity.this, "Can't read pdf file", Toast.LENGTH_SHORT).show();
    

【讨论】:

但它只对开源项目免费!

以上是关于使用 android.graphics.pdf 创建多页 PDF的主要内容,如果未能解决你的问题,请参考以下文章

Swift - 使用 UITableViewController 创建子菜单

使用多线程异步创建一组文件

使用 RestKit 创建子对象

使用 DDD 创建子实体的正确方法

如何使用条件 Api 创建子查询

使用 CSS 在元素后面创建一条线:before