LINUX.ORG.RU

Форум

Активные теги:

 , , , , , , , , , , , , , ,

pdf с полями ввода из tcl/tk

Форум — Development

Из программы на tcl/tk генерируется отчёт с текстом и картинками, затем экспортируется в pdf через библиотеку pdf4tcl (https://pdf4tcl.sourceforge.net/)

Облом когда понадобилось добавить поля ввода в pdf

pdf4tcl умеет добавлять такие поля (метод addForm), но система координат не совпадает

Хочется чтобы поля ввода были справа от Label1 и Label2

Кто виноват и что делать?

Минимальный тестовый фрагмент

#!/usr/bin/wish 

lappend auto_path [file join lib pdf4tcl094]
package require pdf4tcl

    set height 800
    set width  800

    canvas .canv -width $width -height $height 
    pack   .canv

    button .savePDF -text "save" -command savepdf
    pack .savePDF

	set font1 [font create -family Helvetica -size 10]

  .canv create text 0  0 -text "__________________________________________________________________________________________" -anchor w  -font $font1
  .canv create text 31  32 -text "Label 1 :" -anchor w -tag addform -font $font1
  .canv create text 90 450 -text "Label 2 :" -anchor w -tag addform -font $font1

proc savepdf {} {
    set fname {output.pdf}

    pdf4tcl::new mypdf -paper a4 -margin 15mm -compress 0

    mypdf startPage
    mypdf setFont 10 Helvetica
    mypdf canvas .canv
    foreach item [.canv find withtag addform] {
        set x [lindex [.canv bbox $item] 2]
        set y [lindex [.canv bbox $item] 3]
        puts "debug (x,y): $x,$y"
        mypdf addForm text [expr $x+20] $y 100 20 -init 0
    }
    mypdf write -file $fname
    mypdf destroy        

    exit 0
}

Вот полученный pdf

%PDF-1.4
5 0 obj
<<
/Length 6 0 R
>>
stream
/Helvetica 10 Tf
0 Tr
10 TL
q
1 w
[] 0 d
0 0 0 rg
0 0 0 RG
0 J
0 j
10.433 M
0.706317 0 0 -0.706317 43.226 793.83 cm
-1 -8 m
-1 459 l
721 459 l
721 -8 l
W
n
q
0 0 0 rg
BT
/Helvetica 17 Tf
0 Tr
17 TL
/Helvetica 14.388 Tf
0 Tr
14.388 TL
1 0 0 -1 0 4.079 Tm
(__________________________________________________________________________________________) Tj
ET
Q
q
0 0 0 rg
BT
/Helvetica 17 Tf
0 Tr
17 TL
/Helvetica 14.338 Tf
0 Tr
14.338 TL
1 0 0 -1 31 36.061 Tm
(Label 1 :) Tj
ET
Q
q
0 0 0 rg
BT
/Helvetica 17 Tf
0 Tr
17 TL
/Helvetica 14.338 Tf
0 Tr
14.338 TL
1 0 0 -1 90 454.061 Tm
(Label 2 :) Tj
ET
Q
Q

endstream
endobj

6 0 obj
599
endobj

4 0 obj
<</Type /Page
/Parent 2 0 R
/Resources 3 0 R
/Group <</S /Transparency /CS /DeviceRGB /I false /K false>>
/MediaBox [0 0 595 842]
/Contents [5 0 R]
/Annots [9 0 R
11 0 R]
>>
endobj

7 0 obj
<<
/Type /Font
/Subtype /Type1
/Encoding /WinAnsiEncoding
/Name /Helvetica
/BaseFont /Helvetica
>>
endobj
8 0 obj
<< /BBox [ 0 0 100 20] 
/Resources 3 0 R
/Subtype /Form
/Type /XObject

/Length 54
>>
stream
/Tx BMC BT /Helvetica 10 Tf 0 g 2 1.1 Td (0) Tj ET EMC
endstream
endobj
9 0 obj
<<
  /Subtype /Widget
  /P 4 0 R
  /Rect [149.52 738.48 249.52 758.48]
  /FT /Tx
  /T (textform8)
  /DA (/Helvetica 10 Tf 0 g)
  /Q 0
  /V (0)
  /AP << /N 8 0 R >>
  /F 4
>>

endobj
10 0 obj
<< /BBox [ 0 0 100 20] 
/Resources 3 0 R
/Subtype /Form
/Type /XObject

/Length 54
>>
stream
/Tx BMC BT /Helvetica 10 Tf 0 g 2 1.1 Td (0) Tj ET EMC
endstream
endobj
11 0 obj
<<
  /Subtype /Widget
  /P 4 0 R
  /Rect [208.52 320.48 308.52 340.48]
  /FT /Tx
  /T (textform10)
  /DA (/Helvetica 10 Tf 0 g)
  /Q 0
  /V (0)
  /AP << /N 10 0 R >>
  /F 4
>>

endobj
1 0 obj
<<
/Type /Catalog
/Pages 2 0 R
/AcroForm 12 0 R
>>
endobj

2 0 obj
<<
/Type /Pages
/Count 1
/Kids [4 0 R ]
>>
endobj

3 0 obj
<<
/ProcSet[/PDF /Text /ImageC]
/Font <<
/Helvetica 7 0 R
>>
>>
endobj

12 0 obj
<<
/Fields [9 0 R
11 0 R]
/DR 3 0 R
>>
endobj

xref
0 13
0000000000 65535 f 
0000001720 00000 n 
0000001787 00000 n 
0000001846 00000 n 
0000000686 00000 n 
0000000014 00000 n 
0000000666 00000 n 
0000000876 00000 n 
0000000990 00000 n 
0000001163 00000 n 
0000001353 00000 n 
0000001527 00000 n 
0000001926 00000 n 
trailer
<<
/Size 13
/Root 1 0 R
>>

startxref
1982
%%EOF

 , ,

futurama
()

Rsyslog парсинг CEF логов и занесение в БД

Форум — Admin

Доброго времени суток! Задача в общем смысле стоит следующем - принимать логи в CEF формате и заносить в бд, но ещё до сохранения в БД возникают проблемы. При приёме и сохранении в файл как RemoteLogs стандартным способом -

$template RemoteLogs,«/var/log/remote/%HOSTNAME%/%PROGRAMNAME%.log» . ?RemoteLogs & stop

Rsyslogd видимо применяет встроенный шаблон парсинга и сохраняет вот в таком виде(обрезал с конца)

2025-12-01T15:38:07-05:00 RIO-DZ-16-N1 CEF: 0|R&K|DEZ7000 V2|2.3.4-55|16|Opisanie signatury etc|10|devId=55567 start=1764592626000

То есть он парсит участок «CEF:» видимо как %syslogtag% и вставляет пробел после него. Если эту строку скормить нормализатору как

tail -n 1 ./CEF.log | lognormalizer -e json -r cef2.rb | jq .

где cat cef2.rb

rule=:%date:date-rfc5424% %host:word% %f:cef%%

то выдаёт следующее

{ "originalmsg": "2025-12-01T15:38:07-05:00 RIO-DZ-16-N1 CEF: 0|R&K|DEZ7000 V2|2.3.4-55|16|Opisanie signatury etc|10|devId=55567 start=1764592626000", "unparsed-data": "CEF: 0|R&K|DEZ7000 V2|2.3.4-55|16|Opisanie signatury etc|10|devId=55567 start=1764592626000" }

Если вручную удалить пробел между CEF: и 0 то выдаёт уже нормально

"f": { "DeviceVendor": "R&K", "DeviceProduct": "DEZ7000 V2", "DeviceVersion": "2.3.4-55", "SignatureID": "16", "Name": "Opisanie signatury etc", ...

Пробовал прописывать в ruleset

action(type="mmnormalize" rulebase="cef2.rb") action(type="omfile" file="/var/log/debugcef" template="cefdebug")

но там такая же история - пустые переменные :( Видимо ещё до модуля mmnormalize в каком то input module вставляется этот пробел и весь парсинг CEF идёт на смарку. Проверял в дампе входящего трафика и там между CEF: и 0 пробела нет! Уважаемые гуру rsysloga! Есть ли у кого опыт заставить rsyslog принимать CEF логи корректно? Вручную же через lognormalizer всё раскладывается успешно!

 

Slot
()

Astra Linux 1.7.8.6 очередная MTP проблема

Форум — General

Уже делал тему по MTP и вроде разобрался, вроде все работает, подключается, но вот я взял новый телефон Honor x9b pro 5 и все «работает» по другому. Суть в том, что я на админке подключаю свой смартфон Poco X6 Pro 5g и он отображается в fly-admin-smc > устройства как MTP устойство что-то там.. и при добавлении открывает файловую систему на пк. Захожу на юзера - тоже открывается все нормально. Беру Honor - открывается на админке. Захожу на юзера - не октрывается. Я уже весь рут со всеми боксами понадобавлял в безопасность, чтобы он заработал на юзере (ну очевидно же, что наверное в правах дело), но ничего не помогает. На админке - да, на юзере - нет. Но хз, есть нюанс в fly-admin-smc он не отображается как MTP устройство… там есть похожие графы как в случае с Poco, но конкретно графы mtp нет как и названия телефона. Он как какое-то хранилище отображается. Заходил в режим разработчика выставлял там MTP, но это не помогло. Подскажите в чем может быть нюанс пожалуйста!

 , ,

dontprayforme
()

Я исправился

Форум — Talks

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

Я согласен с комментариями о том, что посты получаются очень похожими.

Поэтому хочу сообщить, что завтра я выложу свой последний скриншот bspwm. На этот раз это будет минималистичная версия. Планируемые изменения (не обещаю, но постараюсь) замена Polybar на Lemonbar и Rofi на Dmenu. В дальнейшем я буду двигаться в сторону большей минималистичности.

После этого я планирую перейти на Devuan с runit в качестве системы инициализации и в итоге на Wayland-композитор Sway.

Так что я осознал ситуацию и больше не буду повторяться.

 

IceFox
()

Выпуск бета драйвера NVIDIA 590

Форум — Linux-hardware

Вышла новая линейка драйверов для видеокарт NVIDIA, пока еще в версии бета.

Примечательно в новой линейке то, что прекратили поддержку видеокарт 900 и 10хх серий.

https://videocardz.com/newz/nvidia-590-linux-drivers-drop-geforce-gtx-900-maxwell-and-gtx-10-pascal-support

 ,

mx__
()

finished-sensor.service - … это последнее сообщение при загрузке.

Форум — General

Привет всем. Как тут картинки прилепить? Хотел узнать что идет после загрузки и прилепить картинку. ]Ok ] finished-sensor.service - … это последнее сообщение при загрузке. Раньше зависала из обновления драйверов нвидео, на драйверах нвидео игры идут а на свободных нет. Может повлияло что загрузил с установочной виндовс 10, попортился загрузчик, но его восстановил по инструкции. Час нормально, могу нажать Е и дописать nouveau.noaccel=1 или nomodeset не помогает. у меня подозрение что это не видеодрайвера.

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

 

viktormaslov
()

Аудиокниги онлайн скачиваем офлайн

Форум — General

Иногда ту или иную аудиокнигу не удается найти в торрентах, а очень хочется залить на гаджет.

Но они есть в онлайн плеерах, например https://zvukbook.com/listen/polnoch-veka-viktor-serzh

или https://akniga-mp3.com/book/180618/

Можно ли выдрать аудио, с тем чтобы в карманный девайс залить?

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

 

Csandriel_x64
()

Звездочёты есть? Нужен прогноз...

Форум — Talks

…о будущем Arduino как платформы. Вискас?

https://dzen.ru/a/aS3X2kKkwhejJhNY?share_to=link

 

tt
()

Lepton — возможность запуска Android игр в Steam

Форум — Games

(5 минут думал про то как правильнее написать заголовок, ну и плевать пусть удаляют)

Valve работает над возможностью запуска android игр в steam. Кодовое название у этого проекта Lepton. Этот слой будет работать по аналогии с proton но в отличие от него он будет запускать игры написанные под android.

https://store.steampowered.com/app/3029110/Lepton/

https://www.windowscentral.com/software-apps/valve-is-working-on-a-lepton-android-compatibility-layer-for-linux

 ,

mx__
()

Маркировка трафика и маршрут его через другой интерфейс

Форум — Admin

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

В общем что я сделал:
Добавил таблицу мангл в нфтаблес

table ip mangle {
    set some_service_ipv4 {
        type ipv4_addr
        flags interval
        elements = { ip-раз, ip-два...ip-сто-пятьсот )
    }
    chain prerouting {
        type filter hook prerouting priority mangle; policy accept;
        ip daddr @some_service_ipv4 meta mark set 0x2
        tcp dport { port-раз, port-два...port-десять } meta mark set 0x2
    }
    chain output {
        type route hook output priority mangle; policy accept;
        ip daddr @some_service_ipv4 meta mark set 0x2
        tcp dport { port-раз, port-два...port-десять } meta mark set 0x2
    }
}

Добавил таблицу маршрутизации для маркированных пакетов

ip route flush table 100
ip route add default dev <interface через который хочу выпустить mangle-пакеты> table 100

Добавил правило для пуска mangle-пакетов через вышесозданную таблицу

ip rule add fwmark 0x2 table 100

И нифига не ходит :(
ЧЯДНТ…?!?

 , ,

Dodik
()

Ext4 vs XFS для DNS-сервера bind9 с большим количеством зон.

Форум — Admin

В связи с импортозамещением, возник вопрос, на что ставить.

Я вот предлагаю ext4. Начальник топит за XFS.
У соседнего управления сервера на XFS со следующими параметрами:

/dev/sda7 on /var/named/chroot/var/named type xfs (rw,relatime,attr2,inode64,logbsize=256k,sunit=512,swidth=512,noquota)

Зон много (сотни). Но ИМХО, их чтение не создаёт серьёзную нагрузку на дисковую в-принципе. Т.к. restart службы происходит крайне редко (месяцы-годы). Обычно rndc reload хватает.
Видел тему, что Гугл переходит на ext4. С тех пор ни на что другое не перешёл?

 , ,

c0unt0
()

Люди плюются от нововведений

Форум — Talks

Автор ЯП zig написал, что уходит с github на другой хостинг. В принципе, он уже понимал, что когда MS перехватила управление, ему было ясно, что дальше будет только хуже.

Триггером для перехода стало агрессивное внедрение ИИ в гитхаб. Якобы, CEO гитхаба заявил «либо примите ИИ, либо проваливайте». Таски CI гитхаба стали работать рандомно, непонятно, как планируясь ИИ. Это создавало такой бардак, что Эндрю не выдержал…

https://ziglang.org/news/migrating-from-github-to-codeberg/

 ,

seiken
()

Автоматические переносы слов по слогам в статьях

Форум — Linux-org-ru

Если тегу html задать lang=«ru», то с помощью CSS можно произвольным контейнерам задавать перенос слов по слогам.

— Благо, русский поддерживается почти всеми бровзерами на 100%.

Можно даже сделать галку, чтобы отключать класс переноса слов для тегов-контейнеров статей, чтобы автор имел контроль.

Мне представляется это хорошей идеей. Какие аргументы «против»??

 , , , ,

Set440
()

Debian 12, проблемы с qt-приложениями - диалоговое окно выбора файла

Форум — Desktop

Debian 12, наблюдаю проблемы с qt-приложениями при вызовое окна выбора файла (сохранение, загрузка), а именно: avidemux, oceanaudio, davinci resolve, telegram

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

Avidemux вообще падает.

Рабочее окружение - Cinnamon.

У кого-нибудь такое было? Как побороть? Подскажите pls.

 , , ,

Windows
()

kubernetes

Форум — General

Есть специалисты кто с ним работает? kubernetes

 

antonio-an
()

Непонятки с zswap

Форум — General

И вот свершилось! 16 гигабайт начало не хватать.

Своп конечно помогает НО… говорят неплохо бы задействовать zswap дабы не убивать ssd почем зря, да и вообще полезно.

Прописываю zswap.enabled=1 в параметры ядра в Граб, как написано на АрчВики, делаю update-grub, перезагружаюсь и …

Короче cat /sys/module/zswap/parameters/enabled показывает N.

dmesg | grep zswap говорит zswap: loaded using pool zstd/zsmalloc

А grep -r . /sys/kernel/debug/zswap выдает

/sys/kernel/debug/zswap/stored_pages:0
/sys/kernel/debug/zswap/pool_total_size:0
/sys/kernel/debug/zswap/written_back_pages:0
/sys/kernel/debug/zswap/decompress_fail:0
/sys/kernel/debug/zswap/reject_compress_poor:0
/sys/kernel/debug/zswap/reject_compress_fail:0
/sys/kernel/debug/zswap/reject_kmemcache_fail:0
/sys/kernel/debug/zswap/reject_alloc_fail:0
/sys/kernel/debug/zswap/reject_reclaim_fail:0
/sys/kernel/debug/zswap/pool_limit_hit:0

В общем судя по всему таки не работает.

ЧЯДНТ?

 ,

Vochatrak-az-ezm
()

Интересно, а в Европе, тоже, так делают?

Форум — Talks

Навеяно этим

Владельцы автомобилей Porsche из России стали жаловаться на нестабильную работу своих транспортных средств. По данным клуба «Porsche Россия», у автомобилей бренда могут возникать ошибки двигателя, а также проблемы с коробкой передач. В некоторых случаях авто не заводятся или глохнут сразу после запуска. Причиной является активное использование в российских городах «глушилок». Но решение проблемы уже нашли умельцы.

Чаще всего проблемы в работе автомобилей Porsche возникают из-за встроенной спутниковой системы Vehicle Tracking System (VTS). Речь идёт о фирменной противоугонной системе автопроизводителя, которая позволяет блокировать авто в экстренных ситуациях, а также отслеживать местоположение транспортного средства в режиме онлайн.

«Ситуация вполне решаемая и, как правило, не требует столь сложного и дорогостоящего вмешательства», — рассказал специалист. В сообщении сказано, что для решения проблемы можно отключить АКБ на 6–10 часов или включить зажигание, снять минусовую клемму с аккумулятора, вставить обратно, а затем провернуть ключ. Если же авто заглушится, то опять активируется защитный режим, поэтому процедуру придётся проделывать снова. Другой вариант решения проблемы заключается в удалении блока VTS, который в настоящее время не актуален на территории России из-за санкций. В специализированных центрах такая процедура стоит около 50 тыс. рублей.

Так-то, подумать, 500 ойро. Копейки по сравнению с тем, сколько можно выручить за угнанный порше.

Противоугонная система, которая взламывается за 500 ойро - куда катится мир? ;)

 , ,

tiinn
()

возможно ли подключиться к uart test poin без пайки?

Форум — Linux-hardware

Доброго времени суток. Сабж

Предыстория. Почитал обзор китайского клона r36s https://habr.com/ru/companies/timeweb/articles/970646/ , заказал, пришло. Даже работает, что удивительно :)

Но возникло желание получить serial консоль, чтобы знакомиться плотнее. Там же линукс. test point’ы для uart на плате есть https://www.reddit.com/r/R36S/comments/1fwwm5e/anyone_tried_tinkering_with_those_uart_serial/ . Но они мелкие (расстояние между 4 контактами примерно 5.5 мм), и в закрытом виде над ними где-то 3…4 мм до крышки. Ну и руки из жопы, да )

И я подумал, что вряд ли в мастерских к телефонам и прочим игрушкам каждый раз припаиваются. Да и выглядят эти test point’ы как контактные площадки. Плюс недавно вылез из криокамеры и узнал, что bios’ы давно не обязательно вытаскивать или выпаивать, для них есть клипсы типа soic

Погуглил. Предположительно, для подключения к test point’ам используют иголки типа pogo pin . Но опять же, как бы из этих иходников собрать готовый инструмент? Т.е. идея в принципе понятна https://www.chipdip.ru/product/5433-adafruit-accessories-pogo-pin-probe-clip-6-8019860088 , но вот каких-то универальных конструкторов (чтобы собрать клипсу под свои размеры и шаг) не нашел. Плохо искал?

В общем, остались такие вопросы:

  1. существуют ли какие-то наборы для сборки pogo clip под свои размеры?
  2. как дальше клипсу подключить к компу? тыкать иголки в макетную плату, а из неё в com адаптер? или поискать какие-то платы, у которых с одной стороны usb, а с другой выводы uart на гребенку?

Пните в нужном направлении :)

 , pogo, , ,

