Настройка Mikrotik на 2 WAN Load Balancing

Балансировка нагрузки на WAN-линках встает довольно часто и у многих, и в отличие от других вещей, которые можно настроить на оборудовании MikroTik быстро и безболезненно – в случае настройки Load Balancing придется постараться. Тема относительно сложная, наличие нескольких WAN-линков и задача по настройке балансировки нагрузки включает в себя настройку нескольких шлюзов и маршрутов по умолчанию, множество правил трансляции NAT и так далее.


НАСТРОЙКА МАРШРУТИЗАТОРА

Итак, в наличие у нас имеется один маршрутизатор MikroTik 951Ui-2HnD, который подключен к двум провайдерам через антенны, на портах ether1 и ether2 соответственно, и локальной сетью. Трафик из локальной сети будет NATиться из обоих WAN портов и будет сбалансирован по нагрузке.

Настраиваем локальные IP-адреса:

/ip address

add address=192.0.2.2/24 interface=ether1-isp-1

add address=198.51.100.2/24 interface=ether2-isp-2

add address=192.168.20.1/24 interface=bridge-local

Настраиваем шлюзы по умолчанию:

/ip route

add dst-address=0.0.0.0/0 check-gateway=ping gateway=192.0.2.1,198.51.100.1

Настраиваем NAT на WAN портах для исходящего направления:

/ip firewall nat

add action=masquerade chain=srcnat out-interface=ether1

add action=masquerade chain=srcnat out-interface=ether2

Если оставить только этот пример настройки, то если один из линков “отвалится”, то вместо него будет использоваться второй. Однако, никакой балансировки нагрузки здесь нет.


ИСХОДЯЩАЯ И ВХОДЯЩАЯ MANGLE МАРКИРОВКА

Одной из типичных проблем при использовании более одного WAN-соединения является то, что пакеты принятые на одном WAN интерфейсе, могут тут же быть отправлены через другой WAN-интерфейс, что может, к примеру, сломать VPN-based сеть. Нам нужно чтобы пакеты “принадлежащие” одному и тому же соединению принимались и отправлялись через один и тот же WAN порт. В случае аварии у одного из провайдеров, все подключения на порту “умрут” и затем будут переподключены на другом WAN порту. Для этого необходимо промаркировать соединения:

/ip firewall mangle

add action=mark-connection chain=input in-interface=ether1 new-connection-mark="CON-IN-ISP-1"

add action=mark-connection chain=input in-interface=ether2 new-connection-mark="CON-IN-ISP-2"

Это поможет маршрутизатору отслеживать порт для каждого входящего подключения.

Теперь мы будем использовать отметку подключения для входящих пакетов для вызова отметки маршрутизации. Это отметка маршрутизации будет использована позднее на маршруте, который будет сообщать подключению через какой WAN-порт необходимо слать пакеты наружу.

add action=mark-routing chain=output connection-mark="CON-IN-ISP-1" new-routing-mark="ROUTE-ISP-1"

add action=mark-routing chain=output connection-mark="CON-IN-ISP-2" new-routing-mark="ROUTE-ISP-2"

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


МАРКИРОВКА LAN МАРШРУТА

Понадобится также настроить несколько Mangle правил – они необходимы, чтобы сообщить роутеру о необходимости балансировки пакетов, которые отправляются из локальной сети. Сам механизм балансировки в этой статье не описывается, можно только сказать что происходить много операций хеширования – если же интересно копнуть глубже, то вы можете обратиться к официальной документации MikroTik. В соответствии с этими правилами маршрутизатор будет балансировать трафик приходящий на bridge-local, который направлен на любой нелокальный адрес в Интернете. Мы захватываем трафик в цепочке предварительной маршрутизации для перенаправления его на необходимый нам WAN-порт в соответствии с меткой маршрутизации.

Следующие команды балансируют трафик на LAN-интерфейсе через две группы:

add action=mark-routing chain=prerouting 

    dst-address-type=!local in-interface=bridge-local new-routing-mark=

    "ISP-1-OUT" passthrough=yes per-connection-classifier=

    both-addresses-and-ports:2/0

add action=mark-routing chain=prerouting 

    dst-address-type=!local in-interface=bridge-local new-routing-mark=

    "ISP-2-OUT" passthrough=yes per-connection-classifier=

    both-addresses-and-ports:2/1

Настройка меток маршрутизации выше была выполнена точно такие же как и в предыдущем шаге и соответствуют тем маршрутам, которые будут созданы в следующем шаге.


ОСОБЫЕ МАРШРУТЫ ПО УМОЛЧАНИЮ.

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

/ip route

