首页 > 解决方案 > 无法替换 PDF 的占位符

问题描述

所以我有这个函数替换我的模板 pdf 文件的特定占位符并将替换的数据保存为新文件:

public void manipulatePdf(String src, String dest) throws IOException, DocumentException {
    PdfReader reader = new PdfReader(src);
    PdfDictionary dict = reader.getPageN(1);
    PdfObject object = dict.getDirectObject(PdfName.CONTENTS);
    if (object instanceof PRStream) {
        PRStream stream = (PRStream) object;
        byte[] data = PdfReader.getStreamBytes(stream);
        stream.setData(new String(data).replace("{0}", "one for all").getBytes());

    }
    PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
    stamper.close();
    reader.close();

    if (Desktop.isDesktopSupported()) {
        File myFile = new File(dest);
        Desktop.getDesktop().open(myFile);

    }
}

这就是我的 src(模板文件)的样子:

模板文件

创建新文件后,它看起来一样。占位符没有改变。如何使用 iText 替换文本

标签: javapdfitextplaceholder

解决方案


推荐阅读