You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio Chipmunk中iText 7生成PDF的问题求助

Android Studio Chipmunk中iText 7生成PDF的依赖与文本显示问题

问题详情

在Android Studio Chipmunk 2021.2.1版本使用iText 7生成PDF时遇到两个核心问题:

  • 引入聚合依赖 implementation 'com.itextpdf:itext7-core:7.1.8' 时,PdfWriter、PdfDocument、Document及Paragraph类均提示「Cannot resolve symbol」错误
  • 拆分引入 implementation 'com.itextpdf:kernel:7.1.8'、implementation 'com.itextpdf:layout:7.1.8'、implementation 'com.itextpdf:io:7.1.8' 时,Paragraph添加的文本无显示效果,但Table可以正常添加到PDF中

代码示例

...
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Paragraph;

import java.io.File;
import java.io.FileNotFoundException;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        try {
            createPdf();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
    private void createPdf() throws FileNotFoundException {
        String pdfPath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).toString();
        File file = new File(pdfPath, "myPDF.pdf");
        PdfWriter writer = new PdfWriter(String.valueOf(file));
        PdfDocument pdfDocument = new PdfDocument(writer);
        Document document = new Document(pdfDocument);

        // Adding paragraphs to document
        document.add(new Paragraph("Text for my PDF"));

       Table tabla = new Table(3); tabla.addCell("User"); 
       tabla.addCell("Name");
       tabla.addCell("Surname"); 

       for(int i = 0; i < 5 ; i++){ 

        tabla.addCell(String.valueOf("Text " + i)); 
        tabla.addCell(String.valueOf("Text " + i)); 
        tabla.addCell(String.valueOf("Text " + i));
    } 
       document.add(tabla); 
       document.close();

        Toast.makeText(this, "The PDF document has been created successfully", Toast.LENGTH_SHORT).show();
    }
}

解决方案

解决依赖无法解析问题

  1. 执行Gradle同步:点击Android Studio右上角的Sync Project with Gradle Files按钮,确保依赖包下载完成
  2. 确认仓库配置:在模块级build.gradle的repositories块中添加mavenCentral(),iText 7依赖托管在Maven中央仓库:
repositories {
    google()
    mavenCentral()
}
  1. 升级依赖版本:替换为最新稳定版的iText 7-core,避免旧版本兼容性问题,例如:
implementation 'com.itextpdf:itext7-core:7.2.5'

解决Paragraph文本不显示问题

  1. 补全Table导入:代码中使用了Table但未导入,需添加:
import com.itextpdf.layout.element.Table;
  1. 调整元素顺序或添加样式:段落可能被表格遮挡,尝试先添加表格再添加段落,或者给段落设置可见样式:
document.add(new Paragraph("Text for my PDF").setFontSize(14).setFontColor(com.itextpdf.kernel.colors.ColorConstants.BLACK));
  1. 检查PDF内容位置:打开生成的PDF后滚动查看,段落可能在表格上方的页面区域,未被当前视图显示
  2. 确认文档写入流程:确保document.close()在所有元素添加完成后调用,该方法会完成PDF的最终写入

内容的提问来源于stack exchange,提问作者Andhy C7

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 21:54:37