Задать вопрос
  • Редактор PDF и AstraLinux, какой использовать?

    Adamos
    @Adamos
    Редактирование PDF - тема тухлая, формат этого не предусматривает.
    Конкретно манипуляции со страницами PDF я в Убунте делаю утилитой pdfjam.
    Банально
    pdfjam "документ.pdf" 'номер страницы' "другой документ.pdf" 'номер страницы' -o "выходной документ.pdf"

    Астра - это перекрашенный Дебиан, пакет pdfjam в ней есть.
    Ответ написан
    2 комментария
  • Как правильно оформить вопрос на QNA.Habr, чтобы получить ответ?

    Adamos
    @Adamos
    1. Сформулировать проблему.
    2. Попробовать решить ее самостоятельно и конкретизировать ту часть, с которой справиться не удалось.
    3. Прочесть правила и соблюдать их.
    Собственно, все.
    Новички чаще всего - нарушают эти три пункта. Вы, например - третий.
    Ответ написан
    Комментировать
  • Безопасно ли загружать docx файлы пользователей на сервер?

    Adamos
    @Adamos
    Уязвимости воздушно-капельным путем не передаются.
    Если документ заражен - это проблема того, кто его откроет уязвимой библиотекой. У себя на компьютере.
    Сервер тут ну вообще ни при чем.
    Ответ написан
  • Бест практис разработки регистрации с подтверждением по email?

    Adamos
    @Adamos
    В сущности, проблема обозначена: человек взялся ваять самопис, не познакомившись с готовыми решениями, которые сто лет как написаны и отлажены. В результате медитирует над оптимальной формой руля велосипеда, следующим шагом перегорит от "все сложно" и забросит проект.
    Решение: берешь ЛЮБУЮ ВООБЩЕ CMS и изучаешь, как такие базовые проблемы решили до тебя. Не изобретая.
    Ответ написан
    6 комментариев
  • Чем можно сравнить две папки по содержимому?

    Adamos
    @Adamos
    Вообще-то find - sort - diff...
    Для не умеющих - есть Meld, например. Хотя тут он, конечно - из пушки по воробьям.
    Ответ написан
    1 комментарий
  • Xprinter 365b в arch linux?

    Adamos
    @Adamos
    У меня на такой балалайке второй год сборщики работают под Убунтой, проблем нет.
    1. Устанавливаем драйвер (принтер не понимает нормальные форматы печати, нужен растеризатор)
    2. Ручками прописываем в PPD нужный размер для маркетплейсов.
    Xprinter XP-365B.ppd
    *PPD-Adobe: "4.3"
    *%
    *% Create By CommUnit 2017/04/05 11:13
    *%
    *FormatVersion: "4.3"
    *FileVersion: "1.0"
    *LanguageVersion: English
    *LanguageEncoding: ISOLatin1
    *PCFileName: "Xprinter XP-365B.ppd"
    *Manufacturer: "Xprinter"
    *Product: "(XP-365B)"
    *ModelName: "Xprinter XP-365B"
    *ShortNickName: "Xprinter XP-365B"
    *NickName: "Xprinter XP-365B"
    *PSVersion: "(3010.000) 550"
    *PSVersion: "(3010.000) 651"
    *PSVersion: "(3010.000) 652"
    *PSVersion: "(3010.000) 653"
    *PSVersion: "(3010.000) 704"
    *PSVersion: "(3010.000) 705"
    *PSVersion: "(3010.000) 800"
    *LanguageLevel: "3"
    *ColorDevice: False
    *DefaultColorSpace: Gray
    *FileSystem: False
    *Throughput: "1"
    *LandscapeOrientation: Plus90
    *TTRasterizer: Type42
    *cupsVersion: 1.2
    *cupsManualCopies: False
    *cupsFilter: "application/vnd.cups-raster 0 rastertobarcodetspl"
    *cupsLanguages: "en"
    
    *TscAttr tscLanguage: TSPL2
    *TscAttr tscUtility: BarCodeUtility
    *TscAttr MaxPaperWidth: 317.48
    
    *MaxMediaWidth: "306.14"
    *MaxMediaHeight: "7920"
    *HWMargins: 0.00 0.00 0.00 0.00
    *CustomPageSize True: "pop pop pop <</PageSize[5 -2 roll]/ImagingBBox null>>setpagedevice"
    *ParamCustomPageSize Width: 1 points 14.17 306.14
    *ParamCustomPageSize Height: 2 points 14.17 7920
    *ParamCustomPageSize WidthOffset: 3 points 0 0
    *ParamCustomPageSize HeightOffset: 4 points 0 0
    *ParamCustomPageSize Orientation: 5 int 0 0
    *RequiresPageRegion All: True
    
    *OpenGroup: General/General
    
    *OpenUI *PageSize/Page Size: PickOne
    *OrderDependency: 10 AnySetup *PageSize
    *DefaultPageSize: w2h1
    *PageSize w2h1/2 x 1 (2.28 in x 1.57 in): "<</PageSize[164 113]/ImagingBBox null>>setpagedevice"
    *CloseUI: *PageSize
    
    *OpenUI *PageRegion/Page Size: PickOne
    *OrderDependency: 10 AnySetup *PageRegion
    *DefaultPageRegion: w2h1
    *PageRegion w2h1/2 x 1 (2.28 in x 1.57 in): "<</PageSize[164 113]/ImagingBBox null>>setpagedevice"
    *CloseUI: *PageRegion
    
    *ImageableArea w2h1/2 x 1 (2.28 in x 1.57 in): "0 0 164 113"
    
    *PaperDimension w2h1/2 x 1 (2.28 in x 1.57 in): "164 113"
    
    *OpenUI *Resolution/Resolution: PickOne
    *OrderDependency: 300 AnySetup *Resolution
    *DefaultResolution: 203dpi
    *Resolution 203dpi/203 dpi x 203 dpi: "<</HWResolution[203 203]/cupsBitsPerColor 1/cupsRowCount 8/cupsRowFeed 0/cupsRowStep 0/cupsColorSpace 3>>setpagedevice"
    *CloseUI: *Resolution
    
    *OpenUI *Collate/Collate: Boolean
    *OrderDependency: 200 AnySetup *Collate
    *DefaultCollate: True
    *Collate True/Yes: "%%"
    *Collate False/No: "%%"
    *CloseUI: *Collate
    
    *CloseGroup: General
    
    *OpenGroup: Media/Media Setting
    
    *OpenUI *MediaMethod/Method: PickOne
    *OrderDependency: 110 AnySetup *MediaMethod
    *DefaultMediaMethod: Direct
    *MediaMethod Normal/Use Currently Printer Setting: "%%"
    *MediaMethod Direct/Direct Thermal: "%%"
    *MediaMethod Transfer/Thermal Transfer: "%%"
    *CloseUI: *MediaMethod
    
    *OpenUI *PaperType/Type: PickOne
    *OrderDependency: 120 AnySetup *PaperType
    *DefaultPaperType: LabelGaps
    *PaperType LabelGaps/Label with Gaps: "%%"
    *PaperType LabelMark/Label with Mark: "%%"
    *PaperType Continue/Continue: "%%"
    *CloseUI: *PaperType
    
    *OpenUI *PostAction/Post-Print Action: PickOne
    *OrderDependency: 130 AnySetup *PostAction
    *DefaultPostAction: TearOff
    *PostAction None/None: "%%"
    *PostAction TearOff/Tear Off: "%%"
    *PostAction PeelOff/Peel Off: "%%"
    *PostAction Cut/Cut: "%%"
    *PostAction PartialCut/Partial Cut: "%%"
    *CloseUI: *PostAction
    
    *OpenUI *Occurrence/Occurrence: PickOne
    *OrderDependency: 140 AnySetup *Occurrence
    *DefaultOccurrence: Every
    *Occurrence Every/After Every Page: "%%"
    *Occurrence Copies/After Identical Copies: "%%"
    *Occurrence Job/After Job: "%%"
    *Occurrence Specified/After Specified interval: "%%"
    *CloseUI: *Occurrence
    
    *CloseGroup: Media
    
    *OpenGroup: Effects/Effects
    
    *OpenUI *MirrorImage/Mirror Image: Boolean
    *OrderDependency: 200 AnySetup *MirrorImage
    *DefaultMirrorImage: False
    *MirrorImage True/Yes: "%%"
    *MirrorImage False/No: "%%"
    *CloseUI: *MirrorImage
    
    *OpenUI *NegativeImage/Negative Image: Boolean
    *OrderDependency: 210 AnySetup *NegativeImage
    *DefaultNegativeImage: False
    *NegativeImage True/Yes: "%%"
    *NegativeImage False/No: "%%"
    *CloseUI: *NegativeImage
    
    *CloseGroup: Effects
    
    *OpenGroup: PrinterOptions/Printer Options
    
    *OpenUI *PrintSpeed/Print Speed: PickOne
    *OrderDependency: 110 AnySetup *PrintSpeed
    *DefaultPrintSpeed: 50
    *PrintSpeed 20/2.00 in/sec: "%%"
    *PrintSpeed 30/3.00 in/sec: "%%"
    *PrintSpeed 40/4.00 in/sec: "%%"
    *PrintSpeed 50/5.00 in/sec: "%%"
    *PrintSpeed 60/6.00 in/sec: "%%"
    *CloseUI: *PrintSpeed
    
    *OpenUI *Darkness/Darkness: PickOne
    *OrderDependency: 120 AnySetup *Darkness
    *DefaultDarkness: 7
    *Darkness 0: "%%"
    *Darkness 1: "%%"
    *Darkness 2: "%%"
    *Darkness 3: "%%"
    *Darkness 4: "%%"
    *Darkness 5: "%%"
    *Darkness 6: "%%"
    *Darkness 7: "%%"
    *Darkness 8: "%%"
    *Darkness 9: "%%"
    *Darkness 10: "%%"
    *Darkness 11: "%%"
    *Darkness 12: "%%"
    *Darkness 13: "%%"
    *Darkness 14: "%%"
    *Darkness 15: "%%"
    *CloseUI: *Darkness
    
    *CloseGroup: PrinterOptions
    
    *OpenGroup: GraphicsFormat/Graphics Format
    
    *OpenUI *DirectBuffer/Direct to Buffer: PickOne
    *OrderDependency: 210 AnySetup *DirectBuffer
    *DefaultDirectBuffer: AUTO
    *DirectBuffer AUTO/Automatic: "%%"
    *CloseUI: *DirectBuffer
    
    *OpenUI *StoredGraphics/Stored Graphics: PickOne
    *OrderDependency: 220 AnySetup *StoredGraphics
    *DefaultStoredGraphics: AUTO
    *StoredGraphics AUTO/Automatic: "%%"
    *CloseUI: *StoredGraphics
    
    *CloseGroup: GraphicsFormat
    
    *OpenGroup: InstallableOptions
    
    *OpenUI *OptionDisplayUnit/Measurement Units: PickOne
    *DefaultOptionDisplayUnit: MM
    *OptionDisplayUnit AUTO/Automatic: "%%"
    *OptionDisplayUnit MM/mm: "%%"
    *OptionDisplayUnit Inch/Inch: "%%"
    *CloseUI: *OptionDisplayUnit
    
    *CloseGroup: InstallableOptions
    
    *% Generic boilerplate PPD stuff as standard PostScript fonts and so on
    
    *DefaultFont: Courier
    *Font AvantGarde-Book: Standard "(001.006S)" Standard ROM
    *Font AvantGarde-BookOblique: Standard "(001.006S)" Standard ROM
    *Font AvantGarde-Demi: Standard "(001.007S)" Standard ROM
    *Font AvantGarde-DemiOblique: Standard "(001.007S)" Standard ROM
    *Font Bookman-Demi: Standard "(001.004S)" Standard ROM
    *Font Bookman-DemiItalic: Standard "(001.004S)" Standard ROM
    *Font Bookman-Light: Standard "(001.004S)" Standard ROM
    *Font Bookman-LightItalic: Standard "(001.004S)" Standard ROM
    *Font Courier: Standard "(002.004S)" Standard ROM
    *Font Courier-Bold: Standard "(002.004S)" Standard ROM
    *Font Courier-BoldOblique: Standard "(002.004S)" Standard ROM
    *Font Courier-Oblique: Standard "(002.004S)" Standard ROM
    *Font Helvetica: Standard "(001.006S)" Standard ROM
    *Font Helvetica-Bold: Standard "(001.007S)" Standard ROM
    *Font Helvetica-BoldOblique: Standard "(001.007S)" Standard ROM
    *Font Helvetica-Narrow: Standard "(001.006S)" Standard ROM
    *Font Helvetica-Narrow-Bold: Standard "(001.007S)" Standard ROM
    *Font Helvetica-Narrow-BoldOblique: Standard "(001.007S)" Standard ROM
    *Font Helvetica-Narrow-Oblique: Standard "(001.006S)" Standard ROM
    *Font Helvetica-Oblique: Standard "(001.006S)" Standard ROM
    *Font NewCenturySchlbk-Bold: Standard "(001.009S)" Standard ROM
    *Font NewCenturySchlbk-BoldItalic: Standard "(001.007S)" Standard ROM
    *Font NewCenturySchlbk-Italic: Standard "(001.006S)" Standard ROM
    *Font NewCenturySchlbk-Roman: Standard "(001.007S)" Standard ROM
    *Font Palatino-Bold: Standard "(001.005S)" Standard ROM
    *Font Palatino-BoldItalic: Standard "(001.005S)" Standard ROM
    *Font Palatino-Italic: Standard "(001.005S)" Standard ROM
    *Font Palatino-Roman: Standard "(001.005S)" Standard ROM
    *Font Symbol: Special "(001.007S)" Special ROM
    *Font Times-Bold: Standard "(001.007S)" Standard ROM
    *Font Times-BoldItalic: Standard "(001.009S)" Standard ROM
    *Font Times-Italic: Standard "(001.007S)" Standard ROM
    *Font Times-Roman: Standard "(001.007S)" Standard ROM
    *Font ZapfChancery-MediumItalic: Standard "(001.007S)" Standard ROM
    *Font ZapfDingbats: Special "(001.004S)" Standard ROM
    
    *%
    *% End of PPD
    *%

    3. Дальше можно, скажем, в настройках принтера еще покопаться и указать формат красиво. Но это уже опционально.
    Ответ написан
    Комментировать
  • Как протестировать софт на Win11?

    Adamos
    @Adamos
    M$ предлагала готовые образы ВМ со свежими виндами, как раз для тестирования.
    Последние полгода пишут, что загрузки недоступны, но на каких-нибудь торрентах такие образы еще вполне могут валяться, типа такого: https://archive.org/details/windows-11-pro_202208
    Ответ написан
    Комментировать
  • Почему вдруг нагружается сервер и потом все сбрасывается?

    Adamos
    @Adamos
    Как паллиатив, можно просто создать своп-файл.
    Именно для того редкого момента, когда память вдруг нештатно выжрана, и БД умирает по ООМ.
    Пусть оно две минуты в неделю потормозит, зато все живы ;)
    Ответ написан
    2 комментария
  • Как в комментарии сделать ссылки на участок кода?

    Adamos
    @Adamos
    /**
     * @link MyClass::myMethod
     */
    
    class MyClass
    {
        static public function myMethod()
    Ответ написан
    1 комментарий
  • Как освободить место на диске облачного сервера Ubuntu 24.04 LTS 64-bit?

    Adamos
    @Adamos
    du -hd1 /var
    Покажет, что жрет место в конкретном каталоге. Потом du -hd1 /var/log и т.д.
    Ответ написан
    Комментировать
  • Использование PDFium через WASM в Node.js и альтернативы для анализа метаданных PDF?

    Adamos
    @Adamos
    Какие данные-то нужны? Не эти?
    $ pdfinfo sample.pdf 
    Producer:        Oracle BI Publisher 12.2.1.4.0
    Custom Metadata: yes
    Metadata Stream: no
    Tagged:          no
    UserProperties:  no
    Suspects:        no
    Form:            none
    JavaScript:      no
    Pages:           3
    Encrypted:       no
    Page size:       595.3 x 841.9 pts (A4)
    Page rot:        0
    File size:       70491 bytes
    Optimized:       no
    PDF version:     1.6
    Ответ написан
    Комментировать
  • Корректный алгоритм изучения языка программирования?

    Adamos
    @Adamos
    1. Найти бесплатный курс Питона.
    2. Пройти его, пользуясь онлайн-песочницей.
    3. Потом уже искать себе IDE и проч., отталкиваясь от изученного и того, что хочется программировать.
    И да,
    0. На время изучения ограничить интернет курсом и песочницей, не бегая на Тостер размазывать сопли на тему "как мне эффективнее учить".
    Ответ написан
    Комментировать
  • Какой использовать стек для написания онлайн сервиса управления производством?

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

    (а если бы вы горели энтузиазмом - вы бы, скорее всего, не задавали на Тостере такие вопросы...)
    Ответ написан
    Комментировать
  • Где можно открыть файл pdf для верстки?

    Adamos
    @Adamos
    Inkscape посмотрите.
    Фильдеперсовую PDF он, конечно, искалечит, но как еще один инструмент - может пригодиться.
    Тем более, что он открыт и бесплатен.
    Ответ написан
    Комментировать
  • Как настроить ассоциацию типа файлов к программе в Astra Linux?

    Adamos
    @Adamos
    MIME можно дополнить расширением.
    Астра - это Дебиан, соответственно, гуглим "debian mime add extension".
    Получаем, что нужно добавить строчку с glob pattern.
    Вот так, например, у меня для своей программы выделяются именно .EPS-файлы (это кусок из скрипта первичной настройки новой рабочей станции):
    cat << EOF > ~/.local/share/mime/packages/application-x-epos.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
        <mime-type type="application/x-epos">
            <comment>EPS file</comment>
            <icon name="application-x-epos"/>
            <glob-deleteall/>
            <glob pattern="*.eps"/>
        </mime-type>
    </mime-info>
    EOF
    update-mime-database ~/.local/share/mime
    Ответ написан
  • Как добавить в pdf документ окно для редактирования?

    Adamos
    @Adamos
    PHP + mPDF, например.
    HTML-форма ввода, текст из нее накладывается на "рыбу" (PDF без текста).
    Полсотни строк кода.
    Ответ написан
  • Как увидеть разницу между файлами локалки и удаленным сервером?

    Adamos
    @Adamos
    Meld - визуальное сравнение папок с гибкими настройками, вполне может быть в репах вашего дистрибутива.
    Ответ написан
  • Начинающий системный администратор. Вопрос по построению сети?

    Adamos
    @Adamos
    Для 1с сейчас не только Win-сервер не требуется, но и Windows в принципе.
    AD - это инструмент управления большими сетями, в малых он создаст больше проблем, чем решит.
    Сервер - это полезно для устранения бардака. Только не Win-сервер, конечно. Файловый, чтобы файло по машинам не валялось. А от шифровальщиков те места, куда пользователям все равно нужно писать, вы не защитите никакими волшебными палочками. Только бэкап (недоступный юзерам из тех самых соображений).
    Ну, и потихоньку отказываться от Винды тоже полезно и перспективно.

    P.S. И как совет начинающему сисадмину - не употреблять в планах слово "ставить", если речь не о бесплатном софте. За все, что поставлено, но не куплено - отвечает, внезапно, именно сисадмин. Вполне реальной уголовкой.
    Ответ написан
  • Можно ли сейчас стать куратором тега?

    Adamos
    @Adamos
    Собственно, если вы уже надро... копили кармы, то предложения о кураторстве должны отображаться тут:
    https://qna.habr.com/my/curator
    Ответ написан
    Комментировать