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(); } }
解决方案
解决依赖无法解析问题
- 执行Gradle同步:点击Android Studio右上角的Sync Project with Gradle Files按钮,确保依赖包下载完成
- 确认仓库配置:在模块级
build.gradle的repositories块中添加mavenCentral(),iText 7依赖托管在Maven中央仓库:
repositories { google() mavenCentral() }
- 升级依赖版本:替换为最新稳定版的iText 7-core,避免旧版本兼容性问题,例如:
implementation 'com.itextpdf:itext7-core:7.2.5'
解决Paragraph文本不显示问题
- 补全Table导入:代码中使用了
Table但未导入,需添加:
import com.itextpdf.layout.element.Table;
- 调整元素顺序或添加样式:段落可能被表格遮挡,尝试先添加表格再添加段落,或者给段落设置可见样式:
document.add(new Paragraph("Text for my PDF").setFontSize(14).setFontColor(com.itextpdf.kernel.colors.ColorConstants.BLACK));
- 检查PDF内容位置:打开生成的PDF后滚动查看,段落可能在表格上方的页面区域,未被当前视图显示
- 确认文档写入流程:确保
document.close()在所有元素添加完成后调用,该方法会完成PDF的最终写入
内容的提问来源于stack exchange,提问作者Andhy C7
相关产品推荐
相关产品推荐

