Python html.Embed或html.Iframe未在plotly DASH应用程序中呈现本地pdf

Python html.Embed或html.Iframe未在plotly DASH应用程序中呈现本地pdf,python,html,pdf,plotly-dash,Python,Html,Pdf,Plotly Dash,我试图在DASH应用程序中显示从本地路径读取的pdf。我尝试使用嵌入和Iframe。但是,它们都没有显示pdf。而且,没有错误,只是空白。下面是代码片段 import dash_core_components as dcc import dash_html_components as html from dash.dependencies import Input, Output import PyPDF2 import docx2txt from jupyter_dash import Ju

我试图在DASH应用程序中显示从本地路径读取的pdf。我尝试使用嵌入和Iframe。但是,它们都没有显示pdf。而且,没有错误,只是空白。下面是代码片段

import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
import PyPDF2
import docx2txt

from jupyter_dash import JupyterDash

#external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']

app = JupyterDash(__name__)

app.layout = html.Div([
    html.Button('Submit',id='submit'),
    html.Embed(src="<path to .pdf>",width="750",height="400",type="application/pdf"),
    html.Div(id='my-div')
])


@app.callback(
    Output(component_id='my-div', component_property='children'),
    [Input(component_id='submit', component_property='n_clicks')]
)
def update_output_div(n_clicks):
   
    if n_clicks:        
        
        my_text = docx2txt.process("<path to .doc>")
        return 'You\'ve entered "{}"'.format(my_text)

app.run_server("inline",port=8060)
将仪表板核心组件作为dcc导入
将dash_html_组件导入为html
从dash.dependencies导入输入,输出
导入PyPDF2
导入docx2txt
从jupyter_dash导入JupyterDash
#外部_样式表=['https://codepen.io/chriddyp/pen/bWLwgP.css']
app=JupyterDash(名称)
app.layout=html.Div([
按钮('Submit',id='Submit'),
html.Embed(src=”“,width=“750”,height=“400”,type=“application/pdf”),
html.Div(id='my-Div')
])
@app.callback(
输出(组件id='my-div',组件属性='children'),
[输入(组件\u id='submit',组件\u属性='n\u单击')]
)
def更新输出分区(n次单击):
如果n_单击:
my_text=docx2txt.process(“”)
返回“您已输入“{}”。格式(我的文本)
app.run_服务器(“内联”,端口=8060)
我添加了一个提交按钮并读取word文件,以确保应用程序本身工作正常

我正在用Chrome的Jupyter运行下面的程序

如果我显示在线pdf或网站url,效果很好

有什么建议吗


提前谢谢。

我想现在帮你已经太迟了,但可能会帮助其他同样被困在这里的人。 我从这篇文章中得到的对我有用的方法:

我可能弄错了,但似乎相关的是,要送达的文件在资产文件夹中。当使用其他位置时,它会为我将原始应用嵌套在iFrame中。 我使用的元素就是这个。
html.Iframe(src=os.path.join(“资产”,“pdf\u name.pdf”))

我偶然发现了这个问题,因为我在显示的不同PDF之间切换时遇到问题。
希望这有助于未来的寻求答案者。

我想这对你来说太晚了,但可能会帮助其他同样被困在这里的人。 我从这篇文章中得到的对我有用的方法:

我可能弄错了,但似乎相关的是,要送达的文件在资产文件夹中。当使用其他位置时,它会为我将原始应用嵌套在iFrame中。 我使用的元素就是这个。
html.Iframe(src=os.path.join(“资产”,“pdf\u name.pdf”))

我偶然发现了这个问题,因为我在显示的不同PDF之间切换时遇到问题。 希望这有助于未来的答案寻求者