Рубрика «PDF» - 2

Предисловие

Lorem Ipsum: пишем от руки - 1
Занимаюсь развитием образовательного проекта. И в этом году для ребят потребовались прописи на английском языке.

Несмотря на то, что мы все чаще печатаем тексты в электронном формате, написание их от руки остаётся ещё популярным в повседневной и профессиональной жизни.

Прописи — вещь полезная как и для детей, так и для взрослых. Одни еще учатся писать, другие — тренируются.

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

Тема интересная, но информации в интернете оказалось очень мало. Так возникла идея написать инструкцию создания своих прописей.
Читать полностью »

wkhtmltopdf — это один из самых мощных инструментов для генерации PDF. Он позволяет использовать в генерируемом документе все возможности HTML и CSS. «Под капотом» у него движок WebKit, так что результат почти в точности соответствует выводу «Print to PDF», встроенному в Chrome. Судя по вопросам на Stack Overflow, wkhtmltopdf используется для генерации карт, графиков, бухгалтерских отчётов, подарочных сертификатов, и практически любого другого контента, который в конечном счёте должен оказаться распечатанным на бумаге.

Как починить все самому, если баг-репорты игнорируются: отлаживаю wkhtmltopdf под Windows - 1

Мой давний заказчик с помощью wkhtmltopdf генерирует PDF-инвойсы в своём веб-магазине. При печати в «шапке» инвойса должен отображаться чёрно-белый логотип, тогда как на сайте используется цветной. Очевидное решение — подменить изображение в CSS @media print { ... } Но тут обнаружилась проблема: если изображение не используется вне @media print, то оно не загружается и при печати (этот баг можно заметить и в окне Print Preview самого Chrome).Читать полностью »

Последний учебный год, апрель месяц. Студента все чаще и чаще начинают посещать мысли о том, что надо бы заняться дипломной работой. Заняться — в смысле придумать, как быстро состряпать нечто, что будет хотя бы созвучно той теме, которую, вроде как, утверждали с научным руководителем. А, да, надо хотя бы на 80 страниц, еще и соблюсти ГОСТы там всякие… Понятное дело, самому столько связного текста уже не успеть набрать (да еще и могут начать в суть работы вникать, ну его!). Очевидно — надо брать готовую работу, которую уже защитили, работу качественную, проверенную и одобренную. Знакомая всем нам ситуация. Открытым остается единственный вопрос — как сделать так, чтобы работа прошла проверку на заимствования… Поиск в интернете и общение с коллегами по несчастью приводят студента к следующим вариантам решения проблемы:

  • Написать работу самому;
  • Перефразировать текст (дорого и сложно);
  • Обхитрить систему с помощью «технических обходов».

Так Систему не обойти - 1

Давайте посмотрим, какими бывают технические обходы, как мы их отлавливаем и почему их применение — не самая хорошая идея…
Читать полностью »

Месяц с Onyx Boox Note Pro - 1

