PDF 添加文本

使用的工具是pdfbox免费  java版

他也可以添加图片,可以看他的api自己调用

pdfbox 也有c#版,但是在使用的时候有一个中文乱码的问题没解决,所以c#不建议用这个,可以用itextsharp

PDF添加文本或者图片_huxiansheng__的博客-优快云博客

下载地址:链接: https://pan.baidu.com/s/1vZ-gE3QYcrAldymViOd_VA 提取码: c2c1 复制这段内容后打开百度网盘手机App,操作更方便哦

代码:

package com.sendy.boot.util;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDFont;
import org.apache.pdfbox.pdmodel.font.PDType0Font;
import java.awt.*;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
public class PDFAddTextBox {
    public static void main(String[] args) throws IOException {
		//得到本地的文件
        File file = new File("C:\\Users\\Administrator\\Desktop\\test01.pdf");
		//这个是一个字体,添加文本的时候会出现中文不能添加的问题
		//我自己下载了一个ttf字体,也可以直接用自己windows里自带的
		//必须是ttf字体
        File file2 = new File("C:\\Users\\Administrator\\Desktop\\simfang.ttf");
		//读取pdf文件
        PDDocument document = PDDocument.load(file);
        InputStream in = new FileInputStream(file2);
		//加载字体
        PDFont font = PDType0Font.load(document,file2);
        //遍历pdf每一页
        for(int i=0;i<document.getNumberOfPages();i++){
			//得到第i页
            PDPage page = document.getPage(i);
			//得到操作页面的流
            PDPageContentStream contentStream = new PDPageContentStream(document, document.getPage(i), PDPageContentStream.AppendMode.APPEND, false);
            //开始页面流
            contentStream.beginText();
            //设置字体和大小
            contentStream.setFont(font, 12);
			//要显示的位置
            contentStream.newLineAtOffset(5, 5);
			//设置要显示的文本的颜色
            contentStream.setNonStrokingColor(Color.black);
            String text = "明日之星创作";
            //显示文本
            contentStream.showText(text);
			//结束页面流
            contentStream.endText();
            //关闭页面流
            contentStream.close();
        }


        //保存pdf并声称一个新的pdf
        document.save(new File("C:\\Users\\Administrator\\Desktop\\bronze05.pdf"));
        //关闭文档流
        document.close();

    }
}

Java中给PDF添加文本水印,通常需要使用专门的库来处理PDF文件,因为Java标准库本身并不直接支持PDF操作。一个常用的库是iText,它提供了一系列操作PDF文档的工具,包括添加水印的功能。 以下是一个简单的示例代码,展示如何使用iText库为PDF文档添加文本水印: ```java import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.Paragraph; import com.itextpdf.text.pdf.PdfWriter; import com.itextpdf.text.BaseColor; import java.io.FileOutputStream; import java.io.FileNotFoundException; public class AddTextWatermark { public static void main(String[] args) { try { Document document = new Document(); PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("watermarked.pdf")); document.open(); // 添加水印文本 for (int i = 0; i < 10; i++) { document.add(new Paragraph("这是一个水印", new com.itextpdf.text.Font(com.itextpdf.text.Font.FontFamily.HELVETICA, 20, com.itextpdf.text.Font.ITALIC, new BaseColor(255, 255, 255, 128)))); } // 关闭文档 document.close(); } catch (DocumentException | FileNotFoundException e) { e.printStackTrace(); } } } ``` 在这段代码中,我们首先创建了一个`Document`对象和一个`PdfWriter`对象,用于写入PDF文件。通过`PdfWriter`将输出文件设置为"watermarked.pdf"。使用`document.open()`打开文档后,我们使用循环添加了10次文本水印,这里的文本是"这是一个水印"。`Font`对象的构造参数定义了字体、大小、样式和透明度。最后关闭文档。 请注意,iText库需要在项目中单独添加依赖。此外,如果需要更复杂的水印样式(如旋转、斜体等),可以通过进一步的设置来实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值