add distance=1 gateway=192.0.2.1 routing-mark="ISP-1-OUT"

add distance=1 gateway=198.51.100.1 routing-mark="ISP-2-OUT"

Данные маршруты используются только при наличии необходимой метки маршрутизации. Непомеченные пакеты используют обычный маршрут по умолчанию.

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

 

Итого, теперь у нас настроена балансировка трафика для двух WAN-соединений.



2020-04-12T13:34:25
MikroTik

Атака грубой силы. Описание и исследование

Ваш бизнес-сайт столкнулся с какой-либо атакой в последнее время?

Вы пережили какой-то серьезный фон в течение некоторого времени?

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

 

Что такое атака грубой силы?

Атака методом перебора — это метод проб и ошибок, используемый для получения такой информации, как пароль пользователя/PIN-код пользователя. Автоматизированное программное обеспечение используется для генерации большого количества последовательных предположений о значении желаемых данных.

 

Цель атакующего грубой силы

Как только хакер сделает успешную попытку входа в систему, что дальше? Изучите, вот несколько основных задач:

  • Кража или раскрытие личной информации пользователя, найденной в онлайн-аккаунтах.
  • Сбор комплектов учетных данных для продажи третьим лицам.
  • Выдает себя за аккаунт для распространения фальшивого контента или фишинговых ссылок.
  • Кража системных ресурсов для использования в других видах деятельности
  • Распространение вредоносного или спам-контента или перенаправление доменов на вредоносный контент

 

Методы предотвращения атаки методом грубой силы

Есть много методов, чтобы предотвратить атаки грубой силы.

Наиболее используемый метод — это политика надежных паролей. Каждый сервер должен обеспечивать использование надежных паролей и требовать частой смены паролей.

Политика надежного пароля должна включать:

  1. Достигните минимальной длины пароля (7 символов).
  2. Следует использовать как прописные, так и строчные буквы.
  3. Убедитесь, что включены числовые символы.
  4. Включите некоторые специальные символы, такие как @, #, $, &,% и т. д.

 

Способы предотвращения атаки грубой силой:

  1. Используйте капчу: единственное требование ввести слово или количество кошек на сгенерированном изображении очень эффективно против ботов, даже если хакеры начали использовать инструменты оптического распознавания символов, чтобы обойти этот механизм безопасности.
  2. Двухфакторная аутентификация. Многие считают ее первой линией защиты от атак методом перебора. Реализация такого решения значительно снижает риск потенциального нарушения данных.
    ПРИМЕЧАНИЕ
    Двухфакторная аутентификация очень эффективна против многих типов атак, включая атаки с использованием кейлоггеров.
  3. Уникальные URL-адреса для входа. Создайте уникальный URL-адрес для входа в различные группы пользователей. Эта практика не может остановить атаку грубой силой, но введение этой дополнительной переменной сделает вещи немного более сложными для атакующего.
  4. Сделайте пользователя root недоступным через SSH: SSH Попытки грубой силы часто выполняются для пользователя root на сервере. Убедитесь, что root недоступен через SSH, отредактировав файл sshd_config.
  5. Мониторинг журналов сервера: обязательно тщательно анализируйте файлы журналов. Администраторам известно, что файлы журналов необходимы для поддержки системы.

 

Другие практики:

  • Меняйте часто свои пароли.
  • Убедитесь, что вы создаете уникальные пароли для каждой учетной записи.
  • Не передавайте свои учетные данные через небезопасные каналы.
  • Добавьте несколько правил в файл .htaccess, чтобы укрепить безопасность вашего сайта.

 

Вывод

Атаки с использованием грубой силы довольно легки и просты для понимания, но их сложно защитить от них, поскольку такие кибератаки обычно основаны на слабых паролях и небрежном сетевом администрировании. Выполнение контрмер может помочь наименее замедлить атакующих.



2020-04-12T13:15:56
Безопасность

Получаем WildCard от Let’s Encrypt для домена.

let-encrypt-wildcard-ssl




Сегодня в статье научимся получать сертификат WildCard от Let’s Encrypt для доменов третьего уровня.




Получать сертификат я буду для своего сайта работающего на Nginx + PHP-FPM.






Для начала нам необходимо установить утилиту CertBot. Для этого в терминале набираем следующее.




sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install python-certbot-nginx




Данными командами мы добавили репозиторий для certbot, обновили все репозитории и установили certbot для Nginx.




Если у вас еще не установлен WEB-сервер Nginx, то читаем статью как это сделать.




Получаем WildCard от Let’s Encrypt




Давайте наконец-то получим наш сертификат для поддоменов. но для начала в тестовом режиме. В терминале набираем:




