Udv!
Szeretnek egy tablazatot generalni, aminek van n oszlopa (5- 6), es sok sora. Az adatok mondjuk, hogy db- bol jonnek, es ezeket szeretnem tulajdonkeppen betolteni. Eddig ugye talan egy cvs is megfelelne, amit egy spreadsheet reader meg tud rendesen jeleniteni, de a trukk ott van, hogy bizonyos cellakat szinezni is kellene.
Erre keresek megoldast. Ez lehet pdf vagy xls, de akar mas alternativ megoldast is el tudok kepzelni (mivel sok sor lesz, image formatum nem jo).
Minden otlet erdekel.
Koszi a valaszokat.
- 2068 megtekintés
Hozzászólások
HTML?
Amúgy azt csv-nek hívják.
- A hozzászóláshoz be kell jelentkezni
Tudom, elirtam.
Html sajnos ebben az esetben nem jo. Html az alap, ahol meg van oldva, de szukseges egy masik verzio, ami sallangok nelkul tartalmazza csak az adatokat.
- A hozzászóláshoz be kell jelentkezni
Html,
Csinálhatsz html dokumentumokhoz egy print.css-t, amiben css-ben leszeded a "sallangokat" és nyomtatható lesz a dolog (ha nyomtatni kéne).
Ezen kívül van egy 1000 éves php library, ha jól emlékszem "SpreadsheetExcelWriter" a neve és PEAR-ból elérhető. Ez meg tudja oldani, de BAROMI régi.
- A hozzászóláshoz be kell jelentkezni
xml+xsl?
xml -> csak a tiszta adatoknak
xsl -> szines html-t konvertalhatsz az xml-bol (nem xls, hanem xsl)
- A hozzászóláshoz be kell jelentkezni
Ha a Python nem akadály, akkor a ReportLab-bal nagyon formás pdf-eket lehet készíteni.
Bár én most a következő karakterek megjelenítésére szeretném rávenni: űŰ őŐ
A csicsázás: fontok beállítása, méretezés, színezés, elválasztóvonalak és "díszítősorok" beillesztése is megoldott. Csak az a fránya két magyar betű!
Az sem vigasztal, hogy némi keresgélés után megállapítottam, hogy a szlovákok és a lengyelek is találtak pár karaktert az ISO-8859-2 kódolásban ami nekik sem megy.
--
Tertilla; Tisztelem a botladozó embert és nem rokonszenvezem a tökéletessel! Hagyd már abba!; Dropbox
- A hozzászóláshoz be kell jelentkezni
Jelen esetben pont a python a legjobb, legalabb nem kell kulso binarist hivni. Megnezem. Koszi.
- A hozzászóláshoz be kell jelentkezni
Ez esetben néhány direkt link, hogy ne keresd előröl:
http://www.reportlab.com/ftp/
http://www.reportlab.com/docs/
http://www.reportlab.com/examples/rml/
Ha rájössz, hogy hogy lehet őŐ űŰ karaktereket helyesen megjeleníteni vele, akkor megoszthatnád velem is.
Nekem csak ezekkel megy: õÕ ûÛ
Amúgy elég komoly, még bezier görbékkel is lehet benne operálni.
--
Tertilla; Tisztelem a botladozó embert és nem rokonszenvezem a tökéletessel! Hagyd már abba!; Dropbox
- A hozzászóláshoz be kell jelentkezni
Ha ezt egy oraja olvasom :- ).
Nincs veletlen egy nagyon egyszeru peldad egy 2x2- es tabla kirakasara mindenfele sallang nelkul, vagy valami hasonlo?
Amugy itt a doksiban a 3- as fejezet (Fonts and Encodings) nem segit a karakterproblemadon?
- A hozzászóláshoz be kell jelentkezni
A táblázatot programból kell előállítani. A ReportLab csak egy rajzlapot (festő vászon, azaz canvas) ad, amire neked kell rajzolni, a ReportLab nyújtotta eszközökkel.
Itt a példa:
#!/usr/bin/env python
#! -*- coding: utf-8 -*-
from reportlab.pdfgen import canvas
def tablicsku(c):
data = [
['Sorsz:', 'Kedvenc fílmem'],
['1', 'Star Wars'],
['2', 'Back to the Future'],
['3', 'Forrest Gump'],
['4', 'Fight Club'],
['5', 'The Matrix'],
['6', 'Terminator'],
['7', 'Alien'],
['8', 'Die Hard'],
['9', 'Blade Runner'],
['10', 'Star Trek'],
['11', 'V for Vendetta'],
['12', 'Twelve Monkeys'],
['13', 'The Truman Show']
]
sor=832 # a lap felső széle. A lap alja a 0!
for egysor in data:
p1, p2 = egysor
c.drawString(0, sor, p1)
c.drawString(45, sor, p2)
sor -=20
c = canvas.Canvas(".\\tablazat.pdf")
tablicsku(c)
c.showPage()
c.save()
A színezés, sorok rajzolása a te dolgod.
--
Tertilla; Tisztelem a botladozó embert és nem rokonszenvezem a tökéletessel! Hagyd már abba!; Dropbox
- A hozzászóláshoz be kell jelentkezni
Koszi, kozben megoldottam maskeppen. Igazabol most olyan gondom van, hogy egy tablat akarok kirakni az oldalra, de ennek a szelessege generalastol fuggoen valtozik. Most A4- et hasznalok landscape modban kisebb fontokkal, igy meg eppen kifer, de ezt nem lehetne valahogy ugy beallitani, hogy akkorara vegye a lapmeretet, amekkora a legszelesebb sor? Nem nagyon talaltam ilyen opciot.
- A hozzászóláshoz be kell jelentkezni
Szerintem ilyet készen nem fogsz találni. Valószínűleg ezt már neked kell leprogramozni.
- A hozzászóláshoz be kell jelentkezni
Próbálj találni vagy írni egy függvényt ami megadja mondjuk mm-ben az adott sor hosszát, az adott betűmérettel! Fix szélességű karakterekkel könnyebb lenne, akkor elég lenne azt megállapítani, hogy hány karakter fér el egy sorban.
--
Tertilla; Tisztelem a botladozó embert és nem rokonszenvezem a tökéletessel! Hagyd már abba!; Dropbox
- A hozzászóláshoz be kell jelentkezni
Az lesz majd hetfon. Koszi.
- A hozzászóláshoz be kell jelentkezni
Erre valók a Platypus Table dolgok. Egy rövid tutorial.
- A hozzászóláshoz be kell jelentkezni
Amit a 3-as fejezetben írnak, aszerint a latin-1-ről utf-8-ra konvertálva adja a kalapos hullámos ékezeteket. Ha latin2-ről konvertálom (ami a tényleges lenne) akkor egy fekete kocka jelenik meg a pdf-ben a betű helyén.
Ugyanez a helyzet (fekete kockák), akkor is ha eleve utf-8-as karaktersorozatot adok meg mondjuk a drawString sztring paraméterének.
--
Tertilla; Tisztelem a botladozó embert és nem rokonszenvezem a tökéletessel! Hagyd már abba!; Dropbox
- A hozzászóláshoz be kell jelentkezni
Sajnos ebben nem tudok segiteni, csak angol karaktereim vannak :- ).
- A hozzászóláshoz be kell jelentkezni
Esetleg ezt próbáld meg:
- A hozzászóláshoz be kell jelentkezni
Arra gondolsz, hogy a "gyárilag" szállított fontokban van a hiba?
Ha ezt ilyen egyszerű helyettesíteni, akkor megnézem hogy reagál rá.
Köszönöm szépen.
--
Tertilla; Tisztelem a botladozó embert és nem rokonszenvezem a tökéletessel! Hagyd már abba!; Dropbox
- A hozzászóláshoz be kell jelentkezni
A 3. fejezetet, a fontokról szóló részt érdemes átolvasni:
http://www.reportlab.com/docs/reportlab-userguide.pdf
szerk.: most látom fentebb, hogy ezen már túl vagy :)
- A hozzászóláshoz be kell jelentkezni
Igazából felületes voltam és elakadtam a kódolásnál. Szóval annyira a kódolásokra koncentráltam, hogy a fejezet fő részét a Fontok használatát nem is néztem.
Fontokat cserélgetni most készülök. :-)
--
Tertilla; Tisztelem a botladozó embert és nem rokonszenvezem a tökéletessel! Hagyd már abba!; Dropbox
- A hozzászóláshoz be kell jelentkezni
Szerintem a reportlab-ra épülő xhtml2pdf (alias pisa) nevű libbel sokkal jobban jársz. Ennek segítségével: Kiolvasod az adatokat az adatbázisból > Generálsz egy HTML oldalt (itt beleteszed egy table-be az adatokat), majd azt mondod az xhtml2pdf-nek, hogy csinálj ebből pdf-et.
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
[Feliratkozás]
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
Címszavak: Perl, DBI, Spreadsheet::WriteExcel.
Kész példa:
http://www.linuxjournal.com/content/generating-native-excel-files-perl
Még színezés is van benne. A S::WE dokumentációjában benne van, hogy a háttérszínt (vagy betűtípust vagy szegélyt vagy cellaméretet stb.) hogy lehet állítani.
PDF-et is lehetne gyártatni Perlből, akár közvetlenül (PDF::Create pl.), bár úgy bonyolultabb lenne, akár TeX-en keresztül, az elég egyszerű, csak kell hozzá a TeX környezet.
- A hozzászóláshoz be kell jelentkezni
Ez a "bizonyos cellakat szinezni is kellene." lehetne részletesebb is.
Például egyszerűbb feltételek esetén a LibreOffice Calc-ban:
Kijelölöd azt a tartományt, amiben a színezendő cellák vannak. Utána Formátum/Feltételes formázás… menüpontban beállítod a feltétel(eke)t, és az Új stílus gombbal kiszínezed azt amit akarsz.
- A hozzászóláshoz be kell jelentkezni
Kérdés milyen programozási nyelvet használsz, kivel akarsz kompatibilis lenni, stb...
Mi Javaban ezzel generálunk excel fájlokat: http://poi.apache.org
Üdv: Tamaas
- A hozzászóláshoz be kell jelentkezni