HTML to PDF convertor for Android

Overview

HTML to PDF Convertor

A simple HTML to PDF convertor for Android

Download

Add mavenCentral() repository in project's build.gradle

allprojects {
    repositories {
        // Possibly other repositories
        mavenCentral()
    }
}

Add dependency in module's build.gradle

dependencies {
    // Possibly other dependencies
    // Replace the  with actual latest version
    implementation 'io.github.nvest-solutions:html-to-pdf-convertor:'
}

Usage

Create an instance of HtmlToPdfConvertor class

val htmlToPdfConvertor = HtmlToPdfConvertor(context)

Set optional base URL

htmlToPdfConvertor.setBaseUrl("file:///android_asset/images/") // is null by default

Start the conversion by calling convert function

htmlToPdfConvertor.convert(
  pdfLocation = pdfLocation, // the file location where pdf should be saved
  htmlString = htmlString, // the HTML string to be converted
  onPdfGenerationFailed = { exception -> // something went wrong, handle the exception (this param is optional) 
      exception.printStackTrace()
  },
  onPdfGenerated = { pdfFile -> // pdf was generated, do whatever you want with it
      openPdf(pdfFile)
  })

Storage permission is required to save pdf file on storage

Checkout sample code, also sample HTML and PDF

You might also like...
✔️ Secure, simple key-value storage for Android
✔️ Secure, simple key-value storage for Android

Hawk 2.0 Secure, simple key-value storage for android Important Note This version has no backward compatibility with Hawk 1+ versions. If you still wa

A robust native library loader for Android.
A robust native library loader for Android.

ReLinker A robust native library loader for Android. More information can be found in our blog post Min SDK: 9 JavaDoc Overview The Android PackageMan

A lightning fast, transactional, file-based FIFO for Android and Java.

Tape by Square, Inc. Tape is a collection of queue-related classes for Android and Java. QueueFile is a lightning-fast, transactional, file-based FIFO

Joda-Time library with Android specialization

joda-time-android This library is a version of Joda-Time built with Android in mind. Why Joda-Time? Android has built-in date and time handling - why

a SharedPreferences replacement for Android with multiprocess support
a SharedPreferences replacement for Android with multiprocess support

DEPRECATED - no longer actively maintained Tray - a SharedPreferences replacement for Android If you have read the documentation of the SharedPreferen

OpenKeychain is an OpenPGP implementation for Android.
OpenKeychain is an OpenPGP implementation for Android.

OpenKeychain (for Android) OpenKeychain is an OpenPGP implementation for Android. For a more detailed description and installation instructions go to

UPnP/DLNA library for Java and Android

Cling EOL: This project is no longer actively maintained, code may be outdated. If you are interested in maintaining and developing this project, comm

WebSocket & WAMP in Java for Android and Java 8

Autobahn|Java Client library providing WAMP on Java 8 (Netty) and Android, plus (secure) WebSocket for Android. Autobahn|Java is a subproject of the A

:iphone: [Android Library] Get device information in a super easy way.
:iphone: [Android Library] Get device information in a super easy way.

EasyDeviceInfo Android library to get device information in a super easy way. The library is built for simplicity and approachability. It not only eli

