Django открывает pdf на определенном номере страницы
Я пытаюсь создать веб-приложение для анализа PDF-файлов и застрял. Я хочу разрешить пользователю открывать определенную страницу PDF-файла, содержащую более 300 страниц. Итак, может ли кто-нибудь сказать мне, как использовать Django, чтобы открыть PDF-файл в новой вкладке на определенной странице?
ИЗМЕНИТЬ - На самом деле код Django работает на сервере AWS, и я хочу, чтобы пользователь видел и открывал PDF-файл на определенной странице, которая после анализа сохраняется в моей папке мультимедиа.
3 ответа
Это зависит от того, какая библиотека и т. Д.
Не совсем вопрос django, как сказал @ps_.
С Adobe.com Чтобы указать HTML-ссылку на определенную страницу в файле PDF, добавьте #page=[номер страницы] в конец URL-адреса ссылки.
Например, этот тег HTML открывает страницу 4 файла PDF с именем myfile.pdf:
<A HREF="http://www.example.com/myfile.pdf#page=4">
Я смог решить свой вопрос, это заняло некоторое время, и после каждой попытки использовать разные библиотеки и 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. Теперь я создалonclick
в теге HTML как:
Мои файлы pdf были в папке документов внутри каталога мультимедиа
onclick="window.open('media/documents/{{Your/Pdf/File/Path.pdf}}#page={{Page_number_to_open}}')"
Ответ на этот вопрос не зависит от Django и будет зависеть от того, какую программу просмотра вы используете для отображения PDF. Если вы полагаетесь на браузер для его отображения, согласно Adobe, вы можете использовать якорную ссылку (#page=) в URL-адресе (например, http://www.example.com/myfile.pdf) хотя я думаю, что поддержка этого варьируется за пределами Firefox и Chrome.
С другой стороны, если вы используете PDF.JS, вы сможете программно выбрать страницу для рендеринга. Вы можете увидеть, как это сделать, на странице примеров для зрителей здесь.