Giter Club home page Giter Club logo

android-awt's People

Contributors

andob avatar andob001 avatar pascalleclercq avatar rubypdf avatar witwall avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

android-awt's Issues

Conflicts: Nonnull, Nullable and ParametersAreNonnullByDefault

Probably since androidx these class definitions are too much

Duplicate class javax.annotation.Nonnull found in modules jetified-android-awt-1.0.1-runtime.jar (com.github.andob:android-awt:1.0.1) and jetified-jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2)
Duplicate class javax.annotation.Nullable found in modules jetified-android-awt-1.0.1-runtime.jar (com.github.andob:android-awt:1.0.1) and jetified-jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2)
Duplicate class javax.annotation.ParametersAreNonnullByDefault found in modules jetified-android-awt-1.0.1-runtime.jar (com.github.andob:android-awt:1.0.1) and jetified-jsr305-3.0.2.jar (com.google.code.findbugs:jsr305:3.0.2)

How can I avoid this?
I solved it now by manually removing these 3 classes from the jar.

Crash on document.add(image) on android

While using OpenPDF in android

Theres this error occuring when converting images to pdf as follows;

  File file = new File(destinationDirectory, pdfName + ".pdf");
     Log.e("PDF","Output to:"+file.toString());

     FileOutputStream fileOutputStream = new FileOutputStream(file);

     PdfWriter pdfWriter = PdfWriter.getInstance(document, fileOutputStream);
     document.open();

     System.out.println("CONVERTER START.....");

     String[] splitImagFiles = imagFileSource.split(",");

     for (String singleImage : splitImagFiles) {
         Image image = Image.getInstance(singleImage);
         document.setPageSize(image);
         document.newPage();
         image.setAbsolutePosition(0, 0);
         document.add(image);
     }

     document.close();

Tried adding

   ndk {
            abiFilters "arm64-v8a", "armeabi-v7a", "x86", "x86_64"
        }

but same error

    java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.myapp-tMMDQvGNIUp1-fffWZK0YQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.myapp-tMMDQvGNIUp1-fffWZK0YQ==/lib/arm64, /system/lib64, /system/product/lib64]]] couldn't find "liblcmm.so"
        at java.lang.Runtime.loadLibrary0(Runtime.java:1067)
        at java.lang.Runtime.loadLibrary0(Runtime.java:1007)
        at java.lang.System.loadLibrary(System.java:1667)
        at org.apache.harmony.awt.Utils$2.run(Utils.java:44)
        at java.security.AccessController.doPrivileged(AccessController.java:69)
        at org.apache.harmony.awt.Utils.loadLibrary(Utils.java:42)
        at org.apache.harmony.awt.gl.color.NativeCMM$1.run(NativeCMM.java:81)
        at org.apache.harmony.awt.gl.color.NativeCMM$1.run(NativeCMM.java:79)
        at java.security.AccessController.doPrivileged(AccessController.java:43)
        at org.apache.harmony.awt.gl.color.NativeCMM.loadCMM(NativeCMM.java:78)
        at org.apache.harmony.awt.gl.color.NativeCMM.<clinit>(NativeCMM.java:91)
        at org.apache.harmony.awt.gl.color.NativeCMM.cmmGetProfileElementSize(Native Method)
        at java.awt.color.ICC_Profile.getData(ICC_Profile.java:413)
        at java.awt.color.ICC_Profile.getIntFromHeader(ICC_Profile.java:734)
        at java.awt.color.ICC_Profile.getNumComponents(ICC_Profile.java:478)
        at com.lowagie.text.pdf.PdfICCBased.<init>(PdfICCBased.java:81)
        at com.lowagie.text.pdf.PdfWriter.addDirectImageSimple(PdfWriter.java:2996)
        at com.lowagie.text.pdf.PdfWriter.addDirectImageSimple(PdfWriter.java:2938)
        at com.lowagie.text.pdf.PdfContentByte.addImage(PdfContentByte.java:1225)
        at com.lowagie.text.pdf.PdfContentByte.addImage(PdfContentByte.java:1121)
        at com.lowagie.text.pdf.PdfContentByte.addImage(PdfContentByte.java:1105)
        at com.lowagie.text.pdf.PdfDocument.add(PdfDocument.java:2413)
        at com.lowagie.text.pdf.PdfDocument.add(PdfDocument.java:747)
        at com.lowagie.text.Document.add(Document.java:276)
        at com.myapp.activity.InvoiceActivity.imagesToPdf(InvoiceActivity.java:349)
        at com.myapp.activity.InvoiceActivity$6.onClick(InvoiceActivity.java:184)
        at androidx.appcompat.app.AlertController$ButtonHandler.handleMessage(AlertController.java:167)
        at android.os.Handler.dispatchMessage(Handler.java:107)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7356)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:491)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
    

