去除Evaluation Warning : The document was created with Spire.PDF for Java.
去除Evaluation Warning : The document was created with Spire.PDF for Java.最近项目中有一个需求需要把PDF文件添加页码,最终在网上找到了用Spire去添加的方法,但是比较尴尬的是会在页面的第一页加上Evaluation Warning : The document was created with Spire.PDF for J
·
去除Evaluation Warning : The document was created with Spire.PDF for Java.
最近项目中有一个需求需要把PDF文件添加页码,最终在网上找到了用Spire去添加的方法,但是比较尴尬的是会在页面的第一页加上Evaluation Warning : The document was created with Spire.PDF for Java.一段文字。最终通过网上找例子找到了解决办法,因为这段文字只出现在第一页,所以这里的处理方式是在文档创建时先添加一个空白页,最后再把空白页去掉,代码如下:
import java.awt.*;
import java.awt.geom.Dimension2D;
import java.awt.geom.Rectangle2D;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.automaticfields.PdfCompositeField;
import com.spire.pdf.automaticfields.PdfPageCountField;
import com.spire.pdf.automaticfields.PdfPageNumberField;
import com.spire.pdf.graphics.PdfBrushes;
import com.spire.pdf.graphics.PdfStringFormat;
import com.spire.pdf.graphics.PdfTextAlignment;
import com.spire.pdf.graphics.PdfTrueTypeFont;
import com.spire.pdf.graphics.PdfVerticalAlignment;
/**
*
* @author changsp
* 2020年6月4日
*/
public class AddPdfPageNumbers {
public static void main(String[] args) {
//加载PDF文档
PdfDocument pdf = new PdfDocument();
pdf.loadFromFile("C:\\Users\\xxx\\Desktop\\1.pdf");
//添加一个空白页,目的为了删除jar包添加的水印,后面再移除这一页
pdf.getPages().add();
//创建字体
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("宋体", Font.PLAIN, 10),true);
//遍历文档中的页
for (int i = 0; i < pdf.getPages().getCount(); i++) {
Dimension2D pageSize = pdf.getPages().get(i).getSize();
float y = (float) pageSize.getHeight() - 40;
//初始化页码域
PdfPageNumberField number = new PdfPageNumberField();
//初始化总页数域
PdfPageCountField count = new PdfPageCountField();
//创建复合域
PdfCompositeField compositeField = new PdfCompositeField(font, PdfBrushes.getBlack(), "第{0}页 共{1}页", number, count);
//设置复合域内文字对齐方式
compositeField.setStringFormat(new PdfStringFormat(PdfTextAlignment.Right, PdfVerticalAlignment.Top));
//测量文字大小
Dimension2D textSize = font.measureString(compositeField.getText());
//设置复合域的在PDF页面上的位置及大小
compositeField.setBounds(new Rectangle2D.Float(((float) pageSize.getWidth() - (float) textSize.getWidth())/2, y, (float) textSize.getWidth(), (float) textSize.getHeight()));
//将复合域添加到PDF页面
compositeField.draw(pdf.getPages().get(i).getCanvas());
}
//移除第一个页
pdf.getPages().remove(pdf.getPages().get(pdf.getPages().getCount()-1));
//保存为另外一个文档
pdf.saveToFile("C:\\Users\\xxx\\Desktop\\2.pdf");
System.out.println("添加成功");
}
}
更多推荐



所有评论(0)