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, вы сможете программно выбрать страницу для рендеринга. Вы можете увидеть, как это сделать, на странице примеров для зрителей здесь.

Другие вопросы по тегам