UnsatisfiedLinkError

I started with a fresh install of android emulator with an API 29 x86 config.

While generating the pdf using the OpenPDF library, the app crashes with the following logs on the addImage() function:

Do let me know what additional info do you need and how can I help in resolving this.

2019-09-20 16:34:54.363 6345-6345/com.vaibhavkalpe.android.khatabook E/AndroidRuntime: FATAL EXCEPTION: main Process: com.vaibhavkalpe.android.khatabook, PID: 6345 java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.vaibhavkalpe.android.khatabook-jPY_d8GXUpNekawo2AluSw==/base.apk"],nativeLibraryDirectories=[/data/app/com.vaibhavkalpe.android.khatabook-jPY_d8GXUpNekawo2AluSw==/lib/x86, /system/lib, /system/product/lib]]] couldn't find "liblcmm.so" at java.lang.Runtime.loadLibrary0(Runtime.java:1067) at java.lang.Runtime.loadLibrary0(Runtime.java:1007) at java.lang.System.loadLibrary(System.java:1667) at org.apache.harmony.awt.Utils$2.run(Utils.java:44) at java.security.AccessController.doPrivileged(AccessController.java:69) at org.apache.harmony.awt.Utils.loadLibrary(Utils.java:42) at org.apache.harmony.awt.gl.color.NativeCMM$1.run(NativeCMM.java:81) at org.apache.harmony.awt.gl.color.NativeCMM$1.run(NativeCMM.java:79) at java.security.AccessController.doPrivileged(AccessController.java:43) at org.apache.harmony.awt.gl.color.NativeCMM.loadCMM(NativeCMM.java:78) at org.apache.harmony.awt.gl.color.NativeCMM.<clinit>(NativeCMM.java:91) at org.apache.harmony.awt.gl.color.NativeCMM.cmmGetProfileElementSize(Native Method) at java.awt.color.ICC_Profile.getData(ICC_Profile.java:413) at java.awt.color.ICC_Profile.getIntFromHeader(ICC_Profile.java:734) at java.awt.color.ICC_Profile.getNumComponents(ICC_Profile.java:478) at com.lowagie.text.pdf.PdfICCBased.<init>(PdfICCBased.java:81) at com.lowagie.text.pdf.PdfWriter.addDirectImageSimple(PdfWriter.java:2996) at com.lowagie.text.pdf.PdfWriter.addDirectImageSimple(PdfWriter.java:2938) at com.lowagie.text.pdf.PdfContentByte.addImage(PdfContentByte.java:1225) at com.lowagie.text.pdf.PdfContentByte.addImage(PdfContentByte.java:1138) at com.vaibhavkalpe.android.khatabook.UI.CustomerCardActivity.createImageCell(CustomerCardActivity.kt:227) at com.vaibhavkalpe.android.khatabook.UI.CustomerCardActivity.generatePDF(CustomerCardActivity.kt:164) at com.vaibhavkalpe.android.khatabook.UI.CustomerCardActivity$GetImageWork.onPostExecute(CustomerCardActivity.kt:295) at android.os.AsyncTask.finish(AsyncTask.java:755) at android.os.AsyncTask.access$900(AsyncTask.java:192) at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:772) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:7343) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:933)  

Do you have geom.Path2D?

Hi, I tried to use this as awt replacement for Apache POI as I used Apache POI to convert documents (DOCX, XLSX, PPTX) to HTML so it could be previewed natively using WebViewer in Android. It is really great library, but I have a problem like this:

