Example usage for com.itextpdf.text.pdf.parser LineDashPattern isSolid

List of usage examples for com.itextpdf.text.pdf.parser LineDashPattern isSolid

Introduction

In this page you can find the example usage for com.itextpdf.text.pdf.parser LineDashPattern isSolid.

Prototype

public boolean isSolid() 

Source Link

Document

Checks whether the dashed pattern is solid or not.

Usage

From source file:mkl.testarea.itext5.pdfcleanup.PdfCleanUpRegionFilter.java

License:Open Source License

protected Path filterStrokePath(Path sourcePath, Matrix ctm, float lineWidth, int lineCapStyle,
        int lineJoinStyle, float miterLimit, LineDashPattern lineDashPattern) {
    Path path = sourcePath;/*from   www . ja v a 2  s.c  om*/
    JoinType joinType = getJoinType(lineJoinStyle);
    EndType endType = getEndType(lineCapStyle);

    if (lineDashPattern != null) {
        if (!lineDashPattern.isSolid()) {
            path = applyDashPattern(path, lineDashPattern);
        }
    }

    ClipperOffset offset = new ClipperOffset(miterLimit,
            StrictPdfCleanUpProcessor.arcTolerance * StrictPdfCleanUpProcessor.floatMultiplier);
    List<Subpath> degenerateSubpaths = addPath(offset, path, joinType, endType);

    PolyTree resultTree = new PolyTree();
    offset.execute(resultTree, lineWidth * StrictPdfCleanUpProcessor.floatMultiplier / 2);
    Path offsetedPath = convertToPath(resultTree);

    if (degenerateSubpaths.size() > 0) {
        if (endType == EndType.OPEN_ROUND) {
            List<Subpath> circles = convertToCircles(degenerateSubpaths, lineWidth / 2);
            offsetedPath.addSubpaths(circles);
        } else if (endType == EndType.OPEN_SQUARE && lineDashPattern != null) {
            List<Subpath> squares = convertToSquares(degenerateSubpaths, lineWidth, sourcePath);
            offsetedPath.addSubpaths(squares);
        }
    }

    return filterFillPath(offsetedPath, ctm, PathPaintingRenderInfo.NONZERO_WINDING_RULE);
}