通过SDK的接口在PDF上创建Screen 或者moive等注释时,通常是自带有黑色边框的。如下所示:
如果希望希望控制边框的粗细或颜色,可以通过setBorderInfo()接口设置。
但如果需要删除边框线,可以在注释生成后通过获取注释外观流的方式,删除黑框。删除后,效果如下:
完整代码如下:
PDFDoc doc=new PDFDoc();
doc.load(null);
PDFPage page= doc.insertPage(0,PDFPage.e_SizeA4);
page.startParse(0,null,true);
Annot annot= page.addAnnot(Annot.e_Screen,new RectF(100,100,300,200));
Screen screen=new Screen(annot);
screen.setImage(new Image("D:\\test\\foxitLogo.png"),0,0);
screen.resetAppearanceStream();
PDFStream stream= screen.getAppearanceStream(0,"");
long dataLen=stream.getDataSize(true).longValue();
byte[] streamData = new byte[(int) dataLen];
stream.getData(true,dataLen,streamData);
String oldAp=new String(streamData, "UTF-8");
// 删除外观流中的黑色矩形框
StringBuilder newAp = new StringBuilder();
String[] lines = oldAp.split("\n");
for (int i = 0; i < lines.length; i++) {
if (i < 1 || i > 6) {
if (newAp.length() > 0) {
newAp.append("\n");
}
newAp.append(lines[i]);
}
}
stream.setData(newAp.toString().getBytes());
doc.saveAs("D:\\DownLoad\\result.pdf",0);