开发者社区> 问答> 正文

如何在PHP中使用Itext?

Itext是用于PDF生成,PDF编程,处理和操纵的功能强大的工具包。Java示例:


try {

  PdfReader reader = new PdfReader(src);
  PdfArray refs = null;
  PRIndirectReference reference = null;

  int nPages = reader.getNumberOfPages();

  for (int i = 1; i <= nPages; i++) {
    PdfDictionary dict = reader.getPageN(i);
    PdfObject object = dict.getDirectObject(PdfName.CONTENTS);
    if (object.isArray()) {
      refs = dict.getAsArray(PdfName.CONTENTS);
      ArrayList<PdfObject> references = refs.getArrayList();

      for (PdfObject r : references) {

        reference = (PRIndirectReference) r;
        PRStream stream = (PRStream) PdfReader.getPdfObject(reference);
        byte[] data = PdfReader.getStreamBytes(stream);
        String dd = new String(data, "UTF-8");

        dd = dd.replaceAll("@pattern_1234", "trueValue");
        dd = dd.replaceAll("test", "tested");

        stream.setData(dd.getBytes());
      }

    }
    if (object instanceof PRStream) {
      PRStream stream = (PRStream) object;

      byte[] data = PdfReader.getStreamBytes(stream);
      String dd = new String(data, "UTF-8");
      System.out.println("content---->" + dd);
      dd = dd.replaceAll("@pattern_1234", "trueValue");
      dd = dd.replaceAll("This", "FIRST");

      stream.setData(dd.getBytes(StandardCharsets.UTF_8));
    }
  }
  PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
  stamper.close();
  reader.close();
}

catch (Exception e) {
}

展开
收起
社区秘书 2019-12-09 16:41:19 926 0
0 条回答
写回答
取消 提交回答
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
使用C++开发PHP7扩展 立即下载
PHP运行机制初探 立即下载
使用C++11开发PHP7扩展 立即下载