当前位置: 首页 > 知识库问答 >
问题:

使用itext在android中创建pdf

关昊天
2023-03-14

我在Android日食中使用 itext 创建 pdf 时遇到问题

如果给定了引导入口,我无法创建pdf,在我的情况下是Android 5.0.1。如果我删除了bootstrap条目,我可以创建pdf,但不能启动活动,因为android 5.0.1包含android jar。你能告诉我如何解决这个问题吗?同样,如果我把它变成一个非活动类,我希望能够在另一个活动类中创建一个非活动类的对象,这样我就可以从活动类中调用一个方法。请告诉我如何实现这一点。

共有1个答案

司健柏
2023-03-14

从这里下载iText API http://itextpdf.com/product/itextg,并将其添加到您的项目中。

使用此类并调用所需的函数来创建 pdf

public class CreatePDF {

    private static Font normalFont = new Font(Font.FontFamily.TIMES_ROMAN, 25,
            Font.NORMAL, BaseColor.BLACK);

    private static Font Head = new Font(Font.FontFamily.TIMES_ROMAN, 35,
            Font.BOLD, BaseColor.BLACK);

    //Path is the path where you want your pdf to get stored
    public void createPDFDoc(ArrayList<notesWrapper> notesList,String path) {
        // TODO Auto-generated method stub
        Document document = new Document();
        try {
            PdfWriter.getInstance(document, new FileOutputStream(path));
            document.open();

            for(int i=0;i<notesList.size();i++)
            {               


                addContentHead(document,"Image "+(i+1));                
                addContent(document,notesList.get(i).message);
                if(i<notesList.size())
                {
                    document.newPage();
                }
            }

            document.close();

        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } 
    }

    private void addContent(Document document,String content) throws DocumentException {


        Paragraph preface = new Paragraph();              
        addEmptyLine(preface, 1);

        if(!content.equalsIgnoreCase("insert note"))
        preface.add(new Paragraph(content, normalFont));

        else
            addEmptyLine(new Paragraph(), 1);

        addEmptyLine(preface, 3);
        document.add(preface);



    }


    private void addContentHead(Document document,String content) throws DocumentException {


        Paragraph preface = new Paragraph();              
        addEmptyLine(preface, 1);

        preface.add(new Paragraph(content, Head));
        addEmptyLine(preface, 3);
        document.add(preface);



    }



    private static void addEmptyLine(Paragraph paragraph, int number) {
        for (int i = 0; i < number; i++) {
            paragraph.add(new Paragraph(" "));
        }
    }


}
 类似资料:
  • null 有人能解释一下,当我使用PdfReader阅读模板后,我如何制作模板的副本吗?有没有办法把表格写到模板副本上,而不是一个新文档上? 为了将来的参考,我做了以下工作:

  • 问题内容: 我们正在寻找替代方法,以替代当前通过小程序在Java Web应用程序中打印支票的方式。似乎共识是使用PDF进行打印,而itext提供了使用Java进行打印的功能。 但是 ,在我们的特殊情况下,支票是“仅打印”的,这一点很重要- 用户在应用程序中不应该具有保存支票的任何能力(我知道精明的用户可以做一个PrintScreen,但我们想遮盖住后盖,在应用程序中不进行任何本机功能来保存支票)。

  • 我正在开发一个web应用程序,并试图使用它的文本创建一个pdf文档。 当我得到一个路径(本地和服务器上)时,它工作得很好,但我知道我需要在不实际创建它的情况下完成它。 我不想要的:PdfCopy copy=newpdfcopy(documentPDF,newfileoutputstream(mypath)) 我想要的是://PdfCopy copy=new PdfCopy(documentPDF,

  • 问题内容: 嗨,我正尝试使用iText库从Recyclerview创建PDF输出文件。经过数小时 的努力,我能够从recylerview创建PDF。 以下是我用来创建PDF的类 Codes from Main Class Common RecyclerView Adapter Class } 我正在使用一个名为mPrintView的Arraylist将视图保存在RecylerView中。当用户多次

  • 问题内容: 嗨,我想添加2行的页脚。第一行将具有背景颜色的文档名称。第二行将具有版权说明。我尝试使用ColumnText创建。但我无法为行设置背景颜色(仅文本获取背景颜色)。有没有实现这一目标的途径。我整夜都在寻找解决方案,但无法解决。 问题答案: 您可以通过阅读文档来节省一个不眠之夜。您已经发现可以使用方法设置单元格的背景,并且可以使用方法在绝对位置添加表格。 看一下TableFooter示例:

  • 我正在测试iText 7.1.2.0库,以便在C#项目中使用数字证书或智能卡(X509Certificate2)签署pdf文件。但是当我尝试创建IExternalSignature时,我遇到了这个错误。 根据找到的留档(这里,这里和这里),实现这个过程的方法是使用BouncyCastle库,它允许从数字证书中提取主键,但是,它给我一个错误,我找不到另一种方法来做到这一点。在留档(这里)中,它们是从