diff --git a/build.third_step0.gradle b/build.third_step0.gradle index 0a76a7a51..a7d30d649 100644 --- a/build.third_step0.gradle +++ b/build.third_step0.gradle @@ -16,7 +16,7 @@ targetCompatibility=1.7 //解压lib下的jar到classes文件夹 -version='10.0' + jar{ baseName="fine-third" zip64 true @@ -42,11 +42,21 @@ FileTree files =fileTree(dir:'./',include:'build*.gradle') def buildDir=files[0].path.substring(0,files[0].path.lastIndexOf (java.io.File.separator)) def branchName=buildDir.substring(buildDir.lastIndexOf (java.io.File.separator)+1) +def date = new Date() +def formattedDate = date.format('yyyy.MM.dd') + def srcDir="." -def MVN_BRANCH = branchVariable.toUpperCase() +def maven_version_build = "" +def indexV = branchName.indexOf( "%2F"); +if(indexV != -1){ + version= branchName.substring(indexV+3, branchName.length()).toUpperCase() + maven_version_build = project.version +"-" + branchName.substring(0, indexV).toUpperCase() +"-SNAPSHOT" +} else { + version= branchName + maven_version_build = project.version +"-SNAPSHOT" +} -// @branch - 分支信息 -def maven_version="${version}-${MVN_BRANCH}-SNAPSHOT" +def maven_version="${version}.${formattedDate}" def jar_version = version configurations { @@ -67,13 +77,32 @@ publishing { groupId "com.fr.third" artifactId "fine-third" version maven_version + ext.repo = 'release' + from components.java + } + + third_build(MavenPublication) { + groupId "com.fr.third" + artifactId "fine-third" + version maven_version_build + ext.repo = 'snapshot' from components.java } } repositories { maven { - - url "http://mvn.finedevelop.com/repository/fanruan/" + name "release" + url "http://mvn.finedevelop.com/repository/fanruan-release/" + credentials { + username = findProperty("NEXUS_USERNAME") + password = findProperty("NEXUS_PASSWORD") + } + + } + + maven { + name "snapshot" + url "http://mvn.finedevelop.com/repository/fanruan/" credentials { username = findProperty("NEXUS_USERNAME") password = findProperty("NEXUS_PASSWORD") @@ -83,6 +112,17 @@ publishing { } } + +afterEvaluate { + tasks.withType(PublishToMavenRepository) { task -> + if (task.publication.hasProperty('repo') && task.publication.repo != task.repository.name) { + task.enabled = false + task.group = null + } + } +} + + task unpack(type:Copy) { delete classesDir destinationDir=file(classesDir) @@ -114,4 +154,3 @@ task unpack(type:Copy) { } jar.dependsOn unpack - diff --git a/fine-itext/src/main/java/com/fr/third/v2/lowagie/text/html/Markup.java b/fine-itext/src/main/java/com/fr/third/v2/lowagie/text/html/Markup.java index 09cd4d8ac..63e3a3a04 100644 --- a/fine-itext/src/main/java/com/fr/third/v2/lowagie/text/html/Markup.java +++ b/fine-itext/src/main/java/com/fr/third/v2/lowagie/text/html/Markup.java @@ -52,6 +52,8 @@ package com.fr.third.v2.lowagie.text.html; +import com.fr.third.v2.lowagie.text.ElementTags; +import com.fr.third.v2.lowagie.text.html.simpleparser.ChainedProperties; import java.awt.Color; import java.util.ArrayList; import java.util.List; @@ -417,6 +419,21 @@ public class Markup { return f; } + /** + * 解析当前字号(可能是继承来的) + * + * @param cprops + * @return + */ + public static float parseDefaultFontSize(ChainedProperties cprops) { + if (null == cprops) { + return DEFAULT_FONT_SIZE; + } + String size = cprops.getProperty(ElementTags.SIZE); + return null == size ? Markup.DEFAULT_FONT_SIZE : Markup.parseLength(size, + Markup.DEFAULT_FONT_SIZE); + } + /** * Converts a Color into a HTML representation of this * Color. diff --git a/fine-itext/src/main/java/com/fr/third/v2/lowagie/text/html/simpleparser/FactoryProperties.java b/fine-itext/src/main/java/com/fr/third/v2/lowagie/text/html/simpleparser/FactoryProperties.java index 5e68ef341..752d6bb2d 100644 --- a/fine-itext/src/main/java/com/fr/third/v2/lowagie/text/html/simpleparser/FactoryProperties.java +++ b/fine-itext/src/main/java/com/fr/third/v2/lowagie/text/html/simpleparser/FactoryProperties.java @@ -211,14 +211,14 @@ public class FactoryProperties { List list = Markup.parseNESW(props.getPropertyFromChain("div", Markup.CSS_KEY_MARGIN)); if (null != list && 4 == list.size()) { for (int i = 0; i < HtmlConstants.MARGIN.size() && i < list.size(); i++) { - p.setAttribute(HtmlConstants.MARGIN.get(i), list.get(i)); + p.setAttribute(HtmlConstants.MARGIN.get(i), String.valueOf(Markup.parseLength(list.get(i), Markup.parseDefaultFontSize(props)))); } } } for (String margin : HtmlConstants.MARGIN) { if (props.hasPropertyInChain("div", margin)) { String ss = props.getPropertyFromChain("div", margin); - p.setAttribute(margin, ss); + p.setAttribute(margin, String.valueOf(Markup.parseLength(ss, Markup.parseDefaultFontSize(props)))); } } } diff --git a/fine-itext/src/main/java/com/fr/third/v2/lowagie/text/html/simpleparser/HTMLWorker.java b/fine-itext/src/main/java/com/fr/third/v2/lowagie/text/html/simpleparser/HTMLWorker.java index 2c5e436f2..c16dd77f8 100644 --- a/fine-itext/src/main/java/com/fr/third/v2/lowagie/text/html/simpleparser/HTMLWorker.java +++ b/fine-itext/src/main/java/com/fr/third/v2/lowagie/text/html/simpleparser/HTMLWorker.java @@ -50,6 +50,7 @@ package com.fr.third.v2.lowagie.text.html.simpleparser; +import com.fr.third.v2.lowagie.text.html.utils.DefaultPropertiesHandleUtils; import com.fr.third.v2.lowagie.text.pdf.PdfFont; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; @@ -211,17 +212,7 @@ public class HTMLWorker implements SimpleXMLDocHandler, DocListener { return; try { style.applyStyle(tag, h); - if(tag.equals("p")){ - h.put(Markup.CSS_KEY_MARGINTOP, "16px"); - h.put(Markup.CSS_KEY_MARGINBOTTOM, "16px"); - } - if (tag.equals("th")) { - h.put("b", null); - } - if (tag.equals(HtmlTags.ANCHOR)) { - h.put("u", null); - h.put("color", "blue"); - } + DefaultPropertiesHandleUtils.fillDefaultProperties(tag, h); String follow = (String) FactoryProperties.followTags.get(tag); if (follow != null) { HashMap prop = new HashMap(); @@ -736,7 +727,8 @@ public class HTMLWorker implements SimpleXMLDocHandler, DocListener { currentParagraph.add(chunk); return; } - if (content.trim().length() == 0 && content.indexOf(' ') < 0) { + + if (content.trim().length() == 0 && null == currentParagraph) { return; } diff --git a/fine-itext/src/main/java/com/fr/third/v2/lowagie/text/html/utils/DefaultPropertiesHandleUtils.java b/fine-itext/src/main/java/com/fr/third/v2/lowagie/text/html/utils/DefaultPropertiesHandleUtils.java new file mode 100644 index 000000000..58a9043f6 --- /dev/null +++ b/fine-itext/src/main/java/com/fr/third/v2/lowagie/text/html/utils/DefaultPropertiesHandleUtils.java @@ -0,0 +1,90 @@ +package com.fr.third.v2.lowagie.text.html.utils; + +import com.fr.third.v2.lowagie.text.html.HtmlTags; +import com.fr.third.v2.lowagie.text.html.Markup; +import java.util.HashMap; +import java.util.Properties; + +/** + * 处理标签默认属性值 + * + * @author Hugh.C + * @version 1.0 + * Created by Hugh.C on 2020/7/3 + */ +public class DefaultPropertiesHandleUtils { + + //h1-h6 标签默认字体大小 + private static final HashMap H_TAG_DEFAULT_FONT_SIZE = new HashMap(6); + + //h1-h6 标签默认margin-top and bottom大小 + private static final HashMap H_TAG_DEFAULT_MARGIN = new HashMap(6); + + + static { + H_TAG_DEFAULT_FONT_SIZE.put("h1", "2em"); + H_TAG_DEFAULT_FONT_SIZE.put("h2", "1.5em"); + H_TAG_DEFAULT_FONT_SIZE.put("h3", "1.17em"); + H_TAG_DEFAULT_FONT_SIZE.put("h4", "1em"); + H_TAG_DEFAULT_FONT_SIZE.put("h5", "0.83em"); + H_TAG_DEFAULT_FONT_SIZE.put("h6", "0.67em"); + + H_TAG_DEFAULT_MARGIN.put("h1", "0.67em"); + H_TAG_DEFAULT_MARGIN.put("h2", "0.83em"); + H_TAG_DEFAULT_MARGIN.put("h3", "1em"); + H_TAG_DEFAULT_MARGIN.put("h4", "1.33em"); + H_TAG_DEFAULT_MARGIN.put("h5", "1.67em"); + H_TAG_DEFAULT_MARGIN.put("h6", "2.33em"); + } + + /** + * 填充默认属性值 + * + * @param tag + * @param h + */ + public static void fillDefaultProperties(String tag, HashMap h) { + if (null == tag || null == h) { + return; + } + if (HtmlTags.HEADERCELL.endsWith(tag)) { + h.put("b", null); + return; + } + if (HtmlTags.ANCHOR.equals(tag)) { + h.put("u", null); + h.put("color", "blue"); + return; + } + + String style = (String) h.get("style"); + if (HtmlTags.PARAGRAPH.equals(tag)) { + Properties props = Markup.parseAttributes(style); + if (!props.containsKey(Markup.CSS_KEY_MARGINTOP)) { + h.put(Markup.CSS_KEY_MARGINTOP, "1em"); + } + if (!props.containsKey(Markup.CSS_KEY_MARGINBOTTOM)) { + h.put(Markup.CSS_KEY_MARGINBOTTOM, "1em"); + } + return; + } + + if (H_TAG_DEFAULT_FONT_SIZE.containsKey(tag)) { + h.put("b", null); + Properties props = Markup.parseAttributes(style); + if (!props.containsKey(Markup.CSS_KEY_MARGINTOP)) { + h.put(Markup.CSS_KEY_MARGINTOP, H_TAG_DEFAULT_MARGIN.get(tag)); + } + if (!props.containsKey(Markup.CSS_KEY_MARGINBOTTOM)) { + h.put(Markup.CSS_KEY_MARGINBOTTOM, H_TAG_DEFAULT_MARGIN.get(tag)); + } + if (!props.containsKey(Markup.CSS_KEY_FONTSIZE)) { + h.put("style", new StringBuilder(null == style ? "" : style).append(";") + .append(Markup.CSS_KEY_FONTSIZE).append(":").append(H_TAG_DEFAULT_FONT_SIZE.get(tag)).append(";").toString()); + } + return; + } + + } + +} diff --git a/fine-itext/src/main/java/com/fr/third/v2/lowagie/text/pdf/PdfLine.java b/fine-itext/src/main/java/com/fr/third/v2/lowagie/text/pdf/PdfLine.java index 149aaa007..d33306984 100644 --- a/fine-itext/src/main/java/com/fr/third/v2/lowagie/text/pdf/PdfLine.java +++ b/fine-itext/src/main/java/com/fr/third/v2/lowagie/text/pdf/PdfLine.java @@ -214,6 +214,7 @@ public class PdfLine { // if the chunk couldn't even be truncated, we add everything, so be it else if (overflow != null){ addToLine(overflow); + width = 0; return null; }else{ addToLine(chunk); diff --git a/fine-jackson/src/main/java/com/fr/third/fasterxml/jackson/databind/type/ClassFactory.java b/fine-jackson/src/main/java/com/fr/third/fasterxml/jackson/databind/type/ClassFactory.java index 890f77a89..fb6354f38 100644 --- a/fine-jackson/src/main/java/com/fr/third/fasterxml/jackson/databind/type/ClassFactory.java +++ b/fine-jackson/src/main/java/com/fr/third/fasterxml/jackson/databind/type/ClassFactory.java @@ -8,4 +8,4 @@ public interface ClassFactory { Class classForName(String className) throws ClassNotFoundException; Class classForName(String className, ClassLoader classLoader) throws ClassNotFoundException; -} \ No newline at end of file +} diff --git a/fine-jackson/src/main/java/com/fr/third/fasterxml/jackson/databind/type/TypeFactory.java b/fine-jackson/src/main/java/com/fr/third/fasterxml/jackson/databind/type/TypeFactory.java index 9d9455cb6..efa990886 100644 --- a/fine-jackson/src/main/java/com/fr/third/fasterxml/jackson/databind/type/TypeFactory.java +++ b/fine-jackson/src/main/java/com/fr/third/fasterxml/jackson/databind/type/TypeFactory.java @@ -137,7 +137,7 @@ public final class TypeFactory * ClassLoader used by this factory [databind#624]. */ protected final ClassLoader _classLoader; - + private ClassFactory classFactory; /* @@ -146,6 +146,7 @@ public final class TypeFactory /********************************************************** */ + public void setClassFactory(ClassFactory classFactory) { this.classFactory = classFactory; diff --git a/fine-spring/pom.xml b/fine-spring/pom.xml index 8c03f0952..5fa28d6c9 100644 --- a/fine-spring/pom.xml +++ b/fine-spring/pom.xml @@ -65,7 +65,7 @@ fine-javax-annotation ${revision} - 以下是lib的本地jar包依赖<--> + libıjar<--> com.fr.third aopalliance diff --git a/pom.xml b/pom.xml new file mode 100644 index 000000000..992aad557 --- /dev/null +++ b/pom.xml @@ -0,0 +1,23 @@ + + + 4.0.0 + + fine-hibernate + fine-druid + > + + + com.fr.maven + finereport-maven + 10.0 + ../finereport-maven + + + com.fr.third + base-third-code + ${branch} + pom + + \ No newline at end of file