Django在特定页码上打开pdf

时间:2020-07-17 16:01:01

标签: python django django-views django-templates python-pdfreader

我正在尝试创建PDF分析Web应用程序,但遇到问题。我想允许用户打开其中包含300多个页面的pdf的某个页面。 因此,有人可以告诉我如何使用Django在特定页面的新标签页中打开pdf吗?


编辑-实际上,Django代码正在AWS服务器上运行,我希望用户在分析后存储在我的媒体文件夹中的特定页面上查看并打开PDF。

3 个答案:

答案 0 :(得分:0)

此问题的答案确实不是特定于Django的,并且将取决于您用来显示PDF的查看器。根据{{​​3}},如果您依靠浏览器来显示它,则可以在URL中使用锚链接(#page =)(例如 Adobe )我认为,对此的支持在Firefox和Chrome之外不一样。

另一方面,如果您使用http://www.example.com/myfile.pdf#page=XX,则可以以编程方式选择要呈现的页面。您可以在查看者的示例页面PDF.JS上查看如何操作。

答案 1 :(得分:0)

这取决于哪个库等。

并不是@ps_所说的django问题。

来自Adobe.com 要将HTML链接定位到PDF文件中的特定页面,请在链接URL的末尾添加#page = [页码]。

例如,此HTML标签打开名为myfile.pdf的PDF文件的第4页:

<A HREF="http://www.example.com/myfile.pdf#page=4">

答案 2 :(得分:0)

我能够解决我的问题,花了一段时间,每次尝试使用不同的库并且PDF.js失败之后。 解决方案非常简单。所以我要做的是:

步骤1:将MEDIA_ROOT和MEDIA_URL添加到settings.py

# path to the MEDIA directory
MEDIA_ROOT = '/home/absolute/path/to/your/media/folder' 

# URL to use to open MEDIA 
MEDIA_URL = '/media/'

步骤2:使用以下代码更新urls.py

from . import settings
import django

urlpatterns = [
...
...
url(r'^(.*?)media/(?P<path>.*)$', django.views.static.serve,
             {'document_root': settings.MEDIA_ROOT}),
]

步骤3:现在,我在HTML标记中创建了一个onclick,如下所示:

我的pdf文件位于媒体目录内的documents文件夹中

onclick="window.open('media/documents/{{Your/Pdf/File/Path.pdf}}#page={{Page_number_to_open}}')"