一、aspose.pdf
1、按段落分段
java
/**
* docx文本按段分段
*/
public static void main(String[] args) {
int i = 1;
try {
// 打开文件流
FileInputStream file = new FileInputStream("I:\\范文.docx");
// 创建 Word 文档对象
XWPFDocument doc = new XWPFDocument(file);
// 获取所有段落
for (XWPFParagraph para : doc.getParagraphs()) {
// 输出段落文本
if (!para.getText().equals("")) {
System.out.println(i++ + ":" + para.getText());
}
}
// 关闭文件流
file.close();
} catch (IOException e) {
e.printStackTrace();
}
}
2、按句子分段
其他
word转pdf工具之aspose
java
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-words-crack</artifactId>
<version>21.1</version>
</dependency>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-slides</artifactId>
<version>18.7</version>
</dependency>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-cell</artifactId>
<version>18.9</version>
</dependency>
操作pdf其它api依赖
java
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext7-core</artifactId>
<version>7.1.15</version>
</dependency>
java
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>1.8.10</version>
</dependency>
二、PDFBOX
1、提取pdf指定页码的数据
java
public static void main(String[] args) throws IOException {
String pdfPath = "C:\\Users\\Fushihao\\Desktop\\pdf\\test.pdf";
int pageIndex = 4; // 指定要提取文本的页面号码
// 加载 PDF 文件
PDDocument document = PDDocument.load(new File(pdfPath));
// 提取指定页面的文本
PDFTextStripper stripper = new PDFTextStripper();
stripper.setStartPage(pageIndex + 1);
stripper.setEndPage(pageIndex + 1);
String pageText = stripper.getText(document);
// 输出文本到控制台
System.out.println(pageText);
// 关闭 PDF 文件
document.close();
}
pom
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>1.8.10</version>
</dependency>
2、获取 PDF 字数
java
public static int getPdfWords(File file) throws IOException {
// 加载文件
PDDocument document = PDDocument.load(file);
PDFTextStripper stripper = new PDFTextStripper();
// 获取字数
String text = stripper.getText(document);
// 关闭
document.close();
// 去除特殊符号返回字数
return text.replaceAll("[\\r\\n\\t ]+", "").length();
}