java 操作pdf
文字
分为单行文字和多行文字
类库
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.27</version>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox-app</artifactId>
<version>2.0.27</version>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>fontbox</artifactId>
<version>2.0.27</version>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>xmpbox</artifactId>
<version>2.0.27</version>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox-tools</artifactId>
<version>2.0.27</version>
</dependency>
生成单行文字
contentStream.beginText();
contentStream.setFont(PDType1Font.TIMES_ROMAN, Config.getFontSize());
contentStream.newLineAtOffset(coordinate.getX(),y);
contentStream.showText(text);
contentStream.endText();
生成多行文字
contentStream.beginText();
contentStream.setFont(PDType1Font.TIMES_ROMAN, Config.getFontSize());
contentStream.newLineAtOffset(coordinate.getX(),y);
contentStream.setLeading(Config.getMarginLeading());
List<String> strs = list(text);
for(String s :strs){
contentStream.showText(s);
contentStream.newLine();
compute(y);
}
contentStream.endText();
private List<String> list(String text){
String[] strs = text.split("\\n");
List<String> _list = new ArrayList<>();
int num = fontNum();
for(String s:strs){
do{
if(s.length()> num){
String ss = s.substring(0,num);
s = s.substring(num);
_list.add(ss);
}else{
_list.add(s);
}
}while(s.length()>= num);
}
return _list;
}
测试

该博客主要介绍Java操作PDF的相关内容,重点围绕文字处理,包括使用类库生成单行文字和多行文字,最后还提及了测试环节,为Java开发者在处理PDF文字方面提供了一定的参考。
8060

被折叠的 条评论
为什么被折叠?



