Tips & Tricks

Как отредактировать текст из определенных слоев PDF-файла, сохраняя при этом видимыми другие слои

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

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

Для организаций, на которых распространяются правила защиты данных, такие как GDPR, HIPAA или CCPA, возможность редактирования по уровням обеспечивает дополнительное преимущество соответствия. Документ можно распространять так, чтобы все неконфиденциальные слои были видны основному персоналу, а слой конфиденциальной информации удалялся или заменялся. Один и тот же исходный файл обслуживает все уровни аудитории, а редактирование применяется на уровне слоя, а не путем сохранения нескольких отдельных отредактированных копий документа. Это снижает накладные расходы на контроль версий и гарантирует, что все получатели работают с одной и той же базовой структурой документа, имея доступ только к тем уровням, которые соответствуют их уровню допуска.

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

Этот сценарий возникает в нескольких профессиональных контекстах. Инженерные фирмы используют многослойные PDF-файлы, чтобы отделить архитектурные планы этажей от наложений электропроводки, сантехники и систем отопления, вентиляции и кондиционирования воздуха в одном файле. Редактирование конфиденциального имени клиента из слоя основной надписи не должно влиять на слои плана этажа, размеров или аннотаций. Правительственные учреждения публикуют многослойные PDF-файлы с базовыми картами на одном слое и подробностями конфиденциальной инфраструктуры на другом. Многоязычные издатели хранят каждый перевод на отдельном слое. В любом случае редактирование должно быть хирургическим: ограничиваться только одним слоем.

How to Redact Text From Specific Layers of a PDF While Keeping Other Layers Visible

Как группы дополнительного контента PDF сохраняют контент независимо

Дополнительные группы контента были представлены в PDF версии 1.5 и теперь полностью включены в стандарт ISO 32000 (Adobe, «PDF Reference 1.7», 2006). Каждая OCG представляет собой именованную, логически независимую коллекцию содержимого страницы, которую приложение просмотра может включать или отключать по усмотрению пользователя. Каталог документов содержит словарь OCProperties, в котором перечислены все OCG по именам и сопоставлены каждый из них с принадлежащими ему объектами потока контента. Страница может ссылаться на несколько потоков контента, и каждый поток может быть помечен как принадлежащий одной или нескольким группам OCG.

Поскольку содержимое каждого слоя хранится в отдельных, идентифицируемых объектах потока содержимого в структуре объектов PDF, технически возможно редактировать, изменять или полностью удалять содержимое одного слоя, не затрагивая данные, хранящиеся в любом другом слое. Инструмент PDF Redaction, который понимает архитектуру OCG, может находить потоки контента, связанные с целевым слоем, по имени, и удалять или заменять только эти конкретные потоки. Однако стандартные инструменты редактирования, которые игнорируют границы OCG, обычно сглаживают все видимые слои в одно визуализированное растровое изображение перед применением меток редактирования. Этот шаг выравнивания навсегда объединяет все слои и разрушает исходную организацию слоев.

WukongPDF

Попробуйте Редактировать PDF

Никакой установки не требуется. Работает прямо в вашем браузере.

Начать →

Определите, какой уровень содержит информацию, подлежащую редактированию

Прежде чем выполнять какое-либо редактирование, вы должны точно определить, какое имя или идентификатор OCG содержит удаляемый контент. Откройте PDF-файл в любой программе просмотра, в пользовательском интерфейсе которой есть панель «Слои». Adobe Acrobat Pro, Foxit PDF Editor, Bluebeam Revu и несколько программ просмотра PDF с открытым исходным кодом отображают переключаемый список слоев, обычно на левой боковой панели. Отключайте каждый слой по одному, наблюдая, какой контент исчезает с экрана страницы. Сопоставьте имя каждого слоя с его визуальным содержимым. Запишите точную строку имени OCG в том виде, в каком она отображается на панели, включая заглавные буквы, пробелы и любые специальные символы.

Для программной идентификации используйте инструмент проверки структуры PDF, например «pdfinfo» с флагом «-struct» или сценарий Python с использованием библиотеки pikepdf. Словарь OCProperties внутри каталога документов сопоставляет каждое имя OCG со списком ссылок на объекты потока контента, принадлежащих этому слою. Код `pdf.Root.OCProperties` в pikepdf возвращает полную структуру OCG, которую вы затем можете просмотреть, чтобы сопоставить имена слоев с соответствующими потоками контента.

Исправление путем удаления потоков контента целевого уровня с каждой страницы

Самый точный метод — удалить из массива контента страницы только объекты потока контента, принадлежащие целевой OCG. Для этого подхода требуется инструмент или сценарий, который может считывать сопоставление OCG с контентом из каталога документов, идентифицировать каждую ссылку на объект потока контента, связанную с именем целевого слоя, и удалять эти конкретные ссылки на объекты из списка потоков контента каждой страницы. Все остальные потоки контента остаются нетронутыми и продолжают нормально отображаться. Библиотека pikepdf Python изначально поддерживает такие манипуляции на уровне объекта, как и библиотека Apache PDFBox на основе Java.

В таблице ниже сравниваются доступные подходы к редактированию многослойных PDF-файлов:

МетодСохраняет слоиТочность удаленияТребуемый уровень навыков
pikepdf/скрипт PythonДа, все остальные слои целы.Хирургическое удаление индивидуального потока контентаСредний уровень программирования на Python
Панель слоев Adobe Acrobat ProДа, если используется удаление слоевХорошо, удаляет по имени слоя через графический интерфейс.Базовый интерфейс «укажи и щелкни»
Сглаживание и редактирование (стандартные инструменты)Нет, разрушает всю организацию слоевПлохо, сжигает весь контент в одно сплющенное изображение.Базовый, но разрушительный для структуры

Исправление путем замены содержимого целевого слоя непрозрачной маской

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

Этот подход особенно эффективен для инженерных и архитектурных документов, где программное обеспечение CAD или BIM предполагает фиксированный набор слоев с определенными именами. Полное удаление слоя может привести к ошибкам или предупреждениям при повторном открытии файла в приложении разработки. Замена конфиденциального содержимого внутри слоя при сохранении самого контейнера слоя удовлетворяет как требованиям безопасности, так и требованиям совместимости программного обеспечения.

Убедитесь, что конфиденциальный контент не попал на другие слои

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

Инструмент PDF Redaction WukongPDF работает на уровне потока контента и может ориентироваться на определенные дополнительные группы контента по имени, когда структура слоев определена в документе. Редактирование применяется только к выбранному слою, сохраняя видимость и интерактивность всех остальных слоев выходного документа.

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

WukongPDF

Попробуйте Редактировать PDF

Никакой установки не требуется. Работает прямо в вашем браузере.

Начать →