FATAL EXCEPTION: main
Process: org.dstadler.poiandroidtest.poitest, PID: 7804
java.lang.NoClassDefFoundError: Failed resolution of: Ljava/awt/geom/Path2D$Double;
	at org.apache.poi.sl.draw.geom.Path.getPath(Path.java:95)
	at org.apache.poi.sl.draw.DrawSimpleShape.computeOutlines(DrawSimpleShape.java:424)
	at org.apache.poi.sl.draw.DrawSimpleShape.draw(DrawSimpleShape.java:75)
	at org.apache.poi.sl.draw.DrawSheet.draw(DrawSheet.java:71)
	at org.apache.poi.sl.draw.DrawSlide.draw(DrawSlide.java:41)
	at org.apache.poi.xslf.usermodel.XSLFSlide.draw(XSLFSlide.java:393)
	at org.dstadler.poiandroidtest.poitest.DocumentFormatConvertUtils.pptx2html(DocumentFormatConvertUtils.java:345)
	at org.dstadler.poiandroidtest.poitest.MainActivity.lambda$setupContent$1(MainActivity.java:211)
	at org.dstadler.poiandroidtest.poitest.MainActivity$$ExternalSyntheticLambda1.call(Unknown Source:0)
	at org.dstadler.poiandroidtest.poitest.dummy.DummyItemWithCode.getLongContent(DummyItemWithCode.java:18)
	at org.dstadler.poiandroidtest.poitest.MainActivity.lambda$onCreate$0(MainActivity.java:99)
	at org.dstadler.poiandroidtest.poitest.MainActivity$$ExternalSyntheticLambda0.onItemClick(Unknown Source:0)
	at android.widget.AdapterView.performItemClick(AdapterView.java:321)
	at android.widget.AbsListView.performItemClick(AbsListView.java:1234)
	at android.widget.AbsListView$PerformClick.run(AbsListView.java:3234)
	at android.widget.AbsListView$3.run(AbsListView.java:4210)
	at android.os.Handler.handleCallback(Handler.java:907)
	at android.os.Handler.dispatchMessage(Handler.java:105)
	at android.os.Looper.loop(Looper.java:216)
	at android.app.ActivityThread.main(ActivityThread.java:7625)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987)
Caused by: java.lang.ClassNotFoundException: Didn't find class "java.awt.geom.Path2D$Double" on path: DexPathList[[zip file "/data/app/org.dstadler.poiandroidtest.poitest-M4iva69LDJJ-iqf4CZ9L0A==/base.apk"],nativeLibraryDirectories=[/data/app/org.dstadler.poiandroidtest.poitest-M4iva69LDJJ-iqf4CZ9L0A==/lib/arm64, /data/app/org.dstadler.poiandroidtest.poitest-M4iva69LDJJ-iqf4CZ9L0A==/base.apk!/lib/arm64-v8a, /system/lib64, /product/lib64]]
	at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
	at org.apache.poi.sl.draw.geom.Path.getPath(Path.java:95) 
	at org.apache.poi.sl.draw.DrawSimpleShape.computeOutlines(DrawSimpleShape.java:424) 
	at org.apache.poi.sl.draw.DrawSimpleShape.draw(DrawSimpleShape.java:75) 
	at org.apache.poi.sl.draw.DrawSheet.draw(DrawSheet.java:71) 
	at org.apache.poi.sl.draw.DrawSlide.draw(DrawSlide.java:41) 
	at org.apache.poi.xslf.usermodel.XSLFSlide.draw(XSLFSlide.java:393) 
	at org.dstadler.poiandroidtest.poitest.DocumentFormatConvertUtils.pptx2html(DocumentFormatConvertUtils.java:345) 
	at org.dstadler.poiandroidtest.poitest.MainActivity.lambda$setupContent$1(MainActivity.java:211) 
	at org.dstadler.poiandroidtest.poitest.MainActivity$$ExternalSyntheticLambda1.call(Unknown Source:0) 
	at org.dstadler.poiandroidtest.poitest.dummy.DummyItemWithCode.getLongContent(DummyItemWithCode.java:18) 
	at org.dstadler.poiandroidtest.poitest.MainActivity.lambda$onCreate$0(MainActivity.java:99) 
	at org.dstadler.poiandroidtest.poitest.MainActivity$$ExternalSyntheticLambda0.onItemClick(Unknown Source:0) 
	at android.widget.AdapterView.performItemClick(AdapterView.java:321) 
	at android.widget.AbsListView.performItemClick(AbsListView.java:1234) 
	at android.widget.AbsListView$PerformClick.run(AbsListView.java:3234) 
	at android.widget.AbsListView$3.run(AbsListView.java:4210) 
	at android.os.Handler.handleCallback(Handler.java:907) 
	at android.os.Handler.dispatchMessage(Handler.java:105) 
	at android.os.Looper.loop(Looper.java:216) 
	at android.app.ActivityThread.main(ActivityThread.java:7625) 
	at java.lang.reflect.Method.invoke(Native Method) 
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524) 
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987) 

I already could redirect another java.awt to your library because Path2D is inside Apache POI. Do you have any idea to redirect to yours? But the other problem, is I also did not see Path2D in the geom of your library. Is this something that has still not yet been implemented? Thank you

java.lang.RuntimeException: Couldn't open the font file