sudo certbot --dry-run --manual --agree-tos --preferred-challenges dns certonly --server https://acme-v02.api.letsencrypt.org/directory -d *.obu4alka.ru -d obu4alka.ru




На что certbot выдаст вот такую запись:




Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator manual, Installer None
Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel):




Ну тут все просто, необходимо ввести наш email для получения уведомлений о безопасности и оповещения о продлении. Двигаемся далее




- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o:




Тут нам сообщают чтобы мы поделились нашим адресом с разработчиками и всякими некоммерческими организациями. Я конечно отвечаю нет “N




Obtaining a new certificate
Performing the following challenges:
dns-01 challenge for obu4alka.ru

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NOTE: The IP of this machine will be publicly logged as having requested this
certificate. If you're running certbot in manual mode on a machine that is not
your server, please ensure you're okay with that.

Are you OK with your IP being logged?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o:




В данном сообщении нас предупреждают о том, что наш IP адрес на котором расположен наш сайт будет записан у разработчиков. Нажимаем “Y




Please deploy a DNS TXT record under the name
_acme-challenge.obu4alka.ru with the following value:

3yTQ7zcagxbrWLdLI4Jp8wA_VarDKkAt7RqCOwjugaE

Before continuing, verify the record is deployed.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue




Certbot выдал нам запись, которую необходимо внести в txt запись DNS сервера. Как это сделать …. ну у каждого по разному. Вот пару фотографий как это происходило у меня.




Захожу в панель хостера — выбираю мой домен — управление доменом — Управление зоной ДНС







Добавляю информацию о TXT записи (это что выдал мне certbot).







За одно добавляю информацию о поддомене третьего уровня:







После внесения всех изменений в ваш домен необходимо будет немного подождать. Чтобы записи обновились у регистратора.




Если все прошло удачно, то вводим следующие команды для получения wildcard сертификата:




sudo certbot --manual --agree-tos --manual-public-ip-logging-ok --preferred-challenges dns certonly --server https://acme-v02.api.letsencrypt.org/directory -d *.obu4alka.ru -d obu4alka.ru




Проходим все этапы заново и получаем наш сертификат.




Также давайте проверим что запись действительно обновилась. Для этого в терминале набираем следующую команду:




dig -t txt _acme-challenge.obu4alka.ru




или можно проверить например google DNS-ом:




dig @8.8.8.8 -t txt _acme-challenge.obu4alka.ru




Если запись обновилась, то двигаемся дальше. Так, как бот запрашивал нажатия “ENTER” после всех манипуляций, то жмем.




Waiting for verification...
Cleaning up challenges
Obtaining a new certificate
IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/obu4alka.ru-0001/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/obu4alka.ru-0001/privkey.pem
   Your cert will expire on 2020-07-10. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le




Ну вот WildCard сертификат был получен.




Теперь необходимо внести изменения в конфигурационный файл nginx. Для этого открываем его (у вас название и пути могут отличаться):




sudo nano /etc/nginx/site-available/obu4alka-ssl.conf




Меняем директории для записей с ssl сертификатами, а также опцию server_name.




server_name obu4alka.ru *.obu4alka.ru;

...

ssl_certificate /etc/letsencrypt/live/obu4alka.ru-0001/fullchain.pem;                                                                             
ssl_trusted_certificate /etc/letsencrypt/live/obu4alka.ru-0001/fullchain.pem;                                                                     
ssl_certificate_key /etc/letsencrypt/live/obu4alka.ru-0001/privkey.pem;




Проверяем все ли в порядке с настройкой nginx:




nginx -t




Если все в порядке, то перезагружаем nginx:




sudo /etc/init.d/nginx restart




Теперь Nginx настроен на обработку поддоменов третьего уровня с WildCard сертификатом.




