Pdf.js: Запрос функции на будущее: слои PDF

Созданный на 17 июл. 2011  ·  32Комментарии  ·  Источник: mozilla/pdf.js

Вот и все.

Код выглядит многообещающе!

1-core 2-feature

Самый полезный комментарий

Также ожидайте этой функции. Получить информацию о слоях / показать слой / скрыть слой.

Все 32 Комментарий

Непонятно, что это значит. Пользователь больше не активен на Github. Можно открыть снова, если потребуется.

Позвольте мне погуглить это для Вас.

http://www.google.com/search?q=site : adobe.com + pdf + layer
http://www.google.com/search?q=site : adobe.com + pdf +% 22optional + content + group% 22

Стандарт, начиная со спецификации PDF 1.5.
http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/pdf/pdfs/PDF32000_2008.pdf
раздел 8.11.3 «Сделать графический контент необязательным»

Присутствует в пользовательском интерфейсе каждой программы просмотра Adobe PDF уже около миллиарда лет.
Слои PDF обычно соответствуют слоям программы рисования Illustrator (и аналогичных), слоям в выходных данных ГИС и т. Д.

Я был бы более «активным» на github (и с другим бесплатным программным обеспечением), если бы мне нравилось, когда меня бьют больше. (Я перестал использовать Firefox после «обновления», которое убило действительно полезный http://code.google.com/p/firefox-mac-pdf/ плагин, который также не поддерживал PDF-слой, но в остальном действительно работал очень хорошо . Браузер без просмотра PDF-файлов = бесполезен. Safari, по крайней мере, справляется с этим, несмотря на всю остальную ерунду.)

Привет, я не хотел тебя оскорбить! Мы занимаемся устранением проблемы, поэтому, пожалуйста, простите, что закрыли вам проблему.

И спасибо за подробный ответ - он определенно прояснил, что вы имели в виду.

Трудно сделать повторное предположение о кратких пользовательских запросах - имел ли пользователь в виду «слои» на уровне пользовательского интерфейса / средства просмотра или на уровне спецификации (необязательный контент) и т. Д.? Я думал о том, чтобы спросить здесь, но я ошибочно предположил, что вероятность ответа была низкой, учитывая, что единственным вашим действием на Github был этот комментарий (мы польщены! :)).

Как я уже сказал, открытие - это определенно вариант - считайте, что это сделано.

Еще раз спасибо.

Я загрузил сюда крошечный файл, который демонстрирует неправильное поведение рендеринга для необязательных групп контента и / или контуров отсечения (я не уверен, что на самом деле вызывает плохое поведение). Если вы попытаетесь добавить #textLayer=visible к URL-адресу, вы увидите, что pdf.js правильно находит и отображает текст, но просто неправильно обрабатывает остальную часть визуализации.