Comments
  • how to load image from drawable ?

    how to load image from drawable ?

    hi,

    i have to load image from drawable in below code of HTML.

    how can i load?

    please help!!!!!

    Thanks in adavance

    opened by sw-tt-kushanshah 2
  • Dynamic content in HTML is not found in created PDF

    Dynamic content in HTML is not found in created PDF

    I have a Table with headers "Name" & "Age". There are dynamic entries in the above table.

    When running HTML code displays the Table with 2 entries. When generating a pdf, the table is empty.

    Below is the HTML code.

    <!DOCTYPE html>
    <html>
       <head>
          <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
       <body>
          <table>
             <thead>
                <tr>
                   <td>Name</td>
                   <td>Age</td>
                </tr>
             </thead>
             <tbody id="myTable"></tbody>
          </table>
       </body>
       <script>
          $(document).ready(function(){
            $("button").click(function(){
              $("h1, h2, p").addClass("blue");
              $("div").addClass("important");
            });
          
          
            var arra = [{name:'asin',age:50},{name:'vmj',age:80}]
            var temopHtml='';
          
            for(i=0;i<arra.length;i++){
            console.log(arra[i])
            var el = '<tr><td>'+arra[i].name+'</td><td>'+arra[i].age+'</td></tr>'
            temopHtml = temopHtml + el
            }
          
            $('#myTable').append(temopHtml);
          });
       </script>
       <style>
          .important {
          font-weight: bold;
          font-size: xx-large;
          }
          .blue {
          color: blue;
          }
       </style>
       </head>
    </html>
    
    opened by rulfox 1
  • Converted PDF file saved with only one blank page

    Converted PDF file saved with only one blank page

    opened by akash55 1
Releases(1.1.0)
  • 1.1.0(Dec 10, 2022)

    What's Changed

    • Added javascript enable/ disable API by @mddanishansari in https://github.com/mddanishansari/html-to-pdf-convertor/pull/6
    • Change package name
    • Change gradle dependency groupId

    Full Changelog: https://github.com/mddanishansari/html-to-pdf-convertor/compare/1.0.0...1.1.0

    Source code(tar.gz)
    Source code(zip)
  • 1.0.0(Jun 21, 2021)

Owner
Nvest Solutions
Nvest Solutions
Android Shared preference wrapper than encrypts the values of Shared Preferences. It's not bullet proof security but rather a quick win for incrementally making your android app more secure.

Secure-preferences - Deprecated Please use EncryptedSharedPreferences from androidx.security in preferenced to secure-preference. (There are no active

Scott Alexander-Bown 1.5k Dec 24, 2022
Android library which makes it easy to handle the different obstacles while calling an API (Web Service) in Android App.

API Calling Flow API Calling Flow is a Android library which can help you to simplify handling different conditions while calling an API (Web Service)

Rohit Surwase 19 Nov 9, 2021
Gesture detector framework for multitouch handling on Android, based on Android's ScaleGestureDetector

Android Gesture Detectors Framework Introduction Since I was amazed Android has a ScaleGestureDetector since API level 8 but (still) no such thing as

null 1.1k Nov 30, 2022
Use Android as Rubber Ducky against another Android device

Use Android as Rubber Ducky against another Android device

null 1.4k Jan 9, 2023
Android Utilities Library build in kotlin Provide user 100 of pre defined method to create advanced native android app.

Android Utilities Library build in kotlin Provide user 100 of pre defined method to create advanced native android app.

Shahid Iqbal 4 Nov 29, 2022
A util for setting status bar style on Android App.

StatusBarUtil A util for setting status bar style on Android App. It can work above API 19(KitKat 4.4). 中文版点我 Sample Download StatusBarUtil-Demo Chang

Jaeger 8.8k Jan 6, 2023
A logger with a small, extensible API which provides utility on top of Android's normal Log class.

This is a logger with a small, extensible API which provides utility on top of Android's normal Log class. I copy this class into all the little apps

Jake Wharton 9.8k Dec 30, 2022
Java implementation of a Disk-based LRU cache which specifically targets Android compatibility.

Disk LRU Cache A cache that uses a bounded amount of space on a filesystem. Each cache entry has a string key and a fixed number of values. Each key m

Jake Wharton 5.7k Dec 31, 2022
a simple cache for android and java

ASimpleCache ASimpleCache 是一个为android制定的 轻量级的 开源缓存框架。轻量到只有一个java文件(由十几个类精简而来)。 1、它可以缓存什么东西? 普通的字符串、JsonObject、JsonArray、Bitmap、Drawable、序列化的java对象,和 b

Michael Yang 3.7k Dec 14, 2022
gRPC and protocol buffers for Android, Kotlin, and Java.

Wire “A man got to have a code!” - Omar Little See the project website for documentation and APIs. As our teams and programs grow, the variety and vol

Square 3.9k Dec 31, 2022