Po více než 7 měsících vývoje od vydání verze 6.8 byla vydána nová verze 6.9 svobodného open source redakčního systému WordPress. Kódové jméno Gene bylo vybráno na počest amerického jazzového klavíristy Gene Harrise (Ray Brown Trio - Summertime).
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za listopad (YouTube).
Google Chrome 143 byl prohlášen za stabilní. Nejnovější stabilní verze 143.0.7499.40 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 13 bezpečnostních chyb.
Společnost Valve aktualizovala přehled o hardwarovém a softwarovém vybavení uživatelů služby Steam. Podíl uživatelů Linuxu dosáhl 3,2 %. Nejčastěji používané linuxové distribuce jsou Arch Linux, Linux Mint a Ubuntu. Při výběru jenom Linuxu vede SteamOS Holo s 26,42 %. Procesor AMD používá 66,72 % hráčů na Linuxu.
Canonical oznámil (YouTube), že nově nabízí svou podporu Ubuntu Pro také pro instance Ubuntu na WSL (Windows Subsystem for Linux).
Samsung představil svůj nejnovější chytrý telefon Galaxy Z TriFold (YouTube). Skládačka se nerozkládá jednou, ale hned dvakrát, a nabízí displej s úhlopříčkou 10 palců. V České republice nebude tento model dostupný.
Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 25.11.1. Přehled novinek v Changelogu.
Byla vydána nová verze 15.0 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.
UBports, nadace a komunita kolem Ubuntu pro telefony a tablety Ubuntu Touch, vydala Ubuntu Touch 24.04 1.1 a 20.04 OTA-11. Vedle oprav chyb a drobných vylepšení je řešen také středně závažný bezpečnostní problém.
I letos vyšla řada ajťáckých adventních kalendářů: Advent of Code 2025, Perl Advent Calendar 2025, CSS Advent Calendar 2025, Advent of A11Y 2025, Advent of AI Security 2025, Advent of Agents (in Google) 2025, Advent of Svelte 2025, …
Řešení dotazu:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
from cx_Freeze import setup, Executable
# Dependencies are automatically detected, but it might need fine tuning.
#build_exe_options = {"packages": ["os"], "excludes": ["tkinter"]}
includefiles = [("src/pdftk.exe", "pdftk.exe"), ("src/libiconv2.dll", "libiconv2.dll")]
build_exe_options = {"packages": ["os"], "excludes": [""], "include_files": includefiles}
#build_exe_options = {}
# GUI applications require a different base on Windows (the default is for a
# console application).
base = None
#if sys.platform == "win32":
# base = "Win32GUI"
setup( name = "pdftkexample",
version = "1.0",
description = "PdfTk example",
options = {"build_exe": build_exe_options},
executables = [Executable("src/pdftkexample.py", base=base)])
Předpokládaná struktura adresáře je například:
C:\MojeAplikace\src - tam bude pdftkexample.py a pdftk.exe+libiconv2.dll
C:\MojeAplikace\setup-cxfreeze.py kde bude to co je napsané nahoře.
Po zmrazení bude pdftk.exe i s knihovnou libiconv2.dll přibaleno k výslednému exe progámku. Ovšem, aby ho bylo možno volat, je potřeba zjistit kde je umístěn, to se ve vlastním skriptu, který bude volat pdftk.exe udělá takto:
import sys
import os
import os.path
def getModulePath():
if (hasattr(sys, "frozen")):
return os.path.dirname(sys.executable)
return os.path.dirname(__file__)
def getPdftkExe(exe_name="pdftk.exe"):
path = os.path.join(getModulePath(), exe_name)
return path
if __name__ == "__main__":
exe = getPdftkExe()
print exe
V proměné exe je celá cesta k pdftk.exe, která se dá použít pro volání pomocí popen() atd.
pdftk_command='pdftk form.pdf fill_form form.fdf output form_from_script.pdf' os.system(pdftk_command)Zmrazeny exe skript prislusne pdf soubory nevytvari, cili stale jeste nevola pdftk. Tim se dostavam k tvemu druhemu skriptu, ktery vyhleda cestu k pdftk a vrati ji v promenne exe. Kdyz je pdftk ve stejne slozce se skriptem ktery ho vola, nemelo by stacit volat s cestou .\ , tedy takto?:
pdftk_command='.\pdftk form.pdf fill_form form.fdf output form_from_script.pdf' os.system(pdftk_command)
import logging
from decimal import *
import os
import glob
import sys
import os.path
def getModulePath():
if (hasattr(sys, "frozen")):
return os.path.dirname(sys.executable)
return os.path.dirname(__file__)
def getPdftkExe(exe_name="pdftk.exe"):
path = os.path.join(getModulePath(), exe_name)
return path
if __name__ == "__main__":
cesta_k_pdftk_exe = getPdftkExe()
#print(cesta k_pdftk_exe)
pdftk_command=cesta_k_pdftk_exe+' form.pdf fill_form form.fdf output form_from_script.pdf'
os.system(pdftk_command)
Tiskni
Sdílej: