Portál AbcLinuxu, 10. května 2025 05:35
Dobrý den,
píši program v pythonu který ukládá určitá data do databáze (sqlite) a následně by měl vytvářet sestavy do pdf s využitím knihovny jagpdf (http://www.jagpdf.org/). Jako grafickou knihovnu používám gtk. Problém je v tom že mi jako sestava vyleze prázdná bílá stránka. Jako příčinu jsem určil knihovnu gtk neboť vytvořením dvou téměř totožných programů (jedná se v podstatě o Hello World z dokumentace) kde jeden obsahuje import knihovny gtk a druhý ne, my v prvém případě vygeneruje pouze prázdnou stránku, v druhém případě vrátí očekávaný výsledek. Nezáleží ani na pořadí importu jednotlivých knihoven.
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import gtk
import jagpdf
doc = jagpdf.create_file("hello.pdf")
doc.page_start(597.6, 848.68)
doc.page().canvas().text(50, 800, "Hello, World!")
doc.page_end()
doc.finalize()
Používám python 2.6.2, jagpdf 1.3.33, a libgtk 2.12.8 na Ubuntu 9.04.
Kdybyste někdo měl jakýkoliv tip který by mě přivedl blíže k řešení byl bych vděčný.
Děkuji
Vas problem se mi nepovedlo zreplikovat. Na mem systemu je v obou pripadech vysledne PDF identicke. Uploadnete nekam to prazdne PDF nebo mi ho poslete na jarda at jagpdf.org.
Níže přikládám vygenerovaný pdf soubor (v tomto případě vygenerované na starším Ubuntu 8.10 s pythonem 2.5.2). ještě jsem to nezkoušel na systému windows - během dne to můžu zkusit.
Každopádně děkuji za Váš čas.
(Jenom poznámka: knihovnu jagpdf jsem instaloval nakopírováním souborů jagpdf.py a _jagpdf.so do adresáře /usr/lib/python<VERZE>/)
nyní jsem to ještě vyzkoušel na systému windows a tam je vše zdá se v pořádku...
Problem je v nastaveni locales - mate pravdepodobne cestinu. PyGtk pri importu zmeni c-runtime locales, coz bohuzel ovlivni i JagPDF a zpusobi generovani invalidnich PDF. Da se tedy rici, ze problem je na strane JagPDF, ktera by se mela chovat konzistentne bez ohledu na nastavene locales. Podstata problemu je popsana zde: http://www.python.org/dev/peps/pep-0331/.
Zkuste vasi aplikaci spustit takto:
$ env LC_ALL=C hello_world.py
popripade s nejakym jinym locale, ktere pro desetinou carku pouziva symbol . <tecka>.
děkuji za informace a částečné řešení (v případě malé testovací aplikace to funguje - u té větší ne -ale zatím jsem to moc nezkoumal) - nicméně pokud to ve windows funguje dobře tak to pro mě bude jen malá komplikace při vývoji.
Jinak je tato knihovna perfektní! Děkuji
OK. Vas dotaz jsem zde objevil vicemene nahodou - pokud narazite v budoucnu na nejaky dalsi problem s JagPDF, doporucuji smerovat pripadne dotazy na http://groups.google.com/group/jagpdf.
mě nějak nedošlo že autor rozumí česky :) a anglicky moc nevládku (tedy přečíst si kousek dokumentace to snad jo.. s pomocí stardicu...) ale něco napsat ...
každopádně díky
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.