PDFBox: Глубокие клоны определенных ресурсов со страницы (ColorSpaces) - PullRequest
0 голосов
/ 17 мая 2019

У меня есть случай, когда мне нужно глубоко клонировать определенный ресурс (только ColorSpaces), я не хочу глубоко клонировать все ресурсы по нескольким причинам, я хочу поверхностно копировать ресурсы, но только глубокие клоны цветовых пространств, этовозможный?Я пытался глубоко клонировать цветовые пространства, но это не сработало, но у него есть проблемы

Я пытался поверхностно скопировать ресурсы в xobject и глубоко клонировать цветовые пространства, но это не сработало

            PDFormXObject xobject = new PDFormXObject(target);
            InputStream in = null;
            OutputStream os = null;
            if (page.hasContents()) {
                try {
                    in = page.getContents();
                    os = xobject.getStream().createOutputStream(COSName.FLATE_DECODE);
                    IOUtils.copy(in, os);
                } finally {
                    IOUtils.closeQuietly(in);
                    IOUtils.closeQuietly(os);
                }
                xobject.setResources(page.getResources());
                ArrayList<PDSeparation> set = new ArrayList<PDSeparation>();
                    for (COSName colorSpaceName : page.getResources().getColorSpaceNames()) {
                        PDColor spotColor = page.getResources().getColorSpace(colorSpaceName).getInitialColor();
                        if (spotColor.getColorSpace() != null && spotColor.getColorSpace() instanceof PDSeparation) {
                            PDSeparation SeparationColorSpace = (PDSeparation) spotColor.getColorSpace();
                            COSArray arr = (COSArray) cloneForNewDocument(SeparationColorSpace.getCOSObject());
                            xobject.getResources().add(new PDSeparation(arr));
                        }
                    }  

Возможно ли глубокое клонирование цветовых пространств со страницы и поверхностное копирование остальных ресурсов?

...