Хотя устройства с E-ink, позволяющие делать рукописные заметки и рисунки, существуют довольно давно, приемлемая задержка между касанием пера и появлением следа от него была достигнута сравнительно недавно (из известных это Sony DPT-S1/RP1 и reMarkable). Поскольку у меня, начиная с 1990-х, было немало различных устройств — как с перьевым вводом (Palm, Newton MP2000, HP TC1100, Raon Everun, Asus EA800, Boogie Board, так и просто читалок на E-ink (Kindle Paperwhite, PocketBook 740, Good e-Reader 6.8), то есть представление о плюсах и минусах различных решений и сложился некий личный образ «идеального» устройства.

В моём представлении у него должны быть E-Ink дисплей с подсветкой, магниторезонансный дигитайзер с распознаванием силы нажатий (обычно называемый «wacom»), неощутимая при рисовании задержка, 10" (или более) E-Ink экран, достаточный выбор сторонних приложений.
Читать полностью »

Security Week 41: больше уязвимостей в SIM-картах, дешифрование PDF - 1На прошлой неделе получила развитие история про атаки на уязвимый софт в SIM-картах. Обнаруженная ранее активно эксплуатируемая атака SimJacker оказалась не единственной. Исследователи из компании Ginno Security сообщили о похожей проблеме в компоненте Wireless Internet Browser (новость, пост в блоге компании). Хотя уязвимость в WIB сложнее в эксплуатации, чем проблема в S@T Browser, метод похож: присылаем подготовленную SMS, которая без ведома владельца позволяет совершить звонок, отправить сообщение или получить IMEI телефона.

Первый репорт об уязвимости в S@T Browser вообще выглядел довольно странно: о проблеме сообщает единственная компания, потенциальный ущерб оценить сложно, а оценка количества подверженных устройств выглядит преувеличенной: сотни миллионов. Поэтому в исследовании Ginno Security важна даже не сама уязвимость, а подтверждение актуальности проблемы из второго источника. Впрочем, еще один эксперт по безопасности мобильной связи, Карстен Нол, считает, что атаки такого плана слишком сложны для массовой эксплуатации: проще клонировать SIM-карту методами социальной инженерии или воспользоваться уязвимостями протокола SS7, по которому взаимодействуют между собой операторы.
Читать полностью »

Разбираем возможности конвертирования HTML в PDF браузером Google Chrome - 1

Недавно в одном стартапе я решал задачу генерации билетов в формате PDF. На тот момент уже был готов сайт с устоявшимся стеком технологий, поэтому я искал подход, который бы не потребовал использования дополнительных инструментов. В итоге я предложил сперва создавать билеты в формате HTML, а затем конвертировать в PDF с помощью браузера Chrome. Как оказалось, данным способом можно генерировать не только билеты, богато декорированные CSS, но и самые разные отчеты с графиками на JavaScript. В этой статье я расскажу о том, как для этих целей запустить Chrome, дам несколько советов по настройке CSS, а так же обсужу недостатки данного решения.

Читать полностью »

Давненько у нас не было по-настоящему больших ридеров! После ONYX BOOX MAX 2 мы в основном рассказывали об электронных книгах с диагональю экрана до 6 дюймов: для чтения литературы перед сном, конечно, ничего лучше не придумали, но если речь заходит о работе с крупноформатными документами, захочется располагать большими мощностями (и дисплеем). 13 дюймов, пожалуй, будет многовато (проще уж ноутбук на колени поставить), да и заметки на ходу с таким агрегатом не очень удобно добавлять. Здесь 10 дюймов — вполне себе золотая середина, и было бы странно не увидеть девайс с такими параметрами в линейке производителя ONYX BOOX. Он есть, и название у него обнадёживающее: Note Pro.

Обзор ONYX BOOX Note Pro: топовый ридер для работы с PDF - 1
Читать полностью »

Материал, перевод которого мы сегодня публикуем, посвящён созданию динамических PDF-файлов с использованием HTML-кода в качестве шаблона. А именно, речь пойдёт о том, как сформировать простой счёт на оплату неких товаров или услуг, динамические данные, включённые в который, берутся из состояния React-приложения. База React-приложения создана с помощью create-react-app, серверная часть проекта основана на Node.js, при её разработке использован фреймворк Express.

Создание динамических PDF-файлов с использованием React и Node.js - 1

Автор этого материала отмечает, что он подготовил видео, в котором демонстрируется разработка проекта. Если вы решите и посмотреть видео, и прочитать статью, то рекомендуется поступить так. Сначала бегло просмотрите статью, потом включите видео и воссоздайте у себя рассматриваемую там систему. А после этого просто прочитайте статью.
Читать полностью »

Для приготовления преобразования из HTML в PDF нам понадобится сам postgres и его расширение pg_html2pdf. (Я дал ссылки на свой форк postgres, т.к. делал некоторые изменения, которые пока не удалось пропихнуть в оригинальный репозиторий. Можно также воспользоваться готовым образом.)
Читать полностью »

Для приготовления фильтра из HTML в PDF нам понадобится сам nginx и его плагин html2pdf. (Я дал ссылки на свой форк nginx, т.к. делал некоторые изменения, которые пока не удалось пропихнуть в оригинальный репозиторий. Можно также воспользоваться готовым образом.)
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js