|
@@ -3,12 +3,14 @@ package com.compdfkit.pdfviewer;
|
|
|
import androidx.annotation.NonNull;
|
|
|
import androidx.appcompat.app.AppCompatActivity;
|
|
|
import androidx.appcompat.widget.Toolbar;
|
|
|
+import androidx.core.content.ContextCompat;
|
|
|
import androidx.core.view.MenuProvider;
|
|
|
|
|
|
import android.content.Intent;
|
|
|
import android.graphics.Bitmap;
|
|
|
-import android.graphics.BitmapFactory;
|
|
|
+import android.graphics.Canvas;
|
|
|
import android.graphics.RectF;
|
|
|
+import android.graphics.drawable.Drawable;
|
|
|
import android.net.Uri;
|
|
|
import android.os.Build;
|
|
|
import android.os.Bundle;
|
|
@@ -23,35 +25,51 @@ import android.view.View;
|
|
|
import android.widget.ImageView;
|
|
|
import android.widget.Toast;
|
|
|
|
|
|
+import com.compdfkit.core.common.CPDFDocumentException;
|
|
|
import com.compdfkit.core.document.CPDFDocument;
|
|
|
import com.compdfkit.core.page.CPDFPage;
|
|
|
import com.compdfkit.core.utils.ColorUtils;
|
|
|
+import com.compdfkit.core.watermark.CPDFImageWatermark;
|
|
|
import com.compdfkit.core.watermark.CPDFTextWatermark;
|
|
|
import com.compdfkit.core.watermark.CPDFWatermark;
|
|
|
+import com.compdfkit.pdfviewer.customview.ImageWatermarkView;
|
|
|
+import com.compdfkit.pdfviewer.customview.TextWatermarkView;
|
|
|
import com.compdfkit.pdfviewer.customview.WatermarkView;
|
|
|
+import com.compdfkit.pdfviewer.entity.WatermarkSetting;
|
|
|
import com.compdfkit.pdfviewer.fragments.WatermarkConsoleFragment;
|
|
|
+import com.compdfkit.pdfviewer.tools.CoordinateMapper;
|
|
|
import com.compdfkit.ui.reader.CPDFReaderView;
|
|
|
import com.google.android.material.tabs.TabLayout;
|
|
|
|
|
|
+import org.w3c.dom.Text;
|
|
|
+
|
|
|
import java.io.File;
|
|
|
|
|
|
public class MainActivity extends AppCompatActivity implements MenuProvider {
|
|
|
private ImageView pageImage;
|
|
|
|
|
|
private CPDFDocument document = new CPDFDocument(this);
|
|
|
-
|
|
|
private WatermarkView watermark;
|
|
|
+ private WatermarkConsoleFragment consoleFragment;
|
|
|
+
|
|
|
+ private int currentPageHeight = 0;
|
|
|
+ private int currentPageWidth = 0;
|
|
|
+
|
|
|
+ private float sizeConvertRate = 0;
|
|
|
+
|
|
|
+ private CPDFPage testPage;
|
|
|
|
|
|
@Override
|
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
|
super.onCreate(savedInstanceState);
|
|
|
setContentView(R.layout.activity_main);
|
|
|
+ addMenuProvider(this);
|
|
|
|
|
|
Toolbar toolbar = findViewById(R.id.toolbar);
|
|
|
setSupportActionBar(toolbar);
|
|
|
|
|
|
watermark = findViewById(R.id.watermark_text);
|
|
|
- WatermarkConsoleFragment consoleFragment = (WatermarkConsoleFragment) getSupportFragmentManager().findFragmentByTag("console_fragment");
|
|
|
+ consoleFragment = (WatermarkConsoleFragment) getSupportFragmentManager().findFragmentByTag("console_fragment");
|
|
|
|
|
|
assert consoleFragment != null;
|
|
|
consoleFragment.setAssociatedWatermark(watermark);
|
|
@@ -61,11 +79,12 @@ public class MainActivity extends AppCompatActivity implements MenuProvider {
|
|
|
TabLayout tabLayout = findViewById(R.id.tab_layout);
|
|
|
tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
|
|
|
@Override
|
|
|
-
|
|
|
public void onTabSelected(TabLayout.Tab tab) {
|
|
|
changeWatermark(tab.getPosition());
|
|
|
|
|
|
+ consoleFragment.setAssociatedWatermark(watermark);
|
|
|
consoleFragment.changePicker(tab.getPosition());
|
|
|
+ watermark = tab.getPosition() == 0 ? findViewById(R.id.watermark_text) : findViewById(R.id.watermark_image);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -81,23 +100,42 @@ public class MainActivity extends AppCompatActivity implements MenuProvider {
|
|
|
startActivity(intent);
|
|
|
}
|
|
|
|
|
|
- File PDFFile = new File("/storage/emulated/0/TestPDFs/01.pdf");
|
|
|
+ File PDFFile = new File("/storage/emulated/0/TestPDFs/test.pdf");
|
|
|
Uri PDFUri = Uri.fromFile(PDFFile);
|
|
|
|
|
|
CPDFDocument.PDFDocumentError error = document.open(PDFFile.getAbsolutePath());
|
|
|
|
|
|
+ if (error == CPDFDocument.PDFDocumentError.PDFDocumentErrorPassword) {
|
|
|
+ error = document.open(PDFUri, "password");
|
|
|
+ } else if (error == CPDFDocument.PDFDocumentError.PDFDocumentErrorSuccess) {
|
|
|
+ Toast.makeText(this, "File:" + document.getFileName() + " open success.", Toast.LENGTH_SHORT).show();
|
|
|
+ } else {
|
|
|
+ Toast.makeText(this, "File failed.", Toast.LENGTH_SHORT).show();
|
|
|
+ }
|
|
|
+
|
|
|
CPDFPage currentPage = document.pageAtIndex(0);
|
|
|
+ testPage = currentPage;
|
|
|
|
|
|
RectF pageSize = document.getPageSize(0);
|
|
|
float pageW = pageSize.right - pageSize.left;
|
|
|
float pageH = pageSize.bottom - pageSize.top;
|
|
|
|
|
|
pageImage.post(() -> {
|
|
|
- int imageWidth = (int) (pageImage.getHeight() / pageH * pageW);
|
|
|
- Bitmap pageBitmap = Bitmap.createBitmap(imageWidth, pageImage.getHeight(), Bitmap.Config.RGB_565);
|
|
|
+ int imageHeight = pageImage.getHeight();
|
|
|
+ sizeConvertRate = pageImage.getHeight() / pageH;
|
|
|
+ int imageWidth = (int) (sizeConvertRate * pageW);
|
|
|
+
|
|
|
+ TextWatermarkView tempT = (TextWatermarkView) watermark;
|
|
|
+ tempT.setSizeConvertRate(sizeConvertRate);
|
|
|
+ ImageWatermarkView tempI = findViewById(R.id.watermark_image);
|
|
|
+ tempI.setSizeConvertRate(sizeConvertRate);
|
|
|
|
|
|
- currentPage.renderPage(pageBitmap, 0, 0, imageWidth, pageImage.getHeight(), 0xFFFFFFFF, 100, 0, true, true);
|
|
|
- pageImage.setImageBitmap(pageBitmap);
|
|
|
+ currentPageHeight = pageImage.getHeight();
|
|
|
+ currentPageWidth = imageWidth;
|
|
|
+ Bitmap pageBitmap = Bitmap.createBitmap(imageWidth, pageImage.getHeight(), Bitmap.Config.ARGB_4444);
|
|
|
+
|
|
|
+ currentPage.renderPage(pageBitmap, 0, 0, imageWidth, pageImage.getHeight(), 0xFFFFFFFF, 255, 0, true, true);
|
|
|
+ refreshPageImage(pageBitmap);
|
|
|
|
|
|
pageImage.setOnDragListener(new View.OnDragListener() {
|
|
|
float currentSlope;
|
|
@@ -112,7 +150,7 @@ public class MainActivity extends AppCompatActivity implements MenuProvider {
|
|
|
@Override
|
|
|
public boolean onDrag(View view, DragEvent dragEvent) {
|
|
|
|
|
|
- if (watermark.getCurrentEvent() == 0) {
|
|
|
+ if (watermark.getCurrentEvent() == WatermarkView.DRAG_EVENT) {
|
|
|
float xOffset = 1.0f * watermark.getWidth() / 2;
|
|
|
float yOffset = 1.0f * watermark.getHeight() / 2;
|
|
|
|
|
@@ -122,25 +160,29 @@ public class MainActivity extends AppCompatActivity implements MenuProvider {
|
|
|
|
|
|
//TODO:需要优化控件越界行为
|
|
|
switch (dragEvent.getAction()) {
|
|
|
- case DragEvent.ACTION_DRAG_STARTED:
|
|
|
- return true;
|
|
|
- case DragEvent.ACTION_DRAG_ENTERED:
|
|
|
- return true;
|
|
|
case DragEvent.ACTION_DRAG_LOCATION:
|
|
|
- watermark.setX(dragEvent.getX() + xOutline - xOffset); // dragEvent.getX()
|
|
|
- watermark.setY(dragEvent.getY() + yOutline - yOffset); // dragEvent.getY()
|
|
|
-
|
|
|
- Log.d("DragTest", "Drag Location: (" + dragEvent.getX() + "," + dragEvent.getY() + ")");
|
|
|
- Log.d("DragTest", "Watermark Location: (" + location[0] + "," + location[1] + ")");
|
|
|
+ watermark.setX(dragEvent.getX() + xOutline - xOffset);
|
|
|
+ watermark.setY(dragEvent.getY() + yOutline - yOffset);
|
|
|
+
|
|
|
+ watermark.setPDFXOffset(CoordinateMapper.convertViewXtoPDFXOffset(watermark.getX() - pageImage.getLeft(), xOffset, imageWidth / 2, sizeConvertRate));
|
|
|
+ watermark.setPDFYOffset(CoordinateMapper.convertViewYtoPDFYOffset(watermark.getY() - pageImage.getTop(), yOffset, imageHeight / 2, sizeConvertRate));
|
|
|
+
|
|
|
+// Log.d("DragTest", "Drag Location: (" + dragEvent.getX() + "," + dragEvent.getY() + ")");
|
|
|
+// Log.d("DragTest", "Watermark Location: (" + location[0] + "," + location[1] + ")");
|
|
|
+// Log.d("DragTest", "Watermark get xy: (" + watermark.getX() + "," + watermark.getY() + ")");
|
|
|
+// Log.d("DragTest", "pdf page w h: (" + pageW + "," + pageH + ")");
|
|
|
+// Log.d("DragTest", "Watermark get PDF xy: (" + CoordinateMapper.convertViewXtoPDFXOffset(watermark.getX() - pageImage.getLeft(), xOffset, imageWidth / 2, sizeConvertRate)
|
|
|
+// + "," + CoordinateMapper.convertViewYtoPDFYOffset(watermark.getY() - pageImage.getTop(), yOffset, imageHeight / 2, sizeConvertRate) + ")");
|
|
|
return true;
|
|
|
case DragEvent.ACTION_DRAG_ENDED:
|
|
|
watermark.setVisibility(View.VISIBLE);
|
|
|
return false;
|
|
|
+ default:
|
|
|
+ return true;
|
|
|
}
|
|
|
- return true;
|
|
|
} else {
|
|
|
- float xOffset = 1.0f * watermark.getWidth() / 2;/* 1.0f * watermark.getWatermarkLayout().getWidth() / 2; /* 控件一半宽度 */
|
|
|
- float yOffset = 1.0f * watermark.getHeight() / 2;;/*1.0f * watermark.getWatermarkLayout().getHeight() / 2; /* 控件一半高度 */
|
|
|
+ float xOffset = 1.0f * watermark.getWidth() / 2; /* 控件一半宽度 */
|
|
|
+ float yOffset = 1.0f * watermark.getHeight() / 2; /* 控件一半高度 */
|
|
|
|
|
|
float baseSlope = yOffset / xOffset * -1;
|
|
|
|
|
@@ -149,125 +191,31 @@ public class MainActivity extends AppCompatActivity implements MenuProvider {
|
|
|
float centerPointX = watermark.getX() + 1.0f * watermark.getWidth() / 2; /* 控件中心点x = 当前控件位置x + 控件一半宽度 */
|
|
|
float centerPointY = watermark.getY() + 1.0f * watermark.getHeight() / 2; /* 控件中心点y = 当前控件位置y + 控件一半高度 */
|
|
|
|
|
|
- switch (dragEvent.getAction()) {
|
|
|
- case DragEvent.ACTION_DRAG_STARTED:
|
|
|
- return true;
|
|
|
- case DragEvent.ACTION_DRAG_ENTERED:
|
|
|
- return true;
|
|
|
- case DragEvent.ACTION_DRAG_LOCATION:
|
|
|
-
|
|
|
- //TODO:该部分的取坐标存在冗余代码
|
|
|
- currentSlope = (dragEvent.getY() + pageImage.getTop() - centerPointY) / (dragEvent.getX() + pageImage.getLeft() - centerPointX) * -1;
|
|
|
- currentRotation = Math.atan(currentSlope) * convertRate;
|
|
|
+ if (dragEvent.getAction() == DragEvent.ACTION_DRAG_LOCATION) {
|
|
|
+ //TODO:该部分的取坐标存在冗余代码
|
|
|
+ currentSlope = (dragEvent.getY() + pageImage.getTop() - centerPointY) / (dragEvent.getX() + pageImage.getLeft() - centerPointX) * -1;
|
|
|
+ currentRotation = Math.atan(currentSlope) * convertRate;
|
|
|
|
|
|
- if (dragEvent.getY() + pageImage.getTop() < centerPointY && dragEvent.getX() + pageImage.getLeft() < centerPointX)
|
|
|
- currentRotation += 180;
|
|
|
+ if ((dragEvent.getY() + pageImage.getTop() < centerPointY && dragEvent.getX() + pageImage.getLeft() < centerPointX) || (dragEvent.getY() + pageImage.getTop() > centerPointY && dragEvent.getX() + pageImage.getLeft() < centerPointX)) {
|
|
|
+ currentRotation += 180;
|
|
|
+ currentSlope += 3.1415926f;
|
|
|
+ }
|
|
|
|
|
|
- if (dragEvent.getY() + pageImage.getTop() > centerPointY && dragEvent.getX() + pageImage.getLeft() < centerPointX)
|
|
|
- currentRotation += 180;
|
|
|
+ resultRotation = currentRotation - Math.atan(baseSlope) * convertRate;
|
|
|
|
|
|
- resultRotation = currentRotation - Math.atan(baseSlope) * convertRate;
|
|
|
-
|
|
|
- watermark.setRotation((float) resultRotation * -1);
|
|
|
- watermark.setRotationRadian((float) Math.atan(currentSlope));
|
|
|
- Log.d("RollTest", "Current slope: " + currentSlope + ", Result rotation: " + resultRotation + ", Current rotation: " + currentRotation);
|
|
|
- return true;
|
|
|
- case DragEvent.ACTION_DRAG_ENDED:
|
|
|
- watermark.setVisibility(View.VISIBLE);
|
|
|
- return true;
|
|
|
+ watermark.setRotation((float) resultRotation * -1);
|
|
|
+ watermark.setRotationRadian((float) (resultRotation / convertRate));
|
|
|
+// Log.d("RollTest", "Current slope: " + currentSlope + ", Result rotation: " + resultRotation + ", Current rotation: " + currentRotation);
|
|
|
+ return true;
|
|
|
}
|
|
|
+ return true;
|
|
|
}
|
|
|
- return true;
|
|
|
}
|
|
|
});
|
|
|
});
|
|
|
|
|
|
+ Log.d("Render. Watermark Count", "current watermark count:" + document.getWatermarkCount());
|
|
|
|
|
|
- if (error == CPDFDocument.PDFDocumentError.PDFDocumentErrorPassword) {
|
|
|
- error = document.open(PDFUri, "password");
|
|
|
- } else if (error == CPDFDocument.PDFDocumentError.PDFDocumentErrorSuccess) {
|
|
|
- Toast.makeText(this, "File:" + document.getFileName() + " open success.", Toast.LENGTH_SHORT).show();
|
|
|
- } else {
|
|
|
- Toast.makeText(this, "File failed.", Toast.LENGTH_SHORT).show();
|
|
|
- }
|
|
|
-
|
|
|
- int watermarkIndex = 0;
|
|
|
- CPDFWatermark watermarkz = null;
|
|
|
-
|
|
|
- try {
|
|
|
- watermarkz = document.getWatermark(watermarkIndex);
|
|
|
- if (watermarkz != null)
|
|
|
- watermarkz.clear();
|
|
|
- } finally {
|
|
|
- if (watermarkz != null && watermarkz.isValid()) {
|
|
|
- watermarkz.release();
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-// Drawable drawable = ContextCompat.getDrawable(this, R.drawable.pdf);
|
|
|
-//
|
|
|
-// CPDFImageWatermark imgWatermark = (CPDFImageWatermark)
|
|
|
-// document.createWatermark(CPDFWatermark.Type.WATERMARK_TYPE_IMG);
|
|
|
-//
|
|
|
-// assert drawable != null;
|
|
|
-// Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
|
|
|
-// Canvas canvas = new Canvas(bitmap);
|
|
|
-// drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
|
|
|
-// drawable.draw(canvas);
|
|
|
-//
|
|
|
-// try {
|
|
|
-// if (imgWatermark != null && imgWatermark.isValid()) {
|
|
|
-// imgWatermark.setText("RA"); //设置文本
|
|
|
-// imgWatermark.setFontName("Helvetica"); //设置字体
|
|
|
-// imgWatermark.setImage(bitmap, 100, 100);
|
|
|
-// imgWatermark.setTextRGBColor(ColorUtils.parseColor(new int[] { 102, 204, 255 }));
|
|
|
-// imgWatermark.setOpacity(0.5f);
|
|
|
-// imgWatermark.setRotation(0.785f);
|
|
|
-// imgWatermark.setFontSize(100);
|
|
|
-// imgWatermark.setFront(false);
|
|
|
-// imgWatermark.setVertalign(CPDFWatermark.Vertalign.WATERMARK_VERTALIGN_CENTER);
|
|
|
-// imgWatermark.setHorizalign(CPDFWatermark.Horizalign.WATERMARK_HORIZALIGN_CENTER);
|
|
|
-// imgWatermark.setVertOffset(0);
|
|
|
-// imgWatermark.setHorizOffset(0);
|
|
|
-// imgWatermark.setScale(0.2f);
|
|
|
-// imgWatermark.setPages("1,3-5");
|
|
|
-// imgWatermark.setFullScreen(true);
|
|
|
-// imgWatermark.setHorizontalSpacing(100);
|
|
|
-// imgWatermark.setVerticalSpacing(100);
|
|
|
-// imgWatermark.update();
|
|
|
-// }
|
|
|
-// } finally {
|
|
|
-// if (imgWatermark != null && imgWatermark.isValid()) {
|
|
|
-// imgWatermark.release();
|
|
|
-// }
|
|
|
-// }
|
|
|
-
|
|
|
-// CPDFTextWatermark textWatermark = (CPDFTextWatermark)
|
|
|
-// document.createWatermark(CPDFWatermark.Type.WATERMARK_TYPE_TEXT);
|
|
|
-// try {
|
|
|
-// if (textWatermark != null && textWatermark.isValid()) {
|
|
|
-// textWatermark.setText("Watermark"); //设置文本
|
|
|
-// textWatermark.setFontName("Helvetica"); //设置字体
|
|
|
-// textWatermark.setTextRGBColor(ColorUtils.parseColor(new int[] { 255, 0, 0 }));
|
|
|
-// textWatermark.setOpacity(1f);
|
|
|
-// textWatermark.setFontSize(62);
|
|
|
-// textWatermark.setFront(true);
|
|
|
-// textWatermark.setVertalign(CPDFWatermark.Vertalign.WATERMARK_VERTALIGN_CENTER);
|
|
|
-// textWatermark.setHorizalign(CPDFWatermark.Horizalign.WATERMARK_HORIZALIGN_CENTER);
|
|
|
-// textWatermark.setVertOffset(0);
|
|
|
-// textWatermark.setHorizOffset(0);
|
|
|
-// textWatermark.setScale(1.0f);
|
|
|
-// textWatermark.setPages("0-5");
|
|
|
-// textWatermark.setFullScreen(false);
|
|
|
-// textWatermark.setHorizontalSpacing(10);
|
|
|
-// textWatermark.setVerticalSpacing(10);
|
|
|
-// textWatermark.update();
|
|
|
-// }
|
|
|
-// } finally {
|
|
|
-// if (textWatermark != null && textWatermark.isValid()) {
|
|
|
-// textWatermark.release();
|
|
|
-// }
|
|
|
-// }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -293,4 +241,71 @@ public class MainActivity extends AppCompatActivity implements MenuProvider {
|
|
|
public void refreshPageImage(Bitmap updatePageBitmap) {
|
|
|
pageImage.setImageBitmap(updatePageBitmap);
|
|
|
}
|
|
|
+
|
|
|
+ public void finishEditWatermark(MenuItem menuItem) throws CPDFDocumentException {
|
|
|
+ WatermarkSetting setting = consoleFragment.getWatermarkSetting();
|
|
|
+ watermark.completeSetting(setting);
|
|
|
+
|
|
|
+ CPDFWatermark.Type[] types = {CPDFWatermark.Type.WATERMARK_TYPE_TEXT, CPDFWatermark.Type.WATERMARK_TYPE_IMG};
|
|
|
+
|
|
|
+ CPDFWatermark watermark;
|
|
|
+ watermark = document.createWatermark(types[consoleFragment.getMode()]);
|
|
|
+ try {
|
|
|
+ if (watermark != null && watermark.isValid()) {
|
|
|
+ if (setting.getImage() != null)
|
|
|
+ watermark.setImage(setting.getImage(), (int) (setting.getiWidth() * sizeConvertRate), (int) (setting.getiHeight() * sizeConvertRate));
|
|
|
+ watermark.setText(setting.getText()); //设置文本
|
|
|
+ watermark.setFontName(setting.getFontName()); //设置字体
|
|
|
+ watermark.setTextRGBColor(setting.getTextRGBColor());
|
|
|
+ watermark.setOpacity(setting.getOpacity());
|
|
|
+ watermark.setFontSize(setting.getFontSize());
|
|
|
+ watermark.setFront(true);
|
|
|
+ watermark.setVertalign(CPDFWatermark.Vertalign.WATERMARK_VERTALIGN_CENTER);
|
|
|
+ watermark.setHorizalign(CPDFWatermark.Horizalign.WATERMARK_HORIZALIGN_CENTER);
|
|
|
+ watermark.setVertOffset(setting.getVertOffset());
|
|
|
+ watermark.setHorizOffset(setting.getHorizOffset());
|
|
|
+ watermark.setRotation(setting.getRotation());
|
|
|
+ watermark.setScale(setting.getScale());
|
|
|
+ watermark.setPages(setting.getPages());
|
|
|
+ watermark.setFullScreen(setting.getFullScreen());
|
|
|
+ watermark.setHorizontalSpacing(setting.getHorizontalSpacing());
|
|
|
+ watermark.setVerticalSpacing(setting.getVerticalSpacing());
|
|
|
+ watermark.update();
|
|
|
+ }
|
|
|
+ } finally {
|
|
|
+ if (watermark != null && watermark.isValid()) {
|
|
|
+ watermark.release();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ Log.d("Finish. Watermark Count", "current watermark count:" + document.getWatermarkCount());
|
|
|
+
|
|
|
+ if (document.hasChanges()) {
|
|
|
+ boolean res;
|
|
|
+ //Save to original document
|
|
|
+ res = document.save();
|
|
|
+ }
|
|
|
+ document.close();
|
|
|
+
|
|
|
+ File PDFFile = new File("/storage/emulated/0/TestPDFs/test.pdf");
|
|
|
+ Uri PDFUri = Uri.fromFile(PDFFile);
|
|
|
+
|
|
|
+ CPDFDocument.PDFDocumentError error = document.open(PDFFile.getAbsolutePath());
|
|
|
+
|
|
|
+ if (error == CPDFDocument.PDFDocumentError.PDFDocumentErrorPassword) {
|
|
|
+ error = document.open(PDFUri, "password");
|
|
|
+ } else if (error == CPDFDocument.PDFDocumentError.PDFDocumentErrorSuccess) {
|
|
|
+ Toast.makeText(this, "File:" + document.getFileName() + " open success.", Toast.LENGTH_SHORT).show();
|
|
|
+ } else {
|
|
|
+ Toast.makeText(this, "File failed.", Toast.LENGTH_SHORT).show();
|
|
|
+ }
|
|
|
+
|
|
|
+ CPDFPage currentPage = document.pageAtIndex(0);
|
|
|
+// currentPage.equals(testPage)
|
|
|
+ Log.d("Finish EditWatermark", "the equal's result:" + (currentPage.equals(testPage)) );
|
|
|
+
|
|
|
+ Bitmap pageBitmap = Bitmap.createBitmap(currentPageWidth, currentPageHeight, Bitmap.Config.ARGB_4444);
|
|
|
+ currentPage.renderPage(pageBitmap, 0, 0, currentPageWidth, currentPageHeight, 0xFFFFFFFF, 255, 0, true, true);
|
|
|
+ refreshPageImage(pageBitmap);
|
|
|
+ }
|
|
|
}
|