Как создавать и редактировать PDF-файлы в Ubuntu
Опубликовано
PDF или Portable Document Format — это, в основном, наш первый выбор, когда речь идет о печати, совместном использовании и пересылке по электронной почте документов, особенно больших. Для Windows и MacOS, вы можете быть очень хорошо знакомы, а также зависимы от широко используемых продуктов Acrobat для создания, просмотра и редактирования pdf. К сожалению, в системах Linux нет стандартного создателя pdf. Однако вы можете использовать продукты LibreOffice для создания и редактирования PDF файлов в Ubuntu.
В этой статье мы объясним, как это сделать:
- Создать PDF-файл
- Конвертировать документ в PDF
- Редактировать PDF-файлы
Создание/преобразование PDF с помощью LibreOffice Writer
LibreOffice Writer позволяет экспортировать документ в PDF-файл. С помощью этой функции вы можете создать новый PDF-документ или преобразовать уже существующий документ в PDF-файл. LibreOffice Writer является частью пакета LibreOffice и в большинстве дистрибутивов Linux доступен по умолчанию. Если в вашей системе его нет, вы можете легко установить его из менеджера программ Ubuntu:
Вы можете запустить LibreOffice Writer либо через строку поиска программы, либо непосредственно из списка приложений.
Чтобы создать новый PDF, создайте документ, как это делается в любом текстовом редакторе.
Когда вы закончите добавлять весь текст и графику в файл, нажмите на значок Экспорт в PDF (Export as PDF) на панели инструментов. Или же нажмите меню Файл (File), выберите пункт Экспортировать как (Export as), а затем Экспортировать в PDF (Export as PDF). Второй способ предоставляет вам множество опций для создания PDF-файла.
Нажмите кнопку Экспорт (Export) и дайте имя файлу, если вы этого еще не сделали. Теперь ваш файл будет экспортирован как PDF-файл.
Если вы хотите преобразовать уже готовый документ в PDF-файл, просто откройте файл в LibreOffice Writer, а затем экспортируйте его в формат PDF.
Редактирование PDF с помощью LibreOffice Draw
Если вам нужны базовые функции редактирования PDF, такие как редактирование текста, то LibreOffice Draw — подходящий инструмент для вас. Он также входит в пакет LibreOffice и доступен по умолчанию в большинстве дистрибутивов Linux. Если в вашей системе его нет, вы можете легко установить его из менеджера программ Ubuntu:
Для того чтобы отредактировать файл pdf, запустите LibreOffice Draw из системного Dash следующим образом:
Затем откройте файл pdf, который вы хотите отредактировать, в меню Файл:
Затем внесите изменения в ваш файл; я добавил несколько произвольных текстов в мой файл Dummy PDF;
Затем вам нужно экспортировать отредактированный файл в pdf, используя следующий значок:
Это позволит сохранить результат в виде файла pdf.
Если при экспорте файла возникла ошибка ввода/вывода, вы можете сохранить файл под другим именем. Когда вы закрываете файл, вам не нужно Сохранять файл, когда вы получите следующее сообщение:
Нажмите кнопку Не сохранять (Don’t Svae), и ваш файл будет сохранен только как pdf-файл.
После использования этих продуктов LibreOffice на Ubuntu вы вряд ли будете скучать по продуктам Acrobat для создания и редактирования PDF.
LibreOffice pdf Ubuntu
Шаблонизация PDF / Хабр
Хабрахабр, уважаемые коллеги!Проблема впечатывания данных в PDF документ не нова, не я первый и не я последний кто с ней сталкивается, поэтому решил поделиться опытом решения и заодно представить вашему вниманию небольшое веб приложение по этой теме.
1. PDF формат хорош тем, что он не редактируемый. Во всяком случае рядовой пользователь вряд-ли будет заниматься внесением правок в документ PDF. И значит формат PDF хорошо подходит для обмена важными документами.
2. PDF формат плох тем, что он нередактируемый ) Т.к. шаблонизация, заполнение набором данных бланка документа PDF в автоматическом режиме затруднена, а в ручном режиме требуется установка платных, тяжеловесных приложений.
Меня, как программиста, беспокоит прежде всего 2-й пункт. Как в программном приложении впечатать необходимый набор данных в документ PDF?
Область применения (постановка задачи)
Сразу хочу обозначить область применения, рамки поставленной задачи, чтобы исключить недоразумения в комментариях:1. У вас есть веб API приложение на python с множеством функционала.
2. Есть бланк документа в формате pdf, в лучшем случае исходный docx файл из которого сделан этот pdf.
3. Есть требование от бизнес-заказчиков заполнить указанный pdf бланк данными клиента и в формате pdf выдать в браузер (или отправить на почту) клиенту.
Очередное гугление на эту тему не принесло результатов.
Удалось нагуглить только, что с впечатыванием всё плохо (Почему так сложно извлекать текст из PDF?, PDF с точки зрения программиста) и есть вариант шаблонизировать сначала docx файл, это сделать не сложно (Заполняем документы в Microsoft Word…), а затем преобразовать в консольном libreoffice (librewrite) docx-файл в PDF. Это всё можно сделать автоматически, из приложения.
Но во-первых, такое решение означает, что проект будет иметь тяжёлую зависимость от libreoffice.
А во-вторых, при преобразовании docx в PDF в libreoffice вид документа получается немного не таким, как он смотрится в word, и/или PDF сгенерированном в word из docx файла.
Перейдём наконец к сути рассматриваемого решения. Конечно «шаблонизация» в данном случае слово громкое, но предлагаемое решение вполне годное и полезное.
На python (и на php) есть несколько библиотек (не сложно загуглить), которые позволяют впечатывать строки и картинки в PDF-файлы, мы используем pdfrw + reportlab.Canvas. Т.е., в принципе впечатать данные нет проблем, проблема у этих библиотек в том, что для каждого поля нужно задать свои точные координаты в документе, а это значит, что
1. Нужен какой-то унифицированный функционал, который хранил бы координаты полей не внутри исходного кода, а в отдельном файле. Сразу уточню, что по опыту рекомендую хранить эти координаты в файлах и под контролем версий, т.
е. коммитить координаты вместе с соответствующими PDF-бланками и методами, генерирующими тот или иной комплект документов. И не засовывать эти координаты в базу данных, т.к. это затруднит откат к предыдущим версиям (координатам) документов, если возникнет такая необходимость. Тут вроде бы всё понятно.2. Эти координаты надо как-то вычислить, а это грустное занятие, если делать это вручную.
Тут основная идея заключается в том, чтобы в браузере создать перемещаемые div элементы, с помощью мышки настроить их положение в нужное место документа и получившиеся в браузере координаты элементов сохранить в файл на бэкенде. Собственно эти два пункта и реализованы в приложении
Способ применения
Похоже, что получилось небольшое веб приложение с фронтэндом и бэкендом, т.е. оформить его в качестве python пакета, пожалуй не получится.1. Скачиваем с гита исходники
2. Устанавливаем зависимости
3. Читаем README.md (устанавливаем и настраиваем nginx для статических файлов)
4. В папке documents создаём подпапку с именем документа, который нужно генерировать и внутри этой подпапки создаём два файла и (если необходимо) одну дирректорию с картинками:
— form.pdf # бланк документа в который надо впечатывать данные
— fields.json # параметры полей, которые необходимо впечатывать
— images # не обязательно, набор картинок, которые необходимо впечатать
Рекомендую также сохранить исходный docx-файл (если имеется), который не участвует в генерации документа, но пригодится при необходимости внести изменения и перегенерировать бланк документа PDF
— form.docx # не обязательно, имя любое
Файл fields.json имеет следующую структуру, например:
{ "0": [ [32.25, 710.25, "fio", "DejaVuSans", 12, 420], [425.25, 681.75, "gender", "DejaVuSans", 12, 18], [206.25, 681.75, "birth_date", "DejaVuSans", 12, 173], [462.75, 681.53, "foto.jpg", "DejaVuSans", 12, 92], [146.25, 665.25, "birth_place", "DejaVuSans", 12, 418], [228. 0, 634.5, "registration", "DejaVuSans", 12, 340] ], "1": [ [132.0, 720.76, "1_work", "DejaVuSans", 10, 260], [132.0, 697.51, "2_work", "DejaVuSans", 10, 260], [132.0, 673.51, "3_work", "DejaVuSans", 10, 141] ] }Добавление/удаление строк в этот файл добавляет/удаляет поля, впечатываемые в бланк
5. Открываем страницу для настроек полей (http://127.0.0.1/tpdf/positioning?pdf_name=ZayavlenieNaZagranpasport&page_num=1)
6. Настраиваем положение полей с помощью мышки в браузере и сохраняем это положение
7. Мышкой не всегда точно удаётся установить нужное положение полей, чтобы подровнять положение полей можно открыть файл fieldd.json и поправить координаты вручную. Данные в файле упорядочены по координате Y и каждое поле хранится в своей строке файла. Т.е. файл с координатами полей отформатирован аккуратно, что позволяет вручную, легко вносить необходимые корректировки.
8. Создаём ещё один метод для печати данного типа документа (если нужно как-то подготовить исходные данные и/или взять их не из фронта, а из бэкэнда).
9. Если всё в порядке, то коммитим получившийся набор данных fields.json и файлы (только не ко мне на гит, а в свой локальный гит, хотя, если документ может кому-то ещё пригодиться, то можно и публичный банк документов собрать, это идея).
Полученный файл с координатами можно использовать в другом проекте, на другом языке программирования, например php, ведь координаты в файле записаны в единицах измерения (поинты) которые используются в PDF-файлах.
Если у вас проект на python, то исходники данного приложения можно просто внедрить в проект и через использование основного класса Tpdf генерировать PDF в любом удобном месте кода.
Часто нужно сгенерировать не просто один документ из нескольких страниц, а собрать в один PDF-файл несколько документов, каждый из которых должен быть напечатан в нужном порядке и некоторые из них более одного раза. В основном классе данного приложения имеется для этих нужд специальный метод, который генерирует комплект документов, смотрите обработку метод /tpdf/example/.
Данные в основной класс нужно передавать при его инстансцинировании. Основной класс можно расширять свойствами (@property), которые будут вычисляться на основе входных данных и вставляться в PDF по имени свойства = имени поля. Так в примере выводится поле fio, а данные передаются last_name, first_name, middle_name
Можно развернуть это небольшое приложение в качестве самостоятельного сервиса, а все остальные приложения окружения будут к нему обращаться за нужным документом по сети, но тогда появятся расходы времени передачи по сети, файлы PDF не слишком «лёгкие», сама генерация документов происходит быстро.
Вместо сотни слов, иногда лучше посмотреть видео инструкцию (звук не записывал).
Опыт реализации (грабли).
- Сначала я реализовал это небольшое приложение на библиотеке PyPDF2, но комплект документов из 28 страниц генерировался 3 секунды, как-то долго. Тогда, чтобы ускорить генерацию документов, я решил попробовать мультипоточность, выделив генерацию каждой страницы в отдельный поток, однако это усложнило код но, на удивление, не дало выигрыша производительности, плюс возникли дополнительные ошибки видимо из-за конфликтов процессов. Тогда я попробовал многопроцессность, однако результат оказался тот же — производительность не выросла а в некоторых конфигурациях кода даже ухудшалась. Наконец я решил проверить быстродействие другой, аналогичной библиотеки pdfrw под которую, оказалось, почти не пришлось переписывать код и она заработала почти на порядок быстрее без всякой мультипоточности и мультипроцессности. Т.е. комплект документов из 28 страниц сгенерировался за 0.3 секунды. Не зависимо от библиотеки код изначально оптимизировал с точки зрения повторной генерации страниц: каждая страница заполняется данными один раз и хранится в памяти, и если она должна быть напечатана несколько раз, то первый раз она генерируется, а последующие разы берётся готовая из памяти.
- Листание страниц лучше делать не на ajax, так как, чтобы подтянулись новые поля всё равно нужно перезагружать всю страницу.
- Было много возни с преобразованием координат с пикселей фронта в поинты PDF. В итоге, опытным путём и путём гугления выяснилось, что отношение фронтовые координаты нужно умножать на 3/4, чтобы получить координаты документа PDF. Обратное преобразование, соответственно, наоборот.
Нужно сделать (TODO)
- Добавление и удаление новых полей с фронта.
Сейчас, чтобы добавить/удалить поле необходимо добавить/удалить строку в/из файл(а) fields.json
- Точное позиционирование полей на фронте
- Разобраться с шрифтами, сейчас доступен всего один шрифт, поддерживающий русский алфавит.
- Общий метод, принимающий на вход набор данных и возвращающий PDF-документ.
- Общий метод, принимающий на вход набор данных и возвращающий комплект документов.
Как создать PDF-файл на Mac (включая macOS 11)
Одри Гудвин
27.04.2023 09:40:32 • Отправлено в: PDFelement for Mac How-Tos Articles • Проверенные решения
Общий вопрос Среди миллионов пользователей Mac циркулирует вопрос «Возможно ли создать PDF на Mac ?» Для этого вопроса вам просто нужен мощный и стабильный инструмент для всех ваших потребностей PDF. Не беспокойтесь, эта статья предлагает три различных решения о том, как создать PDF-файл на Mac, независимо от того, нужно ли вам создать новый пустой PDF-файл или создать PDF-файл из других файлов.
- Часть 1. Как создать новый пустой документ PDF на Mac
- Часть 2. Как создать PDF на Mac (из текста, изображения, HTML)
- Часть 3: Как создать PDF на Mac — 5 эффективных способов для вас
- Часть 4. Как создать PDF-файл путем преобразования
- Часть 5. Как создать PDF-файл с помощью меню печати
Часть 1. Как создать новый пустой документ PDF на Mac
PDFelement для Mac — это комплексное решение для работы с PDF, которое предоставляет все необходимые функции для простого создания, изменения, комментирования и преобразования PDF. Если вы ищете продукт, позволяющий создавать и редактировать PDF-файлы на Mac (включая macOS Catalina), PDFelement — идеальный инструмент для создания PDF-файлов на Mac.
ПОПРОБУЙТЕ БЕСПЛАТНО ПОПРОБУЙТЕ БЕСПЛАТНОШаг 1.
Создайте пустой PDF Установите PDFelement и откройте приложение. Чтобы создать новый пустой PDF-документ, выберите «Файл» > «Создать» > «Пустой документ» в верхнем меню.
Кроме того, вы можете нажать сочетание клавиш «Command + N», чтобы напрямую создать пустой документ PDF, что поможет вам повысить производительность труда.
Шаг 2. Сохраните PDF-файл
После создания PDF-файла не забудьте сохранить файл, нажав «Файл» > «Сохранить» или «Сохранить как», чтобы сохранить файл, или вы можете напрямую нажать на нажмите клавишу «Command + S», чтобы сохранить файл.
Часть 2. Как создать PDF на Mac (из текста, изображения, HTML)
Если вам нужно создать PDF из файлов других форматов, PDFelement также позволяет создавать PDF из изображений, HTML, TEXT и т. д. . Он довольно прост в использовании и позволяет легко редактировать, подписывать и объединять PDF-файлы.
ПОПРОБУЙТЕ БЕСПЛАТНО ПОПРОБУЙТЕ БЕСПЛАТНОШаг 1. Создайте PDF на Mac
Чтобы создать PDF из файлов других форматов, выберите пункт «Файл» > «Создать» > «PDF из файла» в главном меню эта программа. Кроме того, вы можете просто перетащить файл в это программное обеспечение, и тогда файл будет автоматически создан в формате PDF в этой программе.
Шаг 2. Сохраните созданный файл
После открытия файла в PDFelement вы также можете изменить документ, используя его мощные инструменты. Затем просто перейдите в меню «Файл» и нажмите кнопку «Сохранить как», чтобы сохранить файл PDF в любом месте на вашем Mac.
ПОПРОБУЙТЕ БЕСПЛАТНО ПОПРОБУЙТЕ БЕСПЛАТНОPDFelement также предоставляет все необходимые инструменты редактирования, такие как редактирование текста, добавление объектов, вставка или извлечение страниц и т. д. Вы можете добавлять комментарии, выделять текст, добавлять заметки, добавлять/удалять водяной знак, добавляйте разметку, добавляйте страницы, создавайте формы или опросы и т. д. Он популярен среди бизнесменов, поскольку поддерживает все необходимое для простого создания, преобразования, редактирования или организации PDF-файлов.
ПОПРОБУЙТЕ БЕСПЛАТНО ПОПРОБУЙТЕ БЕСПЛАТНО youtube.com/embed/eseggIcf6-c?rel=0&autoplay=0″ allowfullscreen=»allowfullscreen» frameborder=»0″>Часть 2. Как создать PDF-файл из нескольких изображений на Mac
Вы можете легко создать PDF-файл из изображения в соответствии с приведенным выше руководством. Предположим, вы столкнулись с несколькими изображениями и вам нужно объединить их в один PDF-файл. Тогда PDFelement также может сделать это за вас. Здесь мы расскажем вам, как создать PDF-файл из нескольких изображений, независимо от того, являются ли они JPG, PNG или другими форматами.
ПОПРОБУЙТЕ БЕСПЛАТНО ПОПРОБУЙТЕ БЕСПЛАТНОШаг 1. Преобразование изображения в формат PDF
Создайте каждое отдельное изображение в формате PDF, как описано выше. Вы также можете перетащить файл изображения в PDFelement для Mac, и он будет автоматически создан в формате PDF.
Шаг 2. Объедините PDF-файлы в один на Mac
Нажмите кнопку «Инструмент» в верхнем столбце, а затем выберите «Пакетная обработка» > «Объединить PDF». Теперь вы можете добавлять все PDF-файлы, преобразованные из изображений, и объединять их в один PDF-файл за считанные секунды.
Часть 4. Как создать PDF-файл путем преобразования
Если говорить о некоторых распространенных методах создания PDF-файла, то этот стоит на первом месте. Вы можете преобразовать файлы других типов в PDF, выполнив следующие действия.
Шаг 1: Выберите файл, который вы хотите преобразовать в PDF.
Шаг 2. Когда вы закончите работу с Word, PPT или любым другим документом, сохраните файл как документ PDF.
Шаг 3: Выберите место назначения для вашего файла. Если вы не можете преобразовать свой файл в PDF с помощью этого метода, вы также можете использовать множество онлайн-сайтов, доступных для преобразования вашего документа. Просто загрузите свой документ на веб-сайты конвертации, и вы получите конвертированный PDF-документ, загруженный в вашу систему.
Часть 5. Как создать PDF-файл с помощью меню «Печать»
Вот следующий способ создания PDF-файла на Mac. Используя меню печати, вы можете легко создать новый файл PDF. Любое приложение, имеющее право печатать документы, может выполнять эту задачу без каких-либо колебаний. Вот шаги для этого;
Шаг 1: Во-первых, откройте файл, который вы хотите преобразовать в PDF, и нажмите в верхнем меню, выберите опцию «Печать» или просто нажмите клавиши «Control + P».
Шаг 2. В левом нижнем углу меню «Печать» выберите «Сохранить как PDF» и назовите свой PDF-файл.
Шаг 3: После того, как вы назвали документ, назначьте место назначения PDF-файла с помощью раскрывающегося меню и просто нажмите «Сохранить», и все готово.
Как вы видели, существует огромное количество вариантов, когда вы планируете создать PDF-файл, выбирайте каждый метод правильно.
Как создать заполняемый PDF-файл на Mac
Заполняемые PDF-файлы необходимы для поддержания рабочего процесса. У любого человека есть бесчисленное множество причин для создания заполняемого PDF-файла. Редактировать PDF-файлы сложно, и чтобы упростить эту задачу, выполните следующие действия:
1. Создайте документ
Первый шаг — создать документ. Для черновика первой версии вашего документа вы можете использовать любой текстовый процессор. Когда вы закончите, экспортируйте его в файл PDF. Убедитесь, что вы включили все, что хотите, в окончательный заполняемый файл. Добавьте надлежащие инструкции, границы и даже добавьте места, чтобы люди могли подписать PDF-файл. После внесения всех изменений сохраните его как файл PDF на своем Mac.
2. Перенесите документ в форму для заполнения
На этом этапе вам понадобится приложение для управления PDF, для этого вы также можете использовать Adobe Acrobat. Вот шаги для выполнения этого метода с помощью Adobe Acrobat;
Шаг 1. Сначала откройте ранее сохраненное приложение и перейдите на вкладку «Инструменты», чтобы выбрать «Подготовить форму».
Шаг 2. Загрузите документ и очень точно добавьте поля формы.
Шаг 3. На последнем шаге сохраните и загрузите заполняемую форму в формате PDF.
Скачайте бесплатно или купите PDFelement прямо сейчас!
Скачайте бесплатно или купите PDFelement прямо сейчас!
Купите PDFelement прямо сейчас!
Купите PDFelement прямо сейчас!
Как создать и продать PDF-файл | Малый бизнес
Ларри Симмонс
Вы можете использовать файлы PDF (формат переносимых документов) для создания электронных книг на любую вообразимую тему. Создать свой собственный PDF-файл обычно довольно просто. Просто создайте документ в любом крупном текстовом редакторе, а затем сохраните его в формате PDF. Что не так просто, так это успешно продать файл после того, как вы его создали. Вы можете использовать определенную тактику, чтобы представить файл для продажи, а не для бесплатной загрузки.
Создайте содержимое для своего PDF-файла с помощью текстового процессора или программного обеспечения для дизайна с возможностью импорта и изменения размера изображений по желанию. Установите в настройках страницы через главное меню приложения размер страницы 8 ½ дюймов на 11 дюймов, чтобы печатные версии файла были совместимы с большинством принтеров и стандартной бумагой для принтеров.
Отформатируйте внешний вид документа так, как вы хотите, чтобы он отображался для читателей при чтении в программе для чтения PDF или при чтении печатного документа. Распечатайте тестовую копию вашего документа после завершения, чтобы проверить любые проблемы с читабельностью, такие как большие пробелы вокруг фотографий или иллюстраций, неправильный интервал между текстом, слишком маленький размер шрифта и другие проблемы. При необходимости исправьте обнаруженные проблемы, а затем сохраните файл в формате PDF с помощью команды «Файл», «Сохранить как» в главном меню.
Создайте веб-сайт для продажи вашего PDF-файла с помощью программы веб-дизайна WYSIWYG (что вы видите, то и получаете) или зарегистрируйтесь в службе хостинга веб-сайтов, которая предоставляет вам инструменты для создания сайтов, которые помогут вам в этом. шаг за шагом в процессе проектирования. Сделайте свой сайт привлекательным, используйте дополнительные цвета и легко читаемый шрифт для вашего сайта. Включите фотографии, чтобы привлечь внимание зрителя, точное описание содержимого PDF-файла и несколько фрагментов, демонстрирующих это содержимое.
Добавить на сайт подробную инструкцию как получить файл. Вы можете выбрать один из вариантов покупки, включающий добавление кнопки оплаты PayPal и самостоятельное выполнение заказа, или выбор сторонней системы сбора и доставки платежей, которая автоматически принимает кредитные карты или платежи PayPal и отправляет файл PDF на адрес электронной почты покупателя после проверки квитанция об оплате.
Создайте собственное доменное имя для своего веб-сайта. Сделайте его легким для запоминания и ввода, чтобы привлечь трафик на сайт.
Выберите онлайн-издателя, который будет служить хранилищем для вашего PDF-файла, а также витриной, предоставляющей цифровую доставку в качестве альтернативы вашему собственному веб-сайту. Создайте учетную запись у издателя, убедившись, что вы внимательно прочитали издательское соглашение, чтобы убедиться, что вы сохраняете контроль над своей работой и что вы знаете, какую часть продажной цены вы получите от каждой продажи книги. Подпишите соглашение с выбранным вами онлайн-издателем, а затем загрузите PDF-файл в виде электронной книги.
Рекламируйте свой PDF-файл, чтобы привлечь к нему как можно больше внимания. Не стесняйтесь говорить о его существовании. Создайте свой собственный веб-сайт для продажи книги, купите место для рекламы в компаниях онлайн-маркетинга, которые размещают рекламу на сайтах, соответствующих профилю вашего читателя. Проведите интервью с блоггерами, подкастерами и всеми, кто может привлечь трафик к вашему файлу PDF. Каждый посетитель вашего файла является потенциальным покупателем, поэтому маркетинг приведет к продажам. Избегайте спам-маркетинга. Следите за тем, чтобы ваши упоминания соответствовали тому месту, где вы их делаете, и прочитайте правила для места размещения рекламы, прежде чем размещать рекламу, чтобы убедиться, что вы их соблюдаете.
Ссылки
- Copyblogger: Как написать электронную книгу, которая будет продаваться
Ресурсы
- Бесплатный конвертер PDF
Советы 9 0005
- Если вы не можете сохранить содержимое напрямую в формате PDF, воспользуйтесь бесплатным конвертером PDF онлайн, чтобы преобразовать файл.
Предупреждения
- Защитите свой PDF-файл от кражи, защитив паролем и поставив водяной знак на каждый продаваемый файл, чтобы идентифицировать покупателей, которые потенциально могут поделиться файлом через Интернет.
Ваш комментарий будет первым