hi

  1. When I use Apache-POI to convert PPTX to PDF on Android, it reports 'java.lang.RuntimeException: Couldn't open the font file'. The code is as follows:``` public static boolean convertPPTToPDF(File file, File toFile) {
    try {
    Document pdfDocument = new Document();
    PdfWriter pdfWriter = PdfWriter.getInstance(pdfDocument, new FileOutputStream(toFile));
    FileInputStream is = new FileInputStream(file);
    double zoom = 2;

         is = new FileInputStream(file);
         XMLSlideShow ppt = convertPPTToPDFByPPTX(is);
         if (ppt == null) {
             throw new NullPointerException("This PPTX get data is error....");
         }
         Dimension pgsize = ppt.getPageSize();
         List<XSLFSlide> slide = Arrays.asList(ppt.getSlides());
    
         AffineTransform at = new AffineTransform();
         at.setToScale(zoom, zoom);
         pdfDocument.setPageSize(new com.lowagie.text.Rectangle((float) pgsize.getWidth(), (float) pgsize.getHeight()));
         pdfWriter.open();
         pdfDocument.open();
         PdfPTable table = new PdfPTable(1);
         for (XSLFSlide xslfSlide : slide) {
             BufferedImage img = new BufferedImage((int) Math.ceil(pgsize.width * zoom), (int) Math.ceil(pgsize.height * zoom), BufferedImage.TYPE_INT_RGB);
             /*InputStream open = AppManager.getAppManager().getTopActivity().getAssets().open("fonts/simsun.ttf");
             java.awt.Font fonts = java.awt.Font.createFont(java.awt.Font.TRUETYPE_FONT, open);
             java.awt.GraphicsEnvironment localGraphicsEnvironment =  java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment();*/
             Graphics2D graphics = img.createGraphics();
             graphics.setTransform(at);
             graphics.setPaint(Color.white);
             graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height));
             xslfSlide.draw(graphics);
             graphics.getPaint();
             com.lowagie.text.Image slideImage = com.lowagie.text.Image.getInstance(img, null);
             table.addCell(new PdfPCell(slideImage, true));
         }
    

// ppt.close();
pdfDocument.add(table);
pdfDocument.close();
pdfWriter.close();
Log.e("Exception", file.getAbsolutePath() + "Powerpoint file converted to PDF successfully");
return true;

    } catch (Exception e) {
        Log.e("Exception", file.getAbsolutePath() + "--->" + e);
        return false;
    }
}

private static XMLSlideShow convertPPTToPDFByPPTX(FileInputStream is) {
    try {
        return new XMLSlideShow(is);
    } catch (IOException e) {
        return null;
    }
}```

Demo cmmio.c error

Android_Demo/android-awt-master/awtcompat/src/main/cpp/lcmm/cmmio.c:174:13: warning: comparison of two values with different enumeration types ('icTagTypeSignature' and 'icTagSignature') [-Wenum-compare]
if (sig == Icc->TagNames[i])
~~~ ^ ~~~~~~~~~~~~~~~~
Android_Demo/android-awt-master/awtcompat/src/main/cpp/lcmm/cmmio.c:423:22: warning: implicit conversion from enumeration type 'icTagSignature' to different enumeration type 'icTagTypeSignature' [-Wenum-conversion]
idx = findTag(Icc, icSigMediaWhitePointTag);
~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~

Could not resolve ro.andob.androidawt:androidawt:1.0.4

i import android-awt by maven, but fail to build my project with error below:

  • What went wrong:
    Execution failed for task ':common_base:dataBindingMergeDependencyArtifactsDebug'.

Could not resolve all files for configuration ':common_base:debugCompileClasspath'.
Could not find :androidawt-1.0.4:.
Required by:
project :common_base > project :lib_base
Could not resolve ro.andob.androidawt:androidawt:1.0.4.
Required by:
project :common_base > project :lib_base
> Could not resolve ro.andob.androidawt:androidawt:1.0.4.
> Could not get resource 'https://maven.andob.info/repository/open_source/ro/andob/androidawt/androidawt/1.0.4/androidawt-1.0.4.pom'.
> Could not GET 'https://maven.andob.info/repository/open_source/ro/andob/androidawt/androidawt/1.0.4/androidawt-1.0.4.pom'.
> PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

i googled this error, and guess it might be certificate problem with maven repository. can u please fix this?

java.awt.font.NumericShaper and java.awt.font.TextAttribute are present in Android SDK Platform 32

> Task :app:minifyReleaseWithR8
AGPBI: {"kind":"warning","text":"The following library types, prefixed by java., are present both as library and non library classes: java.awt.font.NumericShaper, java.awt.font.TextAttribute. Library classes will be ignored.","sources":[{}],"tool":"R8"}
The following library types, prefixed by java., are present both as library and non library classes: java.awt.font.NumericShaper, java.awt.font.TextAttribute. Library classes will be ignored.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.