如何从PDFBOX中提取(转换后的)BufferedImage,使其完全显示为PDF中的显示

时间:2019-04-25 08:58:38

标签: java image-processing pdfbox

我正试图从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按原样显示,即未旋转翻转等。

我知道我需要对提取的图像进行后期转换。但是我还是不明白,我可以为此目的重用转换矩阵吗?

请提供一些有关进一步走法的建议。 谢谢!

0 个答案:

没有答案