Ошибка при обновлении сертификата wildcard от Let`s Encrypt




При обновлении wildcard сертификата certbot категарически не хотел обновлять данные сертификаты. Терминал выдал мне следующее:




All renewal attempts failed. The following certs could not be renewed:
  /etc/letsencrypt/live/obu4alka.ru-0001/fullchain.pem (failure)
  /etc/letsencrypt/live/obu4alka.ru-0002/fullchain.pem (failure)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2 renew failure(s), 0 parse failure(s)




Решение было найдено после 4 часов изучение интернета. Опишу все процедуры к которым я прибегал. Может кому помогут.




  • Первое: В директории /etc/letsencrypt/renewal находим наш домен и меняем строчку authenticator.




sudo nano /etc/letsencrypt/renewal/obu4alka.ru-0001.conf




#authenticator = manual # было
authenticator = nginx # стало




  • Второе: В директории /etc/nginx/site-available находим наш конфигурационный файл от домена и смотрим чтобы был прописан IP-адрес перед портами 80 и 443
  • Третье: После долгих мучений (первые два варианта не помогли) я решил удалить конфиги и директории на сертификаты от certbot. И так переходим в директорию /etc/letsencrypt/live и удаляем все каталоги нашего домена. Также поступаем с директорией /etc/letsencrypt/archive и /etc/letsencrypt/renewal. А далее переходим к созданию сертификата заново.




Настройка автопродления сертификатов




Тут всё просто, точнее даже очень просто.




Создаем исполняемый bash скрипт и открываем на редактирование:




sudo touch /etc/cron.weekly/cert-nginx && sudo chmod +x /etc/cron.weekly/cert-nginx && sudo nano /etc/cron.weekly/cert-nginx




Следующего содержания:




#!/bin/bash
/usr/bin/certbot renew --post-hook "service nginx reload"




В результате каждую неделю скрипт будет запускаться и проверять необходимость обновления сертификатов. В случае такой необходимости сертификаты автоматически будут обновлены и будет запущен хук обновляющий конфигурацию сервера nginx (в моём случае)



[endtxt]




RSS



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


2020-04-11T09:27:55
Nginx

Как скопировать текст из файла PDF

Если вы хотите скопировать текст из файла PDF для добавления в документ Word, вставить формулу в электронную таблицу Excel или вставить в слайды PowerPoint для презентации, это можно сделать так же просто, как с помощью функции «Копировать и вставить».

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

Как скопировать текст из PDF

Прежде чем вы сможете скопировать текст из PDF в другое приложение, вы должны подтвердить, что в нем нет настроек безопасности, которые запрещают копирование, иначе вы не сможете ничего копировать. На это может указывать функция копирования, выделенная серым цветом или затемненная в Reader.

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

  • Для этого щелкните документ правой кнопкой мыши и выберите « Свойства документа».

  • Перейдите на вкладку « Безопасность » и просмотрите сводку ограничений по документам, чтобы узнать, разрешено или нет копирование содержимого.

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

Существует несколько способов копирования текста из файла PDF, которые мы рассмотрим в этом руководстве.

Функция копирования и вставки

Это де-факто метод копирования текста из большинства документов или файлов, а не только из PDF-файлов. Вы можете использовать сочетание клавиш CTRL + C, чтобы скопировать нужный текст, а затем использовать CTRL + V, чтобы вставить его в другой документ.

Если вы используете Mac, нажмите Command-C, чтобы скопировать текст, и Command-V, чтобы вставить содержимое буфера обмена в текущий документ или приложение.

Кроме того, вы можете использовать правую кнопку мыши или сенсорной панели и выбрать инструмент «Выбор» .

Выделите текст, который вы хотите скопировать в документе PDF, перетащив мышью, чтобы выделить часть, которую вы хотите скопировать, щелкните правой кнопкой мыши выделенный текст и выберите « Копировать» .

Вы также можете перейти на вкладку меню и нажать « Правка»> «Копировать» . После того, как он скопирован, перейдите к документу, в который вы хотите вставить скопированный текст, щелкните правой кнопкой мыши место, в котором вы хотите разместить его, и выберите «Вставить» или нажмите « Правка»> «Вставить» .

Инструмент для создания снимков или снимков экрана

Инструмент «Снимок» в программе чтения PDF-файлов поможет вам выбрать нужный текст в виде скриншота или рисунка, а затем вставить его в другой документ, не затрагивая форматирование. Если вы выберете этот метод, вы получите именно ту часть текста, которая вам нужна, но она не будет редактируемой.

Для этого откройте документ PDF, нажмите «Правка» > «Сделать снимок».

В качестве альтернативы, выберите строку заголовка окна PDF и нажмите Alt + PrtScn на клавиатуре, чтобы сделать снимок экрана, а затем обрезать на основе нужной части.

Если вы используете Mac, нажмите Ctrl + Shift + 4 и используйте курсор на экране, чтобы перетащить и выбрать текст, который вы хотите захватить.

Интернет PDF Reader

Вы можете скопировать текст из PDF-документа в браузере или онлайн-ридере.

Для этого откройте PDF-файл в браузере, щелкнув правой кнопкой мыши файл и выбрав « Открыть с помощью»> (выберите браузер) или перетащите его в открытое окно браузера.

Выберите текст, который вы хотите. Нажмите CTRL + C, чтобы скопировать текст и вставить его в другой документ, используя CTRL + V. Вы также можете щелкнуть правой кнопкой мыши по сенсорной панели и выбрать « Копировать» , а затем снова щелкнуть правой кнопкой мыши другой документ и выбрать « Вставить» .

Программное обеспечение для извлечения PDF

Сторонний инструмент для извлечения PDF также может помочь вам извлечь текст для использования в другом приложении, таком как Word, презентация PowerPoint или программное обеспечение для настольных издательских систем.

Вы можете использовать такой инструмент, как ExtractPDF, загрузить свой PDF и нажать Пуск. Инструмент будет извлекать изображения, текст или даже шрифты, если вы хотите, после чего вы можете скопировать то, что вы хотите из извлеченного контента и вставить его в другое приложение.

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

PDF Converter

Конвертер PDF позволяет вам конвертировать документ PDF в редактируемый документ , после чего вы можете скопировать свой текст и использовать его в другом приложении.

Одним из популярных PDF-конвертеров является SmallPDF, потому что это онлайн-инструмент, поэтому он не требует установки и прост в использовании. Чтобы использовать его, откройте SmallPDF в браузере, выберите формат вывода, например, PDF в Word .

Нажмите «Выбрать файл», чтобы загрузить PDF-файл, который вы хотите преобразовать.

Нажмите Загрузить, чтобы сохранить преобразованный файл на вашем устройстве. Затем откройте преобразованный документ Word и скопируйте нужный текст.

Инструмент OCR

Инструмент оптического распознавания символов (OCR) позволяет преобразовывать файл PDF в редактируемый документ Word, копировать текст из файлов PDF и сканированные изображения в редактируемые текстовые форматы.

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

Adobe Acrobat работает как текстовый конвертер с OCR, так как он автоматически извлекает текст из отсканированных изображений или бумажных документов и преобразует их в PDF-файлы.

Самое приятное то, что ваш PDF будет соответствовать оригинальной распечатке благодаря автоматическому созданию пользовательских шрифтов , и вы можете использовать его с другими приложениями Office, вырезая и вставляя или экспортируя в MS-Office. Это также позволяет вам сохранить точный внешний вид документа и ограничить редактирование содержимого.

Примечание. Для выполнения этих действий необходим Adobe Acrobat, а не Adobe Reader, поскольку последний предназначен только для просмотра PDF-файлов и не имеет инструмента OCR.

Чтобы использовать собственный инструмент OCR в Adobe Acrobat, откройте PDF-файл, содержащий отсканированный текст или изображение, в Acrobat для ПК или Mac и нажмите « Редактировать PDF» .

Acrobat автоматически применяет OCR к PDF и преобразует его в полностью редактируемую копию. Выделите текст, который хотите скопировать, и нажмите « Правка»> «Копировать» , а затем вставьте его в другое приложение.

Вы можете нажать Файл> Сохранить как, чтобы сохранить редактируемый документ для последующего использования.

Либо откройте отсканированный документ или изображение, с которым вы хотите использовать устройство чтения OCR, нажмите « Инструменты» в верхней правой части панели инструментов и выберите « Распознать текст»> «В этом файле» .

Вы увидите всплывающее окно с текущими общими настройками, такими как язык распознавания текста, стиль вывода PDF и разрешение. Нажмите OK, чтобы текст был распознан.

Если вы хотите изменить настройки, нажмите кнопку « Изменить» , а затем нажмите кнопку «ОК» после завершения.

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

Если у вас есть только Adobe Reader и вы не хотите получать копию Acrobat, есть бесплатные инструменты OCR, такие как OCR OneNote для ПК, который можно использовать бесплатно, или библиотека Tesseract OCR для Mac.

Примечание. Если у вас есть Adobe Acrobat, вы можете распознать несколько документов одновременно. Просто откройте любой документ в Acrobat, нажмите « Распознать текст» на боковой панели « Инструменты» и выберите «В нескольких файлах». Перетащите PDF-файлы, которые вы хотите, в OCR, и Acrobat распознает текст для вас.

Есть ли у вас какие-либо другие приемы, которые вы используете для копирования текста из файла PDF? Расскажите нам об этом в комментарии ниже.



2020-04-10T09:31:45
Вопросы читателей

[РЕШЕНО] Wireguard. RTNETLINK answers: Operation not supported.

При попытке создать интерфейс wireguard получаем ошибку «RTNETLINK answers: Operation not supported». Команда modprobe wireguard возвращает «modprobe: FATAL: Module wireguard not found». Читать

Зачем хранить сессии в базе данных?

Отвечу сразу: не надо хранить сессии в базе данных. Для большинства сайтов достаточно использовать стандартные методы хранения PHP, в файлах. Читать