我没有获得在PDF文件中添加文本水印的任何教程?你能指导我吗,我对PDFBOX很新。
它没有重复,评论中的链接对我没有帮助。我想在pdf中添加文字,而不是图像。
答案 0 :(得分:0)
以下是使用PDFBox 2.0.2的示例。这将加载PDF并在红色透明字体的右下角写入一些文本。如果是多页PDF,水印将出现在每页上。它可能不是生产就绪,因为我不确定是否需要检查一些额外的空条件,但它应该让你在正确的方向上运行。
请记住,此特定代码块不会修改原始PDF,但会使用Tmp_(filename)作为输出创建新的PDF。
private static void watermarkPDF (File fileStored) {
File tmpPDF;
PDDocument doc;
tmpPDF = new File(fileStored.getParent() + System.getProperty("file.separator") +"Tmp_"+fileStored.getName());
doc = PDDocument.load(fileStored);
for(PDPage page:doc.getPages()){
PDPageContentStream cs = new PDPageContentStream(doc, page, AppendMode.APPEND, true, true);
String ts = "Some sample text";
PDFont font = PDType1Font.HELVETICA_BOLD;
float fontSize = 14.0f;
PDResources resources = page.getResources();
PDExtendedGraphicsState r0 = new PDExtendedGraphicsState();
r0.setNonStrokingAlphaConstant(0.5f);
cs.setGraphicsStateParameters(r0);
cs.setNonStrokingColor(255,0,0);//Red
cs.beginText();
cs.setFont(font, fontSize);
cs.setTextMatrix(Matrix.getTranslateInstance(0f,0f));
cs.showText(ts);
cs.endText();
}
cs.close();
}
doc.save(tmpPDF);
}