List of usage examples for com.itextpdf.text.pdf.parser LineDashPattern isSolid
public boolean isSolid()
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); }