public void copyIntoGraphicsState()

in pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/state/PDExtendedGraphicsState.java [67:175]


    public void copyIntoGraphicsState( PDGraphicsState gs ) throws IOException
    {
        for( COSName key : dict.keySet() )
        {
            if( key.equals( COSName.LW ) )
            {
                gs.setLineWidth( defaultIfNull( getLineWidth(), 1 ) );
            }
            else if( key.equals( COSName.LC ) )
            {
                gs.setLineCap( getLineCapStyle() );
            }
            else if( key.equals( COSName.LJ ) )
            {
                gs.setLineJoin( getLineJoinStyle() );
            }
            else if( key.equals( COSName.ML ) )
            {
                gs.setMiterLimit( defaultIfNull( getMiterLimit(), 10 ) );
            }
            else if( key.equals( COSName.D ) )
            {
                gs.setLineDashPattern( getLineDashPattern() );
            }
            else if( key.equals( COSName.RI ) )
            {
                gs.setRenderingIntent( getRenderingIntent() );
            }
            else if( key.equals( COSName.OPM ) )
            {
                Integer overprintMode = getOverprintMode();
                gs.setOverprintMode(overprintMode != null ? overprintMode : 0);
            }
            else if( key.equals( COSName.OP ) )
            {
                gs.setOverprint( getStrokingOverprintControl());
            }
            else if( key.equals( COSName.OP_NS ) )
            {
                gs.setNonStrokingOverprint(getNonStrokingOverprintControl());
            }
            else if( key.equals( COSName.FONT ) )
            {
                PDFontSetting setting = getFontSetting();
                if (setting != null)
                {
                    gs.getTextState().setFont( setting.getFont() );
                    gs.getTextState().setFontSize( setting.getFontSize() );
                }
            }
            else if( key.equals( COSName.FL ) )
            {
                gs.setFlatness( defaultIfNull( getFlatnessTolerance(), 1.0f ) );
            }
            else if( key.equals( COSName.SM ) )
            {
                gs.setSmoothness( defaultIfNull( getSmoothnessTolerance(), 0 ) );
            }
            else if( key.equals( COSName.SA ) )
            {
                gs.setStrokeAdjustment( getAutomaticStrokeAdjustment() );
            }
            else if( key.equals( COSName.CA ) )
            {
                gs.setAlphaConstant( defaultIfNull( getStrokingAlphaConstant(), 1.0f ) );
            }
            else if( key.equals( COSName.CA_NS ) )
            {
                gs.setNonStrokeAlphaConstant( defaultIfNull( getNonStrokingAlphaConstant(), 1.0f ) );
            }
            else if( key.equals( COSName.AIS ) )
            {
                gs.setAlphaSource( getAlphaSourceFlag() );
            }
            else if( key.equals( COSName.TK ) )
            {
                gs.getTextState().setKnockoutFlag( getTextKnockoutFlag() );
            }
            else if( key.equals( COSName.SMASK ) ) 
            {
                PDSoftMask softmask = getSoftMask();
                if (softmask != null)
                {
                    // Softmask must know the CTM at the time the ExtGState is activated. Read
                    // https://bugs.ghostscript.com/show_bug.cgi?id=691157#c7 for a good explanation.
                    softmask.setInitialTransformationMatrix(gs.getCurrentTransformationMatrix().clone());
                }
                gs.setSoftMask(softmask);
            }
            else if( key.equals( COSName.BM ) ) 
            {
                gs.setBlendMode( getBlendMode() );
            }
            else if (key.equals(COSName.TR))
            {
                if (dict.containsKey(COSName.TR2))
                {
                    // "If both TR and TR2 are present in the same graphics state parameter dictionary, 
                    // TR2 shall take precedence."
                    continue;
                }
                gs.setTransfer(getTransfer());
            }
            else if (key.equals(COSName.TR2))
            {
                gs.setTransfer(getTransfer2());
            }
        }
    }