router
()

Как правильно добавить загрузку Windows 10 в загрузчик grub Астра Линукс

Форум — General

Здравствуйте. На компьютере установлены две операционные системы, на разных дисках. На первом стоит Windows 10 а на втором Астра Линукс. Необходимо добавить в grub Астра Линукс загрузочную запись Windows 10. Диск с Windows 10 первый, Western Digital он определяется как sda. Диск с Астра Линукс второй, он определяется как sdb, Seagate. В загрузчике Grub загрузочной строки windows нет, устанавливались они по очереди, отключая в биос загрузку того или иного диска.

Настройку делал по инструкции найденной в сети.

sudo nano /etc/grub.d/40_custom

вставил туда

menuentry «Windows 10» { set root=‘(hd0,1)’ search –no-floppy –fs-uuid –set=root D29CE1979CE1767F ntldr /bootmgr boot chainloader +1 }

где D29CE1979CE1767F идентификатор моего диска с windows? определил командой blkid

Диски определил fdisk -l

Диск первый, в таком случае написано что нужно писать hd0,1

Сохранил изменения и применил команду

sudo update-grub

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

Для пояснения ситуации прикладываю ссылки на фото всех действий.

https://ibb.co/7JhqGBCP

https://ibb.co/q3263HjY

https://ibb.co/dsD04G4k

https://ibb.co/3yd3R4tF

https://ibb.co/tTttc4fh

 

sokolov2025
()

А LOR оказывается в белых списках

Форум — Talks

Сегодня обратил внимание. По ночам у нас постоянно сирена и желтый/красный уровень опасности. Так что по утрам интернет часов до 10-11 заглушен. Но LOR без проблем работает и на TELE2 и на Мегафоне. Opennet не работает. Кто это так подсуетился?

 , ,

AleksK
()

RSS подписка на новые темы