Здравейте как можем да преоразмеряваме изображението в iText 7. Аз не мога да намеря PDFTemplate в itext 7 сега, което се използва за изрязване на изображението. ,
public Image cropImage(PdfWriter writer, Image image, float leftReduction, float rightReduction, float topReduction, float bottomReduction) throws DocumentException {
float width = image.getScaledWidth();
float height = image.getScaledHeight();
PdfTemplate template = writer.getDirectContent().createTemplate(
width - leftReduction - rightReduction,
height - topReduction - bottomReduction);
template.addImage(image,
width, 0, 0,
height, -leftReduction, -bottomReduction);
return Image.getInstance(template);
}
Това се използва за itext 5
Отговори:
1 за отговор № 1Да предположим, че имате това изображение с размери 900 x 1200 пиксела:
Но искате да покажете само част от изображението (например топките за пинг-понг):
След това можете да използвате този код iText 7:
PdfDocument pdf = new PdfDocument(new PdfWriter("cropimage.pdf"));
Document document = new Document(pdf);
Image image = new Image(ImageDataFactory.create(imagePath));
image.setFixedPosition(-20, -320);
Rectangle rectangle = new Rectangle(300, 300);
PdfFormXObject template = new PdfFormXObject(rectangle);
Canvas canvas = new Canvas(template, pdf);
canvas.add(image);
Image croppedImage = new Image(template);
document.add(croppedImage);
document.close();
Създаваме един Image
примерно с цялото изображение и задаваме фиксираната позиция по такъв начин, че да отстраним 20 пиксела отляво и 320 от дъното.
Създаваме правоъгълник с 300 x 300 потребителски единици. Това определя размера на изрязаното изображение.
Създаваме a PdfFormXObject
използвайки този правоъгълник. В езика iText 5 формулярът Form XObject се наричаше a PdfTemplate
.
Създаваме a Canvas
обект с това template
, и ние добавяме изображението към canvas
.
И накрая, създаваме друг Image
използвайки шаблона. Най- Canvas
операцията ще добави пълното изображение към това template
, но тя ще бъде изрязана до размера на rectangle
.
Можете да добавите това croppedImage
към документа.