首页 > 解决方案 > 如何替换从和返回到字节 [] 的子字符串

问题描述

在 JSP 文件中,我收到一个表示 PDF 文件的 byte[],我将其转换为 String 以替换子字符串,然后返回 byte[] 以生成 PDF 文件。不幸的是,以前的程序员在 PDF 中硬编码了一些文本,现在,只是为了替换这些字符串,我不想重新编译和重新部署所有内容,主要是因为我根本不懂 JAVA。

但是,鉴于此代码:

    byte[] bytes;
byte[] bytess;


String  base    = request.getSession().getServletContext().getResource("/") + "img/";


bytes = o.getPdf(id);

String strings = new String(bytes, "ISO-8859-1");
System.out.println(strings);

strings = strings.replace("00198","00135");
bytess = strings.getBytes("ISO-8859-1");


DataOutput output = new DataOutputStream(response.getOutputStream());

response.setContentLength(bytess.length);


for (int i = 0; i < bytess.length; i++) {

    output.writeByte(bytess[i]);

}

PDF 由 Chrome 显示,但 00198 仍然存在。为什么这忽略了替换命令?

************** 编辑 *********************

如果我将文件另存为 TXT,我可以看到这个......(它可以以某种方式帮助我吗?)

%PDF-1.4

%âãÏÓ 2 0 obj <>stream xœ'=kÃ0†wýŠwl‡Ð“?dgTÜ3$jî¥CIúÿ#Ç¡^*SnÇóðÞúVQµAOò¦XÔËÜy54AÞ•åÒ¨:BÝäÖ§ºûú9Ÿïåão°^992{N¯IØ'ˆ}âxâ© èV„†×»gNØÁ»”\Œ1N#¿ÊÉM[Òÿa·ÙìÛ«¬7"Ý-ºG;l'¦[È“³ˆ£ ¡ûÃõ0õ2'Þo{ú%§èmy§ª]A_ÆÌŠ9)bÚP¾Ò•: ¸8óJÁ…8+ùë\ W}§ endstream endobj 4 0 obj<>>>/MediaBox[0 0 595 842]>> endobj 1 0 obj<> endobj 3 0 obj<> endobj 5 0 obj<> endobj 6 0 OBJ <> endobj Xref 0 7 00000000 65535 F 0000000457 00000 N 00000015 00000 N 0000000543 00000 N 0000000300 00000 N 0000000593 00000 00000 N 0000000 N 0000000637 00000 N TRAILER <]/size 6 0 r/size;

谢谢

标签: javapdf

解决方案


推荐阅读