要使用Apache PdfBox在PDF文档中添加灰色/淡淡的下划线,可以按照以下步骤进行操作:
org.apache.pdfbox
pdfbox
2.0.26
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDType1Font;
import org.apache.pdfbox.pdmodel.PDPageContentStream.AppendMode;
public static void addUnderline(String inputPath, String outputPath, int pageNumber, float startX, float endX, float y) throws IOException {
PDDocument document = PDDocument.load(new File(inputPath));
PDPage page = document.getPage(pageNumber - 1); // PDF页面索引从0开始
PDRectangle pageSize = page.getMediaBox();
float pageHeight = pageSize.getHeight();
PDPageContentStream contentStream = new PDPageContentStream(document, page, AppendMode.APPEND, true, true);
contentStream.setLineWidth(0.5f); // 设置下划线宽度
contentStream.setStrokingColor(192, 192, 192); // 设置下划线颜色为灰色
contentStream.moveTo(startX, y);
contentStream.lineTo(endX, y);
contentStream.stroke();
contentStream.close();
document.save(outputPath);
document.close();
}
public static void main(String[] args) {
try {
String inputPath = "path/to/input.pdf";
String outputPath = "path/to/output.pdf";
int pageNumber = 1; // 要添加下划线的页面索引
float startX = 100; // 下划线起始位置(x坐标)
float endX = 300; // 下划线结束位置(x坐标)
float y = 100; // 下划线位置(y坐标)
addUnderline(inputPath, outputPath, pageNumber, startX, endX, y);
System.out.println("下划线已成功添加到PDF文档中!");
} catch (IOException e) {
e.printStackTrace();
}
}
请根据实际需求修改输入/输出路径、页面索引、起始/结束位置和下划线位置。