(Этот конкретный PDF-файл появился из-за моей работы над этим подходом к отображению ссылок в LaTeX с использованием выделения вместо полей. Текст отображается в текущем пути отсечения ( 7 Tr ), а не как обычный текст ( 0 Tr ), то обтравочный контур заполняется обычным цветом текста и в дополнительной группе содержимого снова заполняется цветом выделения. IIRC, canvas.js#L982 уже имеет некоторую поддержку для добавления текста к обтравочному контуру. , но, похоже, здесь он не работает ... В результате этот комментарий может не быть на 100% применимым к его ошибке; не стесняйтесь перенаправить меня на более подходящий, если он существует ;-))

@blerner Я думаю, что эта проблема отличается от того, о чем вы спрашиваете. Можете ли вы открыть новый выпуск своим комментарием выше?

Я тоже ищу функциональность OCG ... это в планах? Может кто-нибудь указать мне на дорожную карту?

Есть новости о поддерживающих слоях? Было бы невероятно полезно. Также было бы полезно получить имена объектов (например, имена объектов и групп, которые вы можете установить в Illustrator).

Мне также интересно знать, когда будут поддерживаться слои (в частности, их отображение / скрытие).

Для этого пока нет реализации, и, насколько я знаю, никто не работает над этим. Если кто-то хочет над этим поработать, смело создавайте пулреквест.

Файлы с OCG:
http://ims.er.usgs.gov/images/USTopo/
(не все, только огромные)

Также ожидайте этой функции. Получить информацию о слоях / показать слой / скрыть слой.

Привет, также ожидайте поддержки OCG (уровень). Есть расписание?
@timvandermeij Вложение представляет собой файл в формате pdf, экспортированный из архитектурного чертежа, содержащего сотни слоев.
OCGs_demo.PDF

В настоящее время реализация этой функции не планируется. Если кто-то хочет над этим поработать, дайте нам знать. Если вы можете прикрепить сюда больше примеров файлов PDF, это поможет людям начать работу и проверить свою работу.

Вот простой:
PDFBOX-4103-OCG.pdf

старый пример с прозрачностью и ocgs, было бы неплохо, если бы ocgs можно было выбирать из браузера / страницы
_myChessboardv1.2_mockup_ImageArray_beta0.7 - public.pdf

Я пытаюсь определить какой-то контент из PDF.
Я понимаю, что не могу использовать слои, потому что они не поддерживаются.
Это корект?
А есть ли другой способ?

Я тоже жду этой функции. Получить информацию о слоях / показать слой / скрыть слой. Это будет очень полезно для использования Solidworks / Inventor.

Привет, я понимаю, что этой проблеме 8 лет, но я просто хотел бы добавить к случаю, что это была бы очень полезная функция. Может, за 2 года все изменилось?

Обновите статус, если кто-то работал над этой проблемой и решил ее.

Спасибо

+1

+1

Пожалуйста, не публикуйте отдельные комментарии «+1», а дайте исходному комментарию (https://github.com/mozilla/pdf.js/issues/269#issue-1238154) отметку «Нравится», используя механизм реакции GitHub. Это предотвращает ненужные удары по этой проблеме и позволяет нам фильтровать на основе приоритета сообщества.

Привет, есть ли какие-нибудь обновления приоритета этого будущего запроса? :)
Кажется, что много дублированных сообщений ссылаются на одну и ту же проблему, которую нельзя объяснить и показать в хорошем примере в этом сообщении?

Сейчас над этим никто не работает. Если кто-то хочет внести свой вклад, мы всегда рады рассмотреть запросы на включение.

Причина, по которой это еще не реализовано, скорее всего, заключается в том, что это довольно сложная тема, учитывая то, как все это описано в спецификации PDF.
Игнорируя множество других особенностей, связанных с OCG, раздел «8.11.3.1 Общие» спецификации заявляет (обратите внимание на второй пункт):

Когда определено, что часть необязательного содержимого в PDF-файле должна быть скрыта, происходит следующее:

  • Контент не отрисовывается.
  • Операции с графическим состоянием, такие как установка цвета, матрицы преобразования и отсечения, по-прежнему должны применяться. Кроме того, должны применяться побочные эффекты графического состояния, возникающие из-за операторов рисования; в частности, текущая позиция текста должна обновляться даже для текста, заключенного в необязательный контент. Другими словами, параметры состояния графики, которые сохраняются после конца раздела с помеченным содержимым, должны быть одинаковыми независимо от того, является ли необязательный контент видимым или нет.

Привет, я пытался найти решение этой проблемы на прошлой неделе и надеялся, что кто-нибудь укажет мне правильное направление.
Для моего варианта использования не было бы необходимости переключать дополнительные слои, мне просто нужно было бы скрыть их в моем средстве просмотра.

Пока мне удавалось идентифицировать «скрытые» слои внутри document.js следующим образом:

const hiddenLayers = this.xref.root._map.OCProperties._map.D.get("OFF");

Но я не смог провести связь между слоями и фактическим контентом, который отображается pdf.js. Так что, если бы кто-нибудь мог дать мне подсказку, как выяснить, какие данные должны быть скрыты, я бы с удовольствием использовал их.

@brendandahl как работает новый API? Что такое «необязательный контент»? Разве мы не можем просто сканировать существующие слои и скрывать их? Благодаря!

Что такое «необязательный контент»?

См. Https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/PDF32000_2008.pdf#G7.3858031

Разве мы не можем просто сканировать существующие слои и скрывать их?

К сожалению, действительно довольно сложно понять, о чем вы здесь спрашиваете.
Примечание. Эта функция еще не интегрирована в программу просмотра по умолчанию, однако она будет рассмотрена в # 12170.

Извините, я имел в виду их обнаружение и возможность манипулировать ими (скрыть, удалить и т. Д.)

Я попробовал эту функцию, и она работает, как ожидалось, а именно: вместо отображения всех слоев отображаются только те, которые доступны для просмотра.

@brendandahl как работает новый API? Что такое «необязательный контент»? Разве мы не можем просто сканировать существующие слои и скрывать их? Благодаря!

Полный API все еще требует немного дополнительной работы, но вы можете pdfDoc.getOptionalContentConfig затем перебрать различные optionalContentConfig.groups и указать, какие из них вы хотите скрыть / показать ( optionalContentGroup.visible ). Затем передайте эту конфигурацию в вызов на страницу render a.

Полезные ссылки:
https://github.com/mozilla/pdf.js/blob/63e33a5895bb730ce0e6a65e4d0de12ed043b649/src/display/api.js#L779

https://github.com/mozilla/pdf.js/blob/63e33a5895bb730ce0e6a65e4d0de12ed043b649/src/display/optional_content_config.js#L25

https://github.com/mozilla/pdf.js/blob/63e33a5895bb730ce0e6a65e4d0de12ed043b649/src/display/api.js#L958

@brendandahl , это выглядит очень интересно! Я попробую. Благодаря!

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

PeterNerlich picture PeterNerlich  ·  3Комментарии

kleins05 picture kleins05  ·  3Комментарии

anggikolo11 picture anggikolo11  ·  3Комментарии

hp011235 picture hp011235  ·  4Комментарии

smit-modi picture smit-modi  ·  3Комментарии