Пожалуйста, взгляните на пример WatermarkedImages4. Он основан на примере WatermarkedImages1, о котором я упоминал в комментариях. Единственное отличие между этими двумя примерами заключается в том, что мы добавляем текст в примере, написанном в ответ на How to add text to an image? , тогда как мы добавляем строки в примере, написанном в ответ на ваш вопрос.
Добавляем изображения, как это:
document.add(getWatermarkedImage(cb, Image.getInstance(IMAGE1)));
Метод getWatermarkedImage()
выглядит следующим образом:
public Image getWatermarkedImage(PdfContentByte cb, Image img) throws DocumentException {
float width = img.getScaledWidth();
float height = img.getScaledHeight();
PdfTemplate template = cb.createTemplate(width, height);
template.addImage(img, width, 0, 0, height, 0, 0);
template.saveState();
template.setColorStroke(BaseColor.GREEN);
template.setLineWidth(3);
template.moveTo(width * .25f, height * .25f);
template.lineTo(width * .75f, height * .75f);
template.moveTo(width * .25f, height * .75f);
template.lineTo(width * .25f, height * .25f);
template.stroke();
template.setColorStroke(BaseColor.WHITE);
template.ellipse(0, 0, width, height);
template.stroke();
template.restoreState();
return Image.getInstance(template);
}
Как вы можете видеть, я добавляю две зеленые линии, используя moveTo()
, lineTo()
и stroke()
. Я также добавляю белый эллипс, используя методы ellipse()
и stroke()
.
Это приводит к PDF, который выглядит следующим образом:
Как вы можете видеть, форма эллипса и положение линий различны для разных изображений, потому что я определил свои координаты основанный на ширине и высоте изображения.
Это почти дубликат [Как добавить текст к изображению?] (Http://stackoverflow.com/questions/26814958/how-to-add-text-to-an-image) с основной разницей что этот новый вопрос касается добавления строк вместо текста. Однако принцип остается прежним: вместо добавления текста в 'PdfContentByte' вы добавляете строки, используя команды' MoveTo() ',' LineTo() 'и' Stroke() '. Для получения более похожих ответов, пожалуйста, скачайте бесплатную электронную книгу [The Best iText Questions on StackOverflow] (http://pages.itextpdf.com/ebook-stackoverflow-questions.html) –
Нет, здесь я хочу нарисовать линии на основе изображения на x и y cordinates –
Есть ли другой способ, кроме PdfContentbyte –