Переглянути джерело

pdftools(android) - 记住文字属性面板的字体名称

libai 1 рік тому
батько
коміт
c9090b9710

BIN
compdfkit-repo/compdfkit-ui/ComPDFKit-UI.aar


BIN
compdfkit-repo/compdfkit/ComPDFKit.aar


+ 1 - 0
compdfkit-tools/src/main/java/com/compdfkit/tools/common/views/pdfstyle/CAnnotStyle.java

@@ -281,6 +281,7 @@ public class CAnnotStyle {
     public void setFontType(CPDFTextAttribute.FontNameHelper.FontType fontType) {
         boolean update = fontType != this.fontType;
         this.fontType = fontType;
+        externFontName = "";
         Log.e("CAnnotStyle", "setFontType(" + fontType + ", update:" + update + ")");
         updateFontType(fontType, update);
     }

+ 28 - 14
compdfkit-tools/src/main/java/com/compdfkit/tools/edit/pdfproperties/CEditTextProperFragment.java

@@ -121,20 +121,34 @@ public class CEditTextProperFragment extends CBasicPropertiesFragment implements
             fontSpinnerAdapter = new CExternFontSpinnerAdapter(getContext(), fontTypes, CPDFSysFontUtils.GetSysFontName());
             fontSpinner.setAdapter(fontSpinnerAdapter);
 
-            switch (annotStyle.getFontType()) {
-                case Unknown:
-                    fontSpinner.setSelection(0);
-                    break;
-                case Courier:
-                    fontSpinner.setSelection(1);
-                    break;
-                case Helvetica:
-                    fontSpinner.setSelection(2);
-                    break;
-                case Times_Roman:
-                    fontSpinner.setSelection(3);
-                    break;
-                default:break;
+            String externFontName = annotStyle.getExternFontName();
+            if (TextUtils.isEmpty(externFontName)) {
+                switch (annotStyle.getFontType()) {
+                    case Unknown:
+                        fontSpinner.setSelection(0);
+                        break;
+                    case Courier:
+                        fontSpinner.setSelection(1);
+                        break;
+                    case Helvetica:
+                        fontSpinner.setSelection(2);
+                        break;
+                    case Times_Roman:
+                        fontSpinner.setSelection(3);
+                        break;
+                    default:
+                        break;
+                }
+            } else {
+                List<String> fontNameList = CPDFSysFontUtils.GetSysFontName();
+                if (fontNameList != null) {
+                    for (int i = 0; i < fontNameList.size(); i++) {
+                        if (fontNameList.get(i).contains(externFontName)) {
+                            fontSpinner.setSelection(fontSpinnerAdapter.getStandardFontCount() + i);
+                            break;
+                        }
+                    }
+                }
             }
 
             colorListView.setSelectColor(annotStyle.getTextColor());

+ 14 - 0
compdfkit-tools/src/main/java/com/compdfkit/tools/edit/pdfproperties/pdfstyle/CEditSelectionStyle.java

@@ -170,6 +170,20 @@ public class CEditSelectionStyle implements CStyleProvider {
             style.setTextColor(textSelections.getColor());
             int fontsize = (int) textSelections.getFontSize();
             style.setFontSize(fontsize > 0 ? fontsize : 25);
+            String fontname = textSelections.getFontName();
+            if (fontname != null) {
+                if (fontname.contains("Courier")) {
+                    style.setFontType(CPDFTextAttribute.FontNameHelper.FontType.Courier);
+                } else if (fontname.contains("Helvetica")) {
+                    style.setFontType(CPDFTextAttribute.FontNameHelper.FontType.Helvetica);
+                } else if (fontname.contains("Times")) {
+                    style.setFontType(CPDFTextAttribute.FontNameHelper.FontType.Times_Roman);
+                } else {
+                    style.setExternFontName(fontname);
+                }
+            } else {
+                style.setFontType(CPDFTextAttribute.FontNameHelper.FontType.Unknown);
+            }
         }
         return style;
     }