
Security News
Meet Socket at Black Hat and DEF CON 2025 in Las Vegas
Meet Socket at Black Hat & DEF CON 2025 for 1:1s, insider security talks at Allegiant Stadium, and a private dinner with top minds in software supply chain security.
react-native-html-to-pdf
Advanced tools
Convert html strings to PDF documents using React Native
Convert html strings to PDF documents using React Native
npm install react-native-html-to-pdf --save
react-native link
libRNHTMLtoPDF.a
to Build Phases -> Link Binary With Libraries
(Screenshot).android/settings.gradle
to includedinclude ':react-native-html-to-pdf'
project(':react-native-html-to-pdf').projectDir = new File(rootProject.projectDir,'../node_modules/react-native-html-to-pdf/android')
android/app/build.gradle
file to includedependencies {
....
compile project(':react-native-html-to-pdf')
}
MainApplication.java
to include// import the package
import com.christopherdro.htmltopdf.RNHTMLtoPDFPackage;
// include package
new MainReactPackage(),
new RNHTMLtoPDFPackage()
WRITE_EXTERNAL_STORAGE
permission to AndroidManifest.xml
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Also starting from Android M, users need to be prompted for permission dynamically. Follow this link for more details on how to do that.
import React, { Component } from 'react';
import {
Text,
TouchableHighlight,
View,
} from 'react-native';
import RNHTMLtoPDF from 'react-native-html-to-pdf';
export default class Example extends Component {
async createPDF() {
let options = {
html: '<h1>PDF TEST</h1>',
fileName: 'test',
directory: 'Documents',
};
let file = await RNHTMLtoPDF.convert(options)
// console.log(file.filePath);
alert(file.filePath);
}
render() {
return(
<View>
<TouchableHighlight onPress={this.createPDF}>
<Text>Create PDF</Text>
</TouchableHighlight>
</View>
)
}
}
Param | Type | Default | Note |
---|---|---|---|
html | string | HTML string to be converted | |
fileName | string | Random | Custom Filename excluding .pdf extension |
base64 | boolean | false | return base64 string of pdf file (not recommended) |
directory | string | default cache directory | Directory where the file will be created (Documents folder in example above). Please note, on iOS Documents is the only custom value that is accepted. |
height | number | 792 | Set document height (points) |
width | number | 612 | Set document width (points) |
Param | Type | Default | Note |
---|---|---|---|
paddingLeft | number | 10 | Outer left padding (points) |
paddingRight | number | 10 | Outer right padding (points) |
paddingTop | number | 10 | Outer top padding (points) |
paddingBottom | number | 10 | Outer bottom padding (points) |
padding | number | 10 | Outer padding for any side (points), overrides any padding listed before |
bgColor | string | #F6F5F0 | Background color in Hexadecimal |
Param | Type | Default | Note |
---|---|---|---|
fonts | Array | Allow custom fonts ['/fonts/TimesNewRoman.ttf', '/fonts/Verdana.ttf'] |
FAQs
Convert html strings to PDF documents using React Native
The npm package react-native-html-to-pdf receives a total of 21,963 weekly downloads. As such, react-native-html-to-pdf popularity was classified as popular.
We found that react-native-html-to-pdf demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Meet Socket at Black Hat & DEF CON 2025 for 1:1s, insider security talks at Allegiant Stadium, and a private dinner with top minds in software supply chain security.
Security News
CAI is a new open source AI framework that automates penetration testing tasks like scanning and exploitation up to 3,600× faster than humans.
Security News
Deno 2.4 brings back bundling, improves dependency updates and telemetry, and makes the runtime more practical for real-world JavaScript projects.