我尝试使用Apache PDFBOX在现有pdf中用“XXX”替换字符串。当我直接使用org.apache.pdfbox.examples.pdmodel中存在的ReplaceString.java时,我无法替换它
所以我们修改了以下部分。
。 。
else if( op.getOperation().equals( "TJ" ) )
{
COSArray previous = (COSArray)tokens.get( j-1 );
for( int k=0; k<previous.size(); k++ )
{
Object arrElement = previous.getObject( k );
if( arrElement instanceof COSString )
{
COSString cosString = (COSString)arrElement;
String string = cosString.getString();
string = string.replaceFirst( strToFind, message );
cosString.reset();
cosString.append( string.getBytes() );
}
}
}
。 。
修改为:
else if( op.getOperation().equals( "TJ" ) )
{
COSArray previous = (COSArray)tokens.get( j-1 );
for( int k=0; k<previous.size(); k++ )
{
Object arrElement = previous.getObject( k );
if( arrElement instanceof COSString )
{
COSString cosString = (COSString)arrElement;
byte[] cosBytes = cosString.getBytes();
String s = new String(cosBytes, "Cp1047");
if(s.contains(strToFind))
{
String newString = s.replaceAll(strToFind, message);
cosString.reset();
cosString.append( newString.getBytes("Cp1047") );
}
}
}
}
。
这用另一个替换了字符串。但是在PDF的某些位置,字符串在给定数字时被替换,但在用字母替换时显示为空白。
请帮忙。