Streamlit component for PDF visualisation and manipulation
Project description
streamlit-pdf-viewer
Streamlit component that allows the visualisation and enrichment of PDF documents
Work in progress: We are early in the development, and we appreciate new contributors.
Currently, it has been tested on Chrome and Firefox. You can see an application in action here.
Getting started
pip install streamlit-pdf-viewer
In your streamlit application, you can use it as:
import streamlit as st
from streamlit_pdf_viewer import pdf_viewer
pdf_viewer("str, path or bytes")
Options
Params
In the following table the list of parameters that can be provided to the pdf_viewer
function:
name | description |
---|---|
input | The source of the PDF file. Accepts a file path, URL, or binary data. |
width | Width of the PDF viewer in pixels. It defaults to 700 pixels. |
height | Height of the PDF viewer in pixels. If not provided, the viewer shows the whole content. |
annotations | A list of annotations to be overlaid on the PDF. Each annotation should be a dictionary. |
pages_vertical_spacing | The vertical space (in pixels) between each page of the PDF. Defaults to 2 pixels. |
annotation_outline_size | Size of the outline around each annotation in pixels. Defaults to 1 pixel. |
rendering | Type of rendering: unwrap (default), legacy_iframe , or legacy_embed . The default value, unwrap shows the PDF document using pdf.js, and supports the visualisation of annotations. Other values are legacy_iframe and legacy_embed which use the legacy approach of injecting the document into an <embed> or <iframe> . These methods enable the default pdf viewer of Firefox/Chrome/Edge that contains additional features we are still working to implement in this component. NOTE: Annotations are ignored for both 'legacy_iframe' and 'legacy_embed'. |
pages_to_render | Filter the rendering to a specific set of pages. By default all pages are rendered. |
Developers notes
Environment
- Python >= 3.8
- Node.js >= 16
- Streamlit >= 1.28.2
Configure environment for development
First, make sure that _RELEASE = False in streamlit_pdf_viewer/__init__.py
. To run the component in development mode, use the following commands:
streamlit run streamlit_pdf_viewer/__init__.py
cd frontend
npm run serve
These commands will start the Streamlit application and serve the Node.js component. Please make sure you're in the correct directory before running these commands.
Integrate into a streamlit application
-
Build the frontend part:
cd frontend export NODE_OPTIONS=--openssl-legacy-provider npm run build
-
Make sure that _RELEASE = True in
streamlit_pdf_viewer/__init__.py
. -
move to the streamlit_application and run
pip install -e {path of component}
Release
bump-my-version bump patch | minor | major
git push
git push --tags
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file streamlit-pdf-viewer-0.0.8.tar.gz
.
File metadata
- Download URL: streamlit-pdf-viewer-0.0.8.tar.gz
- Upload date:
- Size: 2.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 00ac9d62f97cd90f197879f720f41515f6a0e5a9b422618897fdde9f2bb5eaef |
|
MD5 | 4491925226763fd679ff7ae297536d1f |
|
BLAKE2b-256 | 5bdf2b7c71112fab3ea71964ab418ce81085ba5eb5091b4ef6c5b9592a81b398 |
File details
Details for the file streamlit_pdf_viewer-0.0.8-py3-none-any.whl
.
File metadata
- Download URL: streamlit_pdf_viewer-0.0.8-py3-none-any.whl
- Upload date:
- Size: 2.2 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a86e4492298b43c41bd88b7a2c3ebd398979e4ef2a4efef6388a5c39fa3d8992 |
|
MD5 | 04d9833df29f4a923be35d4ae1575bae |
|
BLAKE2b-256 | 2c286dadd4310b423e97ccf7c15e09720970d3028d50d38e6827ed44eaceb6f1 |