Podrška #18540
Zatvorenooeclipse, jodreports - java openoffice reports
Dodano od Ernad Husremović prije oko 15 godina. Izmjenjeno prije oko 15 godina.
100%
Fajlovi
jodreports-2.1rc.tar.gz (1,61 MB) jodreports-2.1rc.tar.gz | Ernad Husremović, 11.10.2009 13:35 | ||
ooeclipse_git.tar.gz (3,69 MB) ooeclipse_git.tar.gz | Ernad Husremović, 11.10.2009 13:46 | ||
glass.xml (291 Bajta) glass.xml | podaci u xml fajlu | Saša Vranić, 20.10.2009 11:00 | |
naljepnica_template.odt (29,4 KB) naljepnica_template.odt | template odt naljepnice | Saša Vranić, 20.10.2009 11:00 | |
naljepnica_generated.odt (27,5 KB) naljepnica_generated.odt | generisana naljepnica na osnovu template-a | Saša Vranić, 20.10.2009 11:00 | |
table_data.xml (1,12 KB) table_data.xml | xml sa podacima | Saša Vranić, 20.10.2009 11:20 | |
table_template.odt (8,05 KB) table_template.odt | template odt za tabelu | Saša Vranić, 20.10.2009 11:20 | |
table_generated.odt (7,47 KB) table_generated.odt | generisani odt tabele | Saša Vranić, 20.10.2009 11:20 | |
table_data_2.xml (57,3 KB) table_data_2.xml | Saša Vranić, 20.10.2009 11:54 | ||
table_2_generated.odt (8,1 KB) table_2_generated.odt | Saša Vranić, 20.10.2009 11:54 | ||
invoice_data.xml (629 Bajta) invoice_data.xml | podaci računa u xml fajlu | Saša Vranić, 20.10.2009 12:33 | |
invoice_template.odt (22,2 KB) invoice_template.odt | faktura template odt | Saša Vranić, 20.10.2009 12:33 | |
invoice_generated.odt (21,6 KB) invoice_generated.odt | generisana faktura odt | Saša Vranić, 20.10.2009 12:33 | |
label-generated.odt (8,29 KB) label-generated.odt | labela generisana | Saša Vranić, 20.10.2009 14:39 | |
jodconverter-2.2.2.zip (2,03 MB) jodconverter-2.2.2.zip | jodconverter | Saša Vranić, 20.10.2009 19:31 | |
jodreports-2.1rc.zip (1,87 MB) jodreports-2.1rc.zip | jodreports | Saša Vranić, 20.10.2009 19:32 | |
inovice_generated.pdf (70,5 KB) inovice_generated.pdf | pdf generisan putem jodconverter-a | Saša Vranić, 21.10.2009 10:40 |
Povezani tiketi 4 (0 otvoreno — 4 zatvorenih)
Izmjenjeno od Ernad Husremović prije oko 15 godina
- Naslov promijenjeno iz oooeclipse u ooeclipse
Izmjenjeno od Ernad Husremović prije oko 15 godina
- JODConverter, Java OpenDocument Converter, is a Java library to convert documents between different office formats using OpenOffice.org
- JODReports, Java OpenDocument Reports, is a Java library to generate dynamic documents by merging templates with data
- PyODConverter, Python OpenDocument Converter, is a simple Python script to convert documents between different office formats using OpenOffice.org
Izmjenjeno od Ernad Husremović prije oko 15 godina
- Naslov promijenjeno iz ooeclipse u ooeclipse, jodreports - java openoffice reports
JODReports¶
JODReports, Java OpenDocument Reports, is a solution for creating office documents and reports in OpenDocument Text format from templates that can be visually composed using the OpenOffice.org Writer word processor. These documents can then optionally be converted to other formats such as PDF, Word and RTF with JODConverter.
Main Features
- Templates are OpenDocument Text (ODT) files
- They can be created using the OpenOffice.org Writer word processor, which is open source and can be downloaded for free from OpenOffice.org
- The OpenDocument format is now an OASIS standard and is quickly becoming increasingly popular
- OpenOffice.org Writer can import documents from most other office suites, so it is possible e.g. to import a Microsoft Word document as a starting point for a template
- Powerful templating instructions, including
- Dynamic field replacement
- Conditionally displaying a document portion based on a test expression
- Repeating a document portion (e.g. a table row) for each item in a collection
- Replacing an embedded image
- And more... JOOReports is based on the popular FreeMarker templating language
- Data to be merged into the template can be supplied as
- A simple Map of variables
- A Java object model
- XML
- Document are produced in ODT format, and can then be converted to PDF, Word or RTF with JODConverter
- Processing instructions can be inserted in a visual, non-obstrusive way without cluttering the template layout
- Fields can be specified using Writer input fields
- More complex instructions can be inserted as scripts hidden into the document
- Special support is provided for web applications, including integration with the Spring MVC framework
- Licensed under the terms of the LGPL, which basically means it is free to use in both open source and commercial projects
The Concept
So what makes JODReports different from other projects addressing the same category of problems?
The idea behind this project came to me in 2003 after I worked on a couple of invoicing/reporting projects. I was surprised by how much time I had to spend composing and adjusting the layout of templates, rather than writing Java code or doing business analysys.
Why can't templates be regular word processor documents? I thought. That way, I could ask my clients (internal or external) to create a sample document exactly how they want it, send it to me and all I would have to is to add a few processing instructions.
So the goals for this project were:- Template layout can be composed by non-programmers using a word processor
- Simple templates can be composed and modified entirely by non-programmers
- More complex templates need the programmer just to insert processing instructions into the supplied template layout
OpenOffice.org documents immediately seemed the obvious choice since they are an open XML format.
Izmjenjeno od Ernad Husremović prije oko 15 godina
- Fajl jodreports-2.1rc.tar.gz jodreports-2.1rc.tar.gz dodano
Izmjenjeno od Ernad Husremović prije oko 15 godina
- Fajl ooeclipse_git.tar.gz ooeclipse_git.tar.gz dodano
Izmjenjeno od Ernad Husremović prije oko 15 godina
jodreports ulazni podaci¶
vsasa kaže da jodreports može pristupati običnim java varijabla, xml fajlu onda, ako u clipperu generišemo cvs fajl, trebamo neku java library da učitamo cvs fajl
Evo jedne LGPL biblioteke:
Izmjenjeno od Saša Vranić prije oko 15 godina
postavio jodreports na sesiju da vidim kako to radi uopšte
C:\jodreports-2.1rc\lib>java -jar jodreports-2.1-RC.jar
USAGE: net.sf.jooreports.tools.CreateDocument <template-document> <data-file> <output-document>
a ha... i sada imamo mogućnost da koristimo ovaj cmdline tool ili da integrišemo ovo u naš library u samom kod-u, ali mi ne koristimo javu pa bi trebali onda recimo to nekako preko ruby-ja izvesti itd...
Izmjenjeno od Saša Vranić prije oko 15 godina
evo nekih testova u test-classes direktoriju
13.09.2009 16:15 7.321 number-template.odt 13.09.2009 16:15 1.149 order-data.xml 13.09.2009 16:15 10.215 order-with-images-resize-template.odt 13.09.2009 16:15 10.065 order-with-images-template-2.odt 13.09.2009 16:15 10.022 order-with-images-template.odt 13.09.2009 16:15 174 red.png 13.09.2009 16:15 8.300 textinput-directive-template.odt 13.09.2009 16:15 8.274 textinput-directives-oneline-template.odt 13.09.2009 16:15 8.914 textinput-directives-special-chars-template.odt 13.09.2009 16:15 8.464 textinput-directives-splitline-template.odt 13.09.2009 16:15 8.932 textinput-directives-switch-template.odt 13.09.2009 16:15 7.791 textinput-variable-template.odt 13.09.2009 16:15 7.458 visual-fields-template.odt 13.09.2009 16:15 8.065 visual-repeat-table-row-template-2.odt 13.09.2009 16:15 8.349 visual-repeat-table-row-template.odt 13.09.2009 16:15 7.442 visual-script-setting-template-2.odt 13.09.2009 16:15 7.740 visual-script-setting-template.odt 13.09.2009 16:15 8.393 visual-script-special-chars-template.odt
da vidim hoće li ovo uopšte raditi
Izmjenjeno od Saša Vranić prije oko 15 godina
testirao
C:\jodreports-2.1rc\test-classes>java -jar ..\lib\jodreports-2.1-RC.jar order-with-images-resize-template.odt order-data.xml test.odt
dobio test.odt ali u njemu ništa !!!
Nešto sam propustio ?
Izmjenjeno od Ernad Husremović prije oko 15 godina
Saša Vranić je napisao/la:
testirao
C:jodreports-2.1rc est-classes>java -jar ..libjodreports-2.1-RC.jar order-with-images-resize-template.odt order-data.xml test.odt
dobio test.odt ali u njemu ništa !!!
Nešto sam propustio ?
prema sintaksi koju si gore naveo treba ovako:
java -jar ../libjodreports-2.1-RC.jar net.sf.jooreports.tools.CreateDocument order-with-images-resize-template.odt order-data.xml test.odt
Izmjenjeno od Saša Vranić prije oko 15 godina
ovaj je proradio
C:\jodreports-2.1rc\test-classes>java -jar ..\lib\jodreports-2.1-RC.jar visual-repeat-row-template.odt order-data.xml test.odt
dobio sam unutar odt-a
Item: Ubuntu 6.06 Item: MySQL 5.0 Item: OpenOffice.org 2.0 Item: The GIMP 2.2
a ovo je template
Item: ${line.item.description}
Izmjenjeno od Saša Vranić prije oko 15 godina
order-data.xml:
<order id="872"> − <line> − <item> <description>Ubuntu 6.06</description> − <!-- compared to Microsoft Windows XP Professional SP2 --> <unitSavings>279.99</unitSavings> </item> <quantity>5</quantity> <lineSavings>1,399.95</lineSavings> </line> − <line> − <item> <description>MySQL 5.0</description> − <!-- compared to Microsoft SQL Server Standard Edition 2005 (1 CPU) --> <unitSavings>5,399.11</unitSavings> </item> <quantity>1</quantity> <lineSavings>5,399.11</lineSavings> </line> − <line> − <item> <description>OpenOffice.org 2.0</description> − <!-- compared to Microsoft Office Professional Edition 2003 --> <unitSavings>379.99</unitSavings> </item> <quantity>4</quantity> <lineSavings>1,519.96</lineSavings> </line> − <line> − <item> <description>The GIMP 2.2</description> <!-- compared to Adobe Photoshop CS2 --> <unitSavings>589.99</unitSavings> </item> <quantity>2</quantity> <lineSavings>1,179.98</lineSavings> </line> <totalSavings>9,499.00</totalSavings> </order>
evo sada sam u template-u stavio ovako:
Item: ${line.item.description} quantity: ${line.quantity}
i u test.odt dobio
Item: Ubuntu 6.06 quantity: 5 Item: MySQL 5.0 quantity: 1 Item: OpenOffice.org 2.0 quantity: 4 Item: The GIMP 2.2 quantity: 2
Izmjenjeno od Saša Vranić prije oko 15 godina
pokušao sada sljedeće
napravio svoj xml
<order id="1"> − <line> − <customer> <name>Test customer</name> <adresa>Test adresa</adresa> </customer> − <article>TT01TT
<descr>Artikl TT01TT</descr>
<height>1200</height>
<width>520</width>
</article>
</line>
</order>
i napravio svoj template fajl
Kupac: ${line.customer.name} Adresa: ${line.customer.adresa} Artikal: Naziv: ${line.article.descr} - (code) = ${line.article.code} Dimenzije: ${line.article.width} X ${line.article.height}
i kada pozovem dobijem grešku
2009.10.19 15:44:11 freemarker.log.JDK14LoggerFactory$JDK14Logger error SEVERE: Error on line 2, column 17 in content.xml Expecting a string, date or number here, Expression any is instead a freemarker. ext.dom.NodeListModel The problematic instruction: ---------- ==> ${line.customer.name} escaped ${line.customer.name?xml?replace(" ","<text:line-break />")} [on line 4, column 3166 in content.xml] ---------- Java backtrace for programmers: ---------- freemarker.core.NonStringException: Error on line 2, column 17 in content.xml Expecting a string, date or number here, Expression any is instead a freemarker. ext.dom.NodeListModel at freemarker.core.Expression.getStringValue(Expression.java:126) at freemarker.core.Expression.getStringValue(Expression.java:93) at freemarker.core.StringBuiltins$StringBuiltIn._getAsTemplateModel(Stri ngBuiltins.java:71) at freemarker.core.Expression.getAsTemplateModel(Expression.java:89) at freemarker.core.RegexBuiltins$replace_reBI._getAsTemplateModel(RegexB uiltins.java:145) at freemarker.core.Expression.getAsTemplateModel(Expression.java:89) at freemarker.core.MethodCall._getAsTemplateModel(MethodCall.java:86) at freemarker.core.Expression.getAsTemplateModel(Expression.java:89) at freemarker.core.Expression.getStringValue(Expression.java:93) at freemarker.core.DollarVariable.accept(DollarVariable.java:76) at freemarker.core.Environment.visit(Environment.java:209) at freemarker.core.MixedContent.accept(MixedContent.java:92) at freemarker.core.Environment.visit(Environment.java:209) at freemarker.core.EscapeBlock.accept(EscapeBlock.java:84) at freemarker.core.Environment.visit(Environment.java:209) at freemarker.core.Environment.process(Environment.java:189) at net.sf.jooreports.templates.TemplateAndModelMerger.process(TemplateAn dModelMerger.java:68) at net.sf.jooreports.templates.AbstractDocumentTemplate.createDocument(A bstractDocumentTemplate.java:73) at net.sf.jooreports.tools.CreateDocument.main(CreateDocument.java:61) Exception in thread "main" net.sf.jooreports.templates.DocumentTemplateException : freemarker.core.NonStringException: Error on line 2, column 17 in content.xml Expecting a string, date or number here, Expression any is instead a freemarker. ext.dom.NodeListModel at net.sf.jooreports.templates.TemplateAndModelMerger.process(TemplateAn dModelMerger.java:70) at net.sf.jooreports.templates.AbstractDocumentTemplate.createDocument(A bstractDocumentTemplate.java:73) at net.sf.jooreports.tools.CreateDocument.main(CreateDocument.java:61) Caused by: freemarker.core.NonStringException: Error on line 2, column 17 in con tent.xml Expecting a string, date or number here, Expression any is instead a freemarker. ext.dom.NodeListModel at freemarker.core.Expression.getStringValue(Expression.java:126) at freemarker.core.Expression.getStringValue(Expression.java:93) at freemarker.core.StringBuiltins$StringBuiltIn._getAsTemplateModel(Stri ngBuiltins.java:71) at freemarker.core.Expression.getAsTemplateModel(Expression.java:89) at freemarker.core.RegexBuiltins$replace_reBI._getAsTemplateModel(RegexB uiltins.java:145) at freemarker.core.Expression.getAsTemplateModel(Expression.java:89) at freemarker.core.MethodCall._getAsTemplateModel(MethodCall.java:86) at freemarker.core.Expression.getAsTemplateModel(Expression.java:89) at freemarker.core.Expression.getStringValue(Expression.java:93) at freemarker.core.DollarVariable.accept(DollarVariable.java:76) at freemarker.core.Environment.visit(Environment.java:209) at freemarker.core.MixedContent.accept(MixedContent.java:92) at freemarker.core.Environment.visit(Environment.java:209) at freemarker.core.EscapeBlock.accept(EscapeBlock.java:84) at freemarker.core.Environment.visit(Environment.java:209) at freemarker.core.Environment.process(Environment.java:189) at net.sf.jooreports.templates.TemplateAndModelMerger.process(TemplateAn dModelMerger.java:68) ... 2 more
Izmjenjeno od Saša Vranić prije oko 15 godina
Koliko sam skontao ova cmdline varijanta ima za mogućnost da mu zadam template i XML fajl napunjen podacima i on će napraviti odt dokument.
Samo što nisam ovaj svoj primjer uspio napraviti ?!?? ali hajde, to ću još vidjeti.
Varijanta sa csv readerom je kada sada ovo sve integrišem u neki java programčić, ili ruby skriptu - pretpostavljam
Mada je i gornja varijanta manje više ok.
Izmjenjeno od Ernad Husremović prije oko 15 godina
koliko je brzo generisanje ? pokušaj test sa većom količinom podataka.
Da li za pokretanje treba openoffice-e ? pretpostavljam da ne.
Izmjenjeno od Saša Vranić prije oko 15 godina
ono što sam primjetio na originalnom uzorku koji radi je da postoji skripta unutar dokumenta
Script Type: JooScript
@text:p [#list order.line as line] @/text:p [/#list]
Kada raspakujem dokument sa 7zip-om i pogledam u contents.xml vidim ovo:
<text:p text:style-name="Standard"> <text:script script:language="JooScript"> @text:p [#list order.line as line] @/text:p [/#list] </text:script> Item: ${line.item.description} quantity: ${line.quantity} </text:p>
to je izgleda to što fali
Izmjenjeno od Saša Vranić prije oko 15 godina
Ernad Husremović je napisao/la:
koliko je brzo generisanje ? pokušaj test sa većom količinom podataka.
Da li za pokretanje treba openoffice-e ? pretpostavljam da ne.
Testirat ću ja sve samo da skontam kako da napravim svoj template
Izmjenjeno od Saša Vranić prije oko 15 godina
Jao jesam tupson !!!!!! uh......
ispravio sam template ovako:
Kupac: ${order.line.customer.name} Adresa: ${order.line.customer.adresa} Artikal: Naziv: ${order.line.article.descr} - (code) = ${order.line.article.code} Dimenzije: ${order.line.article.width} X ${order.line.article.height}
znači: order.line.customer.name ... krećem od order
pošto je xml ovakav:
<?xml version="1.0" encoding="UTF-8"?> <order id="872"> <line> <customer> <name>test customer</name> <adresa>test adresa</adresa> </customer> <article>22XT22
<descr>test artikal</descr>
<height>1000.00</height>
<width>1200.00</width>
</article>
</line>
</order>
i dobio na output test.odt ovako:
Kupac: test customer Adresa: test adresa Artikal: Naziv: test artikal - (code) = 22XT22 Dimenzije: 1200.00 X 1000.00
ok, to je to
Izmjenjeno od Saša Vranić prije oko 15 godina
za naljepnicu već imam dovoljno, jer se ona štampa jedna po jedna...
Izmjenjeno od Saša Vranić prije oko 15 godina
- Fajl glass.xml glass.xml dodano
- Fajl naljepnica_template.odt naljepnica_template.odt dodano
- Fajl naljepnica_generated.odt naljepnica_generated.odt dodano
Evo napravio sam primjer za naljepnicu i to radi super
Izmjenjeno od Saša Vranić prije oko 15 godina
što se tiče same konverzije, ovo radi za sekundu - u vmware sesiji...
I mislim da ne treba biti oo instaliran, samo kada hoćeš u neki drugi format onda mora biti...
Izmjenjeno od Saša Vranić prije oko 15 godina
- Fajl table_data.xml table_data.xml dodano
- Fajl table_template.odt table_template.odt dodano
- Fajl table_generated.odt table_generated.odt dodano
skontao sam i tabelu
evo kačim primjere za tabelu:
Izmjenjeno od Saša Vranić prije oko 15 godina
- % završeno promijenjeno iz 20 u 40
Izmjenjeno od Saša Vranić prije oko 15 godina
- Fajl table_data_2.xml table_data_2.xml dodano
- Fajl table_2_generated.odt table_2_generated.odt dodano
sada sam uzeo table_template.xml i izduplicirao stavke da ima za jedno 5-6 listova, baš da vidim brzinu
ma radi isto čvoka, nema nikakve razlike u brzini.
Izmjenjeno od Saša Vranić prije oko 15 godina
Eh, sada znači imamo dvije stavke koje su nam interesantne, a to je prikaz teksta - jedne varijable i prikaz tabele
Što znači xml treba da bude ovakav
<invoice> <no>15222</no> <date>15.02.2009</date> <customer> <name>Promente UG Sarajevo</name> <addr>Branilaca bb</addr> <id>2212312222</id> </customer> <items> <no>1</no> <art>FMK-UG-S</art> <descr>FMK ugovor srebreni</descr> <price>400.00</price> <qtty>2.00</qtty> <total>800.00</total> <tax>26.76</tax> </items> <items> <no>2</no> <art>FMK-KALK</art> <descr>Modul KALK</descr> <price>1010.20</price> <qtty>1.00</qtty> <total>1010.20</total> <tax>72.14</tax> </items> <total>1562.00</total> </invoice>
i sada kako ćemo izvlačiti podatke na template-u
što se tiče statičkih varijabli, znači samo se pojave vrlo je jednostavno, na templateu unesemo
Broj fakture: ${invoice.no}
=> Broj fakture: 15222
ili
Partner: ${invoice.customer.name}, ${invoice.customer.addr}
=> Partner: Promente UG Sarajevo, Branilaca bb
Što se tiče vrijednosti koje su dinamičke, dakle stavke tabele to radimo na sljedeći način:
- pravimo tabelu u template-u
- pravimo njena polja (redni broj, artikal, naziv artikla, cijena, itd....)
- u svako od polja postavljamo vrijednosti
-------------------------------------------------------------------------------- R.br | Artikal naziv | cijena | kolicina | itd... -------------------------------------------------------------------------------- ${item.no} | ${item.descr} | ${item.price} | ${item.qtty} | itd... -------------------------------------------------------------------------------- Ukupno: ${invoice.total} --------------------------------------------------------------------------------
ali na prvom polju (dinamičkom) redni broj pravimo u openoffice, sa menija Insert -> Script
i ubacujemo:
@table:table-row [#list invoice.items as item] @/table:table-row [/#list]
a za script name upisujemo: JOOScript
Izmjenjeno od Saša Vranić prije oko 15 godina
- Fajl invoice_data.xml invoice_data.xml dodano
- Fajl invoice_template.odt invoice_template.odt dodano
- Fajl invoice_generated.odt invoice_generated.odt dodano
ovo je odlično :)
evo napravio sam sada template računa za 15 minuta, xml sa podacima i generisao račun
Izmjenjeno od Ernad Husremović prije oko 15 godina
lijepo je pročitati ponovo ushićenje, a ne samo muku i tegobu
Izmjenjeno od Ernad Husremović prije oko 15 godina
kakva je veza između #18540 i #18556 ? nikakva po tematici, ali feelingu izvršilaca ima velike sličnosti
Izmjenjeno od Saša Vranić prije oko 15 godina
Jedino pitanje koje mi ostaje je generisanje više listova sa različitim sadržajem, recimo kao labele, naljepnice, pa evo i ove etikete u bulku, recimo da ih ima jedno 15 komada
To nisam skontao ! A bilo bi jako od koristi
Izmjenjeno od Saša Vranić prije oko 15 godina
- % završeno promijenjeno iz 40 u 50
Izmjenjeno od Saša Vranić prije oko 15 godina
kako štampati automatski ovakav dokument bez povlačenja grafičkog prikaza openoffice-a
cmd: <path_to_swriter>\swriter -p <fajl_odt>
ovo će baciti automatski na štampač
Izmjenjeno od Saša Vranić prije oko 15 godina
Ako želimo pri tome izbor štampača umjesto print na defaultni
onda se koristi switch -pt
Izmjenjeno od Ernad Husremović prije oko 15 godina
Saša Vranić je napisao/la:
Ako želimo pri tome izbor štampača umjesto print na defaultni
onda se koristi switch -pt
cool
Izmjenjeno od Ernad Husremović prije oko 15 godina
koliko mogu upratiti ovo bi moglo biti generalno idealno mnoge naše obrazac-bazirane izvještaje
Može se precizno pozicionirati.
Hej sljedeći zadatak je pripremi nam štampu virmana sa ovom app hehe :)
Izmjenjeno od Ernad Husremović prije oko 15 godina
Visi mi u glavi ona ponuda baza radnika građevinci fuelboss njemačka ... i za njih bi ovo bilo dobro zar ne ?
Izmjenjeno od Saša Vranić prije oko 15 godina
Ernad Husremović je napisao/la:
koliko mogu upratiti ovo bi moglo biti generalno idealno mnoge naše obrazac-bazirane izvještaje
Može se precizno pozicionirati.
Hej sljedeći zadatak je pripremi nam štampu virmana sa ovom app hehe :)
Upravo tako!
Virmani, kao i labele i ostalo rade po istom principu koji još nisam skontao... još radim na tome
Izmjenjeno od Saša Vranić prije oko 15 godina
hm... izgleda sa ove tačke gledišta da je to nemoguće ?!???
idem se obratiti na forumu
Izmjenjeno od Saša Vranić prije oko 15 godina
ipak sam uspio pronaći rješenje ovog problema
http://sourceforge.net/projects/jodreports/forums/forum/478536/topic/1720927
Izmjenjeno od Saša Vranić prije oko 15 godina
- Fajl label-generated.odt label-generated.odt dodano
napravio sam sada ovo, ali pojma nemam kako :)
Izmjenjeno od Saša Vranić prije oko 15 godina
Procedura ide otprilike ovako:
- formatira se stranica - format->page na veličinu
- zatim se napravi sekcija
> insert>section - zatims se na kraj sekcije stavi prelom stranice
> insert>manual page break
a u dijelu gdje se ispisuje dinamički tekst stavljamo skriptu:
@text:section [#list invoice.items as item] @/text:section [/#list]
te onda u template-u ispisujemo:
artikal: ${item.art}, ${item.descr}, itd...
Izmjenjeno od Saša Vranić prije oko 15 godina
znači TO MOŽE, i sada je samo stvar ovladati tehnikom kreiranja ovakvog template-a
Izmjenjeno od Saša Vranić prije oko 15 godina
i to znači da su sve rupe praktično zakrpljene, ovo je iskoristivo 100%
Izmjenjeno od Saša Vranić prije oko 15 godina
- % završeno promijenjeno iz 50 u 70
Izmjenjeno od Saša Vranić prije oko 15 godina
sjetih se sada onih poreskih kartica gdje imamo za svakog radnika po jedan list a na listu po 12 i više obračuna
uh... odmah sam pomislio ovo neće moći !
Ali onda mi sinu ideja - koja će sigurno upaliti
stvar je u xml-u koji treba biti ovakav
<kartica> <radnik> <ime>radnik 1</ime> <obracun> <mjesec>1</mjesec> <neto>150.00</neto> itd... <obracun> <obracun> <mjesec>2</mjesec> <neto>200.00</neto> itd... <obracun> </radnik> <radnik> <ime>radnik 2</ime> <obracun> <mjesec>1</mjesec> <neto>450.00</neto> itd... <obracun> <obracun> <mjesec>2</mjesec> <neto>455.00</neto> itd... <obracun> </radnik> </kartica>
i onda sve zavisi šta ćemo staviti u LIST komandu i na osnovu nje određivati prelom stranice
Izmjenjeno od Saša Vranić prije oko 15 godina
- Fajl jodconverter-2.2.2.zip jodconverter-2.2.2.zip dodano
također sam ispustio konvertovanje u pdf automatski
vjerovatno nam je tu od pomoći jodconverter
Izmjenjeno od Saša Vranić prije oko 15 godina
- Fajl jodreports-2.1rc.zip jodreports-2.1rc.zip dodano
evo i jodreports koji sam koristio, hernad prikačio linux verziju
iako bi trebalo da je isto
Izmjenjeno od Saša Vranić prije oko 15 godina
što se tiče pdf-a
gledao sam i neka rješenja za konverzovanje on-fly putem cmdline switch-a i korištenjem macro-a, mada mi se to baš i ne sviđa jer ovisimo o makrou
to je varijanta da nemamo openoffice instaliran
Izmjenjeno od Saša Vranić prije oko 15 godina
testirati još i ovaj konverter i onda preći na drugi stepen a to je integracija ovoga u fmk
pripremiti xml writer u clipper-u
Izmjenjeno od Saša Vranić prije oko 15 godina
testirao sam jodreports
C:\jodconverter-2.2.2\lib>java -jar jodconverter-cli-2.2.2.jar -fpdf invoice_generated.odt inovice.pdf
ERROR: connection failed. Please make sure OpenOffice.org is running and listening on port 8100.
a ha, znači za konverter moramo openoffice dignuti kao servis... hm... to i nije baš nešto. Treba vidjeti i varijantu sa macro-om.
Izmjenjeno od Saša Vranić prije oko 15 godina
Treba skontati i kako se oo diže kao servis
Izmjenjeno od Saša Vranić prije oko 15 godina
- Fajl inovice_generated.pdf inovice_generated.pdf dodano
Kako se oo pokrene kao servis ?
Pa u principu vrlo jednostavno :)
soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard
i to je sve...
Pokrenuo ovako, i ništa se nije desilo značajno, nema gui-ja itd...
Pokrenuo sada
C:\jodconverter-2.2.2\lib>java -jar jodconverter-cli-2.2.2.jar invoice_generated.odt inovice.pdf
2009.10.21 10:37:39 com.artofsolving.jodconverter.openoffice.connection.AbstractOpenOfficeConnection connect INFO: connected 2009.10.21 10:37:39 com.artofsolving.jodconverter.openoffice.connection.AbstractOpenOfficeConnection disposing INFO: disconnected
i dobio sam pdf fajl
Brzina je odlična ! Sve se desi u sekundi
Izmjenjeno od Saša Vranić prije oko 15 godina
Da i kada odem u task manager tamo stoji soffice.bin u pokrenutim procesima.
Sada mi pada napamet da ako se starta pri paljenju računara, šta ako proces pukne...
Sada ću pored ovoga probati otvoriti writer i zagasiti ga !
Ne, nemože se sada pokrenuti writer !!! Niti bilo šta drugo od paketa, dok je ovakav proces pokrenut !!!
Sada sam ubio proces soffice.bin i nakon toga mogu normalno pokrenuti office
Izmjenjeno od Saša Vranić prije oko 15 godina
Ali isto tako iz cmdline mogu pokrenuti ovo:
taskkill /F /IM soffice.exe
tako da se ovaj ovaj proces može i automatizirati...
Eto, toliko i o samom PDF-u.
Mada mislim da i nije potreban jer je svima u interesu da imaju write-abilan report - fakturu itd.. a ako im treba mogu je konvertovati u samom ooffice-u kada se pokrene.
Izmjenjeno od Saša Vranić prije oko 15 godina
Eh, trebam se baciti na ovu naljepnicu, da vidim tačno kako se kreira template itd... to mi je ostalo misteriozno
- page break
- section
itd...
Izmjenjeno od Saša Vranić prije oko 15 godina
- Status promijenjeno iz Dodijeljeno u Zatvoreno
- Odgovorna osoba promijenjeno iz Ernad Husremović u Saša Vranić
- % završeno promijenjeno iz 70 u 100
sa ovim je praktično gotovo