问题发生现象
使用spire.pdf时,生成pdf文档时,第一页文档中会自动被添加水印【The document was created with Spire.PDF for .NET.】
期望达到结果
去除水印,同时不影响原先pdf内容。
解决方案
- 增加第一页,然后再删除第一页(经验证3.11.6版本,提供商已经变聪明,去不掉!!!)
如果你是用的是低版本,你可以根据链接试一试这个方法(https://blog.csdn.net/weixin_38211198/article/details/89192219)
- 遍历PDF页面,获取每个页面的文本并添加到StringBuilder对象,然后进过replace把水印替换为空字符串(经验证,不管哪个版本都有效,当然由于不可知原因,低版本存在大量bug,因此建议使用最新版本)
代码示例
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
/**
* @author marcos-lay
* @Description: spire.pdf去除水印
* @date 2021/6/7 16:38
*/
public class Test {
private static final String shuiyin = "EvaluationWarning:ThedocumentwascreatedwithSpire.PDFforJava.";
public static void main(String[] args){
String oldFile = "d:/XXXXX.pdf";
final String pdfInfo = getPDFInfo(oldFile).replace(shuiyin,"");
System.out.println(pdfInfo);
}
public static String getPDFInfo(String newFile){
//创建PdfDocument实例
PdfDocument doc = new PdfDocument();
//加载PDF文件
doc.loadFromFile(newFile);
//创建StringBuilder实例
StringBuilder sb = new StringBuilder();
PdfPageBase page;
//遍历PDF页面,获取每个页面的文本并添加到StringBuilder对象
for(int i= 0;i<doc.getPages().getCount();i++){
page = doc.getPages().get(i);
sb.append(page.extractText(false));
}
doc.close();
return sb.toString();
}
}