2015-07-31 2 views
0

Я добавляю границы к различным изображениям в документе .pdf. Границы имеют одинаковую ширину, но в .pdf границы имеют разную ширину. Он более выражен по мере увеличения ширины границы.iText - Изменение ширины границы изображения на основе изображения

Также есть способ перемещения границы за пределы изображения, чтобы он не закрывал какое-либо изображение с помощью методов класса изображения? Я понимаю, что могу сначала поместить заполненный прямоугольник, а затем добавить изображение поверх прямоугольника в качестве опции. Просто интересно, можно ли это сделать с помощью методов класса Image.

Вот фрагмент кода

magazine.open(); 

    canvas = pdfw.getDirectContent(); 

    image = Image.getInstance("a.JPG"); 

    image.setBorder(Rectangle.BOX);  
    image.scaleAbsolute(200,200);  
    image.setBorderWidth(50); 
    image.setAbsolutePosition(50,10); 
    //canvas.addImage(image);  
    magazine.add(image); 


    image = Image.getInstance("b.jpg"); 

    image.setBorder(Rectangle.BOX);  
    image.scaleAbsolute(200,200);  
    image.setBorderWidth(50); 
    image.setAbsolutePosition(50,230); 
    //canvas.addImage(image);  
    magazine.add(image); 

ответ

0

Я боюсь, вам придется работать с обходным вы описали.

Есть два способа определить границу для изображения:

image.setUseVariableBorders(false); 

Это значение по умолчанию. Это то, что у вас есть (хотя вы не вызываете метод явно).

В этом случае толщина границы распределяется таким образом, что половина ширины линии находится внутри прямоугольника, а половина ширины линии находится за пределами прямоугольника. Возможно, именно это приводит к тому, что разница, которую вы замечаете, более выражена по мере увеличения ширины границы.

Тогда есть:

image.setUseVariableBorders(true); 

Теперь границы будут разыграны внутри области, необходимой для изображения. Это полезно для таблиц (как PdfPCell и Image являются подклассами Rectangle класса, где определены эти методы), но я боюсь, что это не поможет вам в случае изображений.

Итак, ваш лучший шанс - добавить границу с помощью обходного пути.

Смежные вопросы