java itext pdf 怎么加页码

 我来答
Jack4DotNet
2019-09-11 · TA获得超过128个赞
知道小有建树答主
回答量:218
采纳率:91%
帮助的人:30万
展开全部

引用spire.pdf.jar到java程序中,然后使用下面的代码,页码的位置可以自己调整

import com.spire.pdf.automaticfields.PdfCompositeField;
import com.spire.pdf.automaticfields.PdfPageCountField;
import com.spire.pdf.automaticfields.PdfPageNumberField;
import com.spire.pdf.graphics.*;

import java.awt.*;
import java.awt.geom.Dimension2D;
import java.awt.geom.Rectangle2D;

public class AddPageNumbers {

    public static void main(String[] args) {

        //加载PDF文档
        PdfDocument doc = new PdfDocument();
        doc.loadFromFile("C:\\Users\\Administrator\\Desktop\\系统测试.pdf");

        //创建字体
        PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial Unicode MS", Font.PLAIN, 12), true);

        //获取页面尺寸
        Dimension2D pageSize = doc.getPages().get(0).getSize();

        //初始化y坐标
        float y = (float) pageSize.getHeight() - 72;

        //遍历文档中的页
        for (int i = 0; i < doc.getPages().getCount(); i++) {
            
            //初始化页码域
            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() - 80, y, (float) textSize.getWidth(), (float) textSize.getHeight()));
            //将复合域添加到PDF页面
            compositeField.draw(doc.getPages().get(i).getCanvas());
        }

        //保存为另外一个文档
        doc.saveToFile("output/AddPageNumber.pdf");
    }
}

效果:

博思aippt
2024-07-20 广告
作为深圳市博思云创科技有限公司的工作人员,对于Word文档生成PPT的操作,我们有以下建议:1. 使用另存为功能:在Word中编辑完文档后,点击文件->另存为,选择PowerPoint演示文稿(*.pptx)格式,即可将文档内容转换为PPT... 点击进入详情页
本回答由博思aippt提供
匿名用户
2019-01-28
展开全部

如果是想要给pdf文件添加页码的话,使用JAVA太费事情了,完全可以直接通过使用pdf编辑器进行操作,这样更方便快捷一些。首先将pdf文件给打开,然后选择界面上方的文档按钮,在弹出的选项中点击更多页面,再点击编排页码。这个时候会弹出一个页码设置菜单,在这个菜单中就可以对pdf文件的页码参数进行设置了,设置好之后依旧点击文档按钮, 点击贝茨编号,再选择添加,就可以给pdf文件添加上页码了。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
在晴天的雨伞
2016-05-03 · TA获得超过6868个赞
知道大有可为答主
回答量:5761
采纳率:86%
帮助的人:1138万
展开全部
参考这个设置。

Java code?

baos = new ByteArrayOutputStream();
Document document = new Document(PageSize.A4, 60, 60, 120, 80);
PdfWriter writer = PdfWriter.getInstance(document, baos);
HeaderAndFooter event = new HeaderAndFooter();
writer.setPageEvent(event);
document.open();
public class HeaderAndFooter extends PdfPageEventHelper {

public void onEndPage (PdfWriter writer, Document document) {
Rectangle rect = writer.getBoxSize("art");
switch(writer.getPageNumber() % 2) {
case 0:
ColumnText.showTextAligned(writer.getDirectContent(), Element.ALIGN_RIGHT, new Phrase("even header"),
rect.getBorderWidthRight(), rect.getBorderWidthTop(), 0);
break;
case 1:
ColumnText.showTextAligned(writer.getDirectContent(),
Element.ALIGN_CENTER, new Phrase(String.format("%d", writer.getPageNumber())),
300f, 62f, 0);
break;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式