Просмотр исходного кода

PDFTool(Android) - 1.修复修改文字水印问题

liuxiaolong 1 год назад
Родитель
Сommit
959217c6eb

+ 4 - 0
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/security/encryption/CDocumentEncryptionDialog.java

@@ -269,6 +269,10 @@ public class CDocumentEncryptionDialog extends CBasicBottomSheetDialogFragment i
     }
 
     private void initPermissionInfo() {
+        if (document == null){
+            dismiss();
+            return;
+        }
         if (document.getPermissions() == CPDFDocument.PDFDocumentPermissions.PDFDocumentPermissionsOwner) {
             swOwnerPassword.setChecked(true);
             etOwnerPassword.setEnabled(true);

+ 1 - 0
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/security/watermark/view/CWatermarkPageView.java

@@ -158,6 +158,7 @@ public class CWatermarkPageView extends FrameLayout {
             editDialog.setHint(R.string.tools_type_your_watermark_text_here);
             editDialog.setEditListener(text -> {
                 watermarkView.setText(text);
+                editDialog.dismiss();
             });
             if (getContext() instanceof FragmentActivity) {
                 editDialog.show(((FragmentActivity) getContext()).getSupportFragmentManager(), "editDialog");

+ 2 - 0
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/security/watermark/view/CWatermarkView.java

@@ -693,6 +693,8 @@ public class CWatermarkView extends View {
 
     public void setText(String text) {
         txtContent = text;
+        calculateBaseLine();
+        calculateDrawToCenterDistance();
         transformDraw();
     }
 

+ 8 - 8
PDFViewer/src/main/java/com/compdfkit/pdfviewer/home/DocumentListFragment.java

@@ -23,8 +23,10 @@ import androidx.recyclerview.widget.LinearLayoutManager;
 
 import com.compdfkit.core.common.CPDFDocumentException;
 import com.compdfkit.core.document.CPDFDocument;
+import com.compdfkit.core.document.CPDFInfo;
 import com.compdfkit.pdfviewer.R;
 import com.compdfkit.pdfviewer.databinding.FragmentDocumentListBinding;
+import com.compdfkit.pdfviewer.home.datas.FunDatas;
 import com.compdfkit.pdfviewer.home.samples.SamplesFactory;
 import com.compdfkit.tools.common.utils.CFileUtils;
 import com.compdfkit.tools.common.utils.activitycontracts.CSelectPDFDocumentResultContract;
@@ -94,6 +96,11 @@ public class DocumentListFragment extends Fragment {
                 blankPageDialogFragment.setOnEditDoneCallback(() -> {
                     try {
                         // create document
+                        if (document.getInfo() != null) {
+                            CPDFInfo info = document.getInfo();
+                            info.setAuthor(getString(R.string.tools_compdfkit_author));
+                            document.setInfo(info);
+                        }
                         String fileName = "SampleBlankPDF.pdf";
                         File pdfFile = new File(getContext().getCacheDir(), CFileUtils.CACHE_FOLDER + File.separator + fileName);
                         pdfFile = CFileUtils.renameNameSuffix(pdfFile);
@@ -125,7 +132,7 @@ public class DocumentListFragment extends Fragment {
      */
     private void initDocumentList() {
         funListAdapter = new CHomeFunListAdapter();
-        funListAdapter.setList(getDocumentList());
+        funListAdapter.setList(FunDatas.getDocumentListByFunType(getContext(), funType));
         binding.recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
         binding.recyclerView.setAdapter(funListAdapter);
         funListAdapter.setOnItemClickListener((adapter, view, position) -> {
@@ -137,13 +144,6 @@ public class DocumentListFragment extends Fragment {
         });
     }
 
-    public List<HomeFunBean> getDocumentList() {
-        return Arrays.asList(
-                HomeFunBean.head(getContext(), R.string.tools_click_to_open_process),
-                HomeFunBean.assetsFile(getContext(), "PDF32000_2008.pdf")
-        );
-    }
-
     private void enterFunctions(String filePath, Uri uri) {
         SamplesFactory factory = new SamplesFactory(this, filePath, uri);
         factory.getImpl(funType).run();

+ 2 - 2
PDFViewer/src/main/java/com/compdfkit/pdfviewer/home/HomeFunBean.java

@@ -81,10 +81,10 @@ public class HomeFunBean {
         return funBean;
     }
 
-    public static HomeFunBean assetsFile(Context context, String assetsName) {
+    public static HomeFunBean assetsFile(Context context, String assetsName, String title) {
         HomeFunBean funBean = new HomeFunBean();
         funBean.setType(FunType.SamplePDF);
-        funBean.setTitle(assetsName);
+        funBean.setTitle(title);
         funBean.setIconResId(R.drawable.ic_fun_samples_pdf);
         funBean.setFilePath(CFileUtils.getAssetsTempFile(context, assetsName));
         return funBean;

+ 23 - 1
PDFViewer/src/main/java/com/compdfkit/pdfviewer/home/datas/FunDatas.java

@@ -15,6 +15,7 @@ import android.content.Context;
 import com.compdfkit.pdfviewer.R;
 import com.compdfkit.pdfviewer.home.HomeFunBean;
 
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
@@ -38,7 +39,28 @@ public class FunDatas {
                 new HomeFunBean(context, HomeFunBean.FunType.Compress, R.drawable.ic_fun_compress, R.string.tools_fun_compress, R.string.tools_fun_compress_desc),
                 new HomeFunBean(context, HomeFunBean.FunType.Measurement, R.drawable.ic_fun_mesurement, R.string.tools_fun_measurement, R.string.tools_fun_measurement_desc),
                 HomeFunBean.head(context, R.string.tools_click_to_open_process),
-                HomeFunBean.assetsFile(context, "PDF32000_2008.pdf")
+                HomeFunBean.assetsFile(context, "PDF32000_2008.pdf", "ComPDFKit_Sample_File_Android.pdf")
         );
     }
+
+
+    public static List<HomeFunBean> getDocumentListByFunType(Context context, HomeFunBean.FunType funType){
+        List<HomeFunBean> list = new ArrayList<>();
+        list.add( HomeFunBean.head(context, R.string.tools_click_to_open_process));
+        switch (funType) {
+            case Viewer:
+                list.add(HomeFunBean.assetsFile(context, "PDF32000_2008.pdf", "ComPDFKit_Viewer_Sample_File.pdf"));
+                break;
+            case Annotations:
+                list.add(HomeFunBean.assetsFile(context, "PDF32000_2008.pdf", "ComPDFKit_Annotations_Sample_File.pdf"));
+                break;
+            case Forms:
+                list.add(HomeFunBean.assetsFile(context, "PDF32000_2008.pdf", "ComPDFKit_Forms_Sample_File.pdf"));
+                break;
+            default:
+                list.add(HomeFunBean.assetsFile(context, "PDF32000_2008.pdf", "PDF32000_2008.pdf"));
+                break;
+        }
+        return list;
+    }
 }