用的Apache PDFBox库
读:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
import java.io.File; import java.io.IOException; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.text.PDFTextStripper; public class PDFReader { public static void main(String[] args) { try { // 加载PDF文件 File file = new File("example.pdf"); PDDocument document = PDDocument.load(file); // 创建PDFTextStripper对象 PDFTextStripper pdfStripper = new PDFTextStripper(); // 从第一页到最后一页提取文本内容 for (int i = 1; i <= document.getNumberOfPages(); i++) { pdfStripper.setStartPage(i); pdfStripper.setEndPage(i); String text = pdfStripper.getText(document); System.out.println("Page " + i + ":"); System.out.println(text); } // 关闭PDF文档 document.close(); } catch (IOException e) { e.printStackTrace(); } } } |
写:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
import java.io.IOException; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.apache.pdfbox.pdmodel.font.PDType1Font; public class PDFGenerator { public static void main(String[] args) { try { // 创建文档对象 PDDocument document = new PDDocument(); // 创建页面 PDPage page = new PDPage(); // 将页面添加到文档 document.addPage(page); // 创建内容流以便向页面添加内容 PDPageContentStream contentStream = new PDPageContentStream(document, page); // 设置字体和字体大小 contentStream.setFont(PDType1Font.HELVETICA, 12); // 在页面上写入文本 contentStream.beginText(); contentStream.newLineAtOffset(100, 700); contentStream.showText("Hello, World!"); contentStream.endText(); // 关闭内容流 contentStream.close(); // 保存文档 document.save("GeneratedPDF.pdf"); // 关闭文档 document.close(); System.out.println("PDF文件已生成成功!"); } catch (IOException e) { e.printStackTrace(); } } } |