Giter Site home page Giter Site logo

kuamanet / cordova-pdf-reader Goto Github PK

View Code? Open in Web Editor NEW
6.0 0.0 4.0 777 KB

Cordova bridge for iOS PdfKit and android muPDF

License: GNU General Public License v2.0

Java 79.97% Swift 19.24% JavaScript 0.79%
cordova-plugin cordova-android cordova-ios pdf watermark search mupdf pdfkit

cordova-pdf-reader's Introduction

Cordova PDF reader

This plugin allows to show, search and watermark a base64 encoded pdf. It leverages swift's PDFKit and mupdf android porting to show and search the pdf.

Installation

cordova plugin add net-kuama-plugins-pdfreader

Supported Platform

  • Android
  • iOS

Usage

function fetchLocal(url) {
    return new Promise(function (resolve, reject) {
        var xhr = new XMLHttpRequest
        xhr.onload = function () {
            resolve(new Response(xhr.responseText, {status: xhr.status}))
        }
        xhr.onerror = function () {
            reject(new TypeError('Local request failed'))
        }
        xhr.open('GET', url)
        xhr.send(null)
    })
}

var app = {
    // Application Constructor
    initialize: function () {
        document.addEventListener('deviceready', this.onDeviceReady.bind(this), false);
    },

    // deviceready Event Handler

    onDeviceReady: function () {
        app.receivedEvent('deviceready');
        const promisedBase64 =
            cordova.platformId === 'android' ? fetchLocal('res.json') : fetch('res.json');

        promisedBase64
            .then(resp => resp.json())
            .then(res => {
                KPdfReader.fromBase64(
                    res.rawData, // the base 64 pdf
                    {
                        watermark: "A nice watermark",
                        fileName: "Test file pdf" // the title of the pdf
                    },
                )
                    .then(() => {
                        // pdf was closed
                    })
                    .catch(console.error);
            });
    },

    // Update DOM on a Received Event
    receivedEvent: function (id) {
        var parentElement = document.getElementById(id);
        var listeningElement = parentElement.querySelector('.listening');
        var receivedElement = parentElement.querySelector('.received');

        listeningElement.setAttribute('style', 'display:none;');
        receivedElement.setAttribute('style', 'display:block;');

        console.log('Received Event: ' + id);
    }
};

app.initialize();

Screens

Alt text Alt text

Android usage

You will need to add some color definitions to your android project (if using cordova < 11, create a file named colors.xml inside platforms/android/app/src/main/res/values)

<color name="colorPrimary">#008577</color>
<color name="colorPrimaryDark">#00574B</color>
<color name="colorAccent">#D81B60</color>
<color name="page_indicator">#C0202020</color>
<color name="toolbar">#C0202020</color>

If you do not have a colors.xml file, this is a full example

<?xml version='1.0' encoding='utf-8'?>
<resources xmlns:tools="http://schemas.android.com/tools">
    <color name="colorPrimary">#008577</color>
    <color name="colorPrimaryDark">#00574B</color>
    <color name="colorAccent">#D81B60</color>
    <color name="page_indicator">#C0202020</color>
    <color name="toolbar">#C0202020</color>
</resources>

cordova-pdf-reader's People

Contributors

kuamanet avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

cordova-pdf-reader's Issues

issue with cordova 10

After having added the plugin, when I try to compile I get an error on this line

let renderSuccessCallback, renderErrorCallback;

This is due to the fact that cordova does not transpile the let into var.

Could not find com.huangyz0918:androidwm-light:0.1.2.

Thanks for making this plugin, while trying to build the following error is showing

`> Task :app:checkDebugAarMetadata FAILED

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':app:checkDebugAarMetadata'.

Could not resolve all files for configuration ':app:debugRuntimeClasspath'.
Could not find com.huangyz0918:androidwm:0.2.3.
Searched in the following locations:
- https://dl.google.com/dl/android/maven2/com/huangyz0918/androidwm/0.2.3/androidwm-0.2.3.pom
- https://repo.maven.apache.org/maven2/com/huangyz0918/androidwm/0.2.3/androidwm-0.2.3.pom
- https://jcenter.bintray.com/com/huangyz0918/androidwm/0.2.3/androidwm-0.2.3.pom
- https://maven.ghostscript.com/com/huangyz0918/androidwm/0.2.3/androidwm-0.2.3.pom
Required by:
project :app`

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.