Как извлечь (посттрансформировать) BufferedImage из PDFBOX, чтобы оно отображалось точно так же, как оно отображается в PDF - PullRequest
0 голосов
/ 25 апреля 2019

Я пытаюсь извлечь изображения из окна PDF точно так, как они отображаются в PDF

    @Override
    protected void processOperator(Operator operator, List<COSBase> operands) throws IOException {

        final String operation = operator.getName();
        if ("Do".equals(operation)) {
            final COSName objectName = (COSName) operands.get(0);
            final PDXObject element = getResources().getXObject(objectName);
            if (element instanceof PDImageXObject) {
                final ImageFile imageFile = buildImage(element);
                images.add(imageFile);
            } else if (element instanceof PDFormXObject) {
                PDFormXObject form = (PDFormXObject) element;
                showForm(form);
            }
        } else {
            super.processOperator(operator, operands);
        }
    }

    private void buildImage(final PDXObject element) throws IOException {
        final PDRectangle cropBox = getCurrentPage().getCropBox();
        final PDImageXObject image = (PDImageXObject) element;
        final Matrix ctmNew = getGraphicsState().getCurrentTransformationMatrix();
        final BufferedImage bImage = image.getImage(); 
        transformImage(bImage, ctmNew); // please suggest what to do here???
    }

Извлеченное изображение BufferedImage отображается как есть, то есть не повернуто, перевернуто и т. Д.

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

Пожалуйста, дайте несколько советов о том, как идти дальше. Спасибо!

...