From 02bffe455cddfa44f07a7924a3e86a4b2a4f43b8 Mon Sep 17 00:00:00 2001 From: Luca Foppiano Date: Tue, 27 Feb 2024 16:14:48 +0900 Subject: [PATCH 1/6] set ready only once when the DOM is rendered (onMounted) --- streamlit_pdf_viewer/frontend/src/PdfViewer.vue | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/streamlit_pdf_viewer/frontend/src/PdfViewer.vue b/streamlit_pdf_viewer/frontend/src/PdfViewer.vue index eaa78034..dbae5d9a 100644 --- a/streamlit_pdf_viewer/frontend/src/PdfViewer.vue +++ b/streamlit_pdf_viewer/frontend/src/PdfViewer.vue @@ -167,7 +167,6 @@ export default { const setFrameHeight = () => { Streamlit.setFrameHeight(props.args.height || totalHeight.value); - // Streamlit.setComponentReady(); }; onMounted(() => { @@ -176,9 +175,11 @@ export default { loadPdfs(binaryDataUrl); } setFrameHeight(); + Streamlit.setComponentReady(); }); onUpdated(() => { + // console.log("onUpdated") setFrameHeight(); }); From 7a01eafd585ef8885ccc285891ef3565fb90b33a Mon Sep 17 00:00:00 2001 From: Luca Foppiano Date: Tue, 27 Feb 2024 16:14:56 +0900 Subject: [PATCH 2/6] cosmetics --- streamlit_pdf_viewer/__init__.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/streamlit_pdf_viewer/__init__.py b/streamlit_pdf_viewer/__init__.py index 857f86c6..3de0bd3a 100644 --- a/streamlit_pdf_viewer/__init__.py +++ b/streamlit_pdf_viewer/__init__.py @@ -22,7 +22,10 @@ ) -def pdf_viewer(input: Union[str, Path, bytes], width: int = 700, height: int = None, key=None, +def pdf_viewer(input: Union[str, Path, bytes], + width: int = 700, + height: int = None, + key=None, annotations: list = (), pages_vertical_spacing: int = 2, annotation_outline_size: int = 1, From cdbab7a2e4680b21d8186059810e59285c11a6f9 Mon Sep 17 00:00:00 2001 From: Luca Foppiano Date: Tue, 5 Mar 2024 19:55:18 +0900 Subject: [PATCH 3/6] fix typo --- tests/streamlit_apps/example_unwrap_width.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/streamlit_apps/example_unwrap_width.py b/tests/streamlit_apps/example_unwrap_width.py index 5d159a5c..12e264d2 100644 --- a/tests/streamlit_apps/example_unwrap_width.py +++ b/tests/streamlit_apps/example_unwrap_width.py @@ -5,6 +5,6 @@ from streamlit_pdf_viewer import pdf_viewer -st.subheader("Test PDF Viewer with arguments with specified width") +st.subheader("Test PDF Viewer with specified width") pdf_viewer(os.path.join(ROOT_DIRECTORY, "resources/test.pdf"), width=400) From d27934bcddf602193c6942ae711b4e799ad7b1c4 Mon Sep 17 00:00:00 2001 From: Luca Foppiano Date: Tue, 5 Mar 2024 20:12:19 +0900 Subject: [PATCH 4/6] fix typo again --- tests/test_iframe_width.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_iframe_width.py b/tests/test_iframe_width.py index 37510876..5e3330db 100644 --- a/tests/test_iframe_width.py +++ b/tests/test_iframe_width.py @@ -48,7 +48,7 @@ def test_should_render_template_check_container_size(page: Page): expect(pdf_container).to_be_visible() b_box = pdf_container.bounding_box() - assert b_box['width'] == 700 + assert b_box['width'] == 500 assert b_box['height'] > 0 pdf_viewer = iframe_frame.locator('div[id="pdfViewer"]') From ea28eb60e86e455308bdaf417ecf29e26e84c4cb Mon Sep 17 00:00:00 2001 From: Luca Foppiano Date: Tue, 5 Mar 2024 20:36:22 +0900 Subject: [PATCH 5/6] fix correct width --- tests/test_unwrap_width.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_unwrap_width.py b/tests/test_unwrap_width.py index cdb43435..df239633 100644 --- a/tests/test_unwrap_width.py +++ b/tests/test_unwrap_width.py @@ -39,7 +39,7 @@ def test_should_render_template_check_container_size(page: Page): b_box = pdf_container.bounding_box() assert b_box['width'] == 400 - assert b_box['height'] == 300 + assert b_box['height'] > 0 pdf_viewer = iframe_frame.locator('div[id="pdfViewer"]') expect(pdf_viewer).to_be_visible() From c595178f6e0cad15b423750c0224f300540f14f4 Mon Sep 17 00:00:00 2001 From: Luca Foppiano Date: Tue, 5 Mar 2024 21:18:00 +0900 Subject: [PATCH 6/6] revise default values for embed and iframe --- streamlit_pdf_viewer/__init__.py | 9 ++++++++- streamlit_pdf_viewer/frontend/src/PdfViewer.vue | 4 ++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/streamlit_pdf_viewer/__init__.py b/streamlit_pdf_viewer/__init__.py index 3de0bd3a..058ae81b 100644 --- a/streamlit_pdf_viewer/__init__.py +++ b/streamlit_pdf_viewer/__init__.py @@ -7,6 +7,9 @@ import json _RELEASE = True +RENDERING_EMBED = "legacy_embed" +RENDERING_IFRAME = "legacy_iframe" +RENDERING_UNWRAP = "unwrap" if not _RELEASE: _component_func = components.declare_component( @@ -29,7 +32,7 @@ def pdf_viewer(input: Union[str, Path, bytes], annotations: list = (), pages_vertical_spacing: int = 2, annotation_outline_size: int = 1, - rendering: str = "unwrap", + rendering: str = RENDERING_UNWRAP, pages_to_render: List[int] = () ): """ @@ -67,6 +70,10 @@ def pdf_viewer(input: Union[str, Path, bytes], binary = fo.read() else: binary = input + + if rendering == RENDERING_IFRAME or rendering == RENDERING_EMBED: + if height is None: + height = "100%" base64_pdf = base64.b64encode(binary).decode('utf-8') component_value = _component_func( diff --git a/streamlit_pdf_viewer/frontend/src/PdfViewer.vue b/streamlit_pdf_viewer/frontend/src/PdfViewer.vue index 0cccae51..8251db1a 100644 --- a/streamlit_pdf_viewer/frontend/src/PdfViewer.vue +++ b/streamlit_pdf_viewer/frontend/src/PdfViewer.vue @@ -10,10 +10,10 @@
- +
- +
Error rendering option.