Hey @all,
kennt jemand eine Trick oder sonstiges um professionelle Geschäftspapiere mit QT4 zu erzeugen?
Ich arbeite an einem kleinen Beispiel programm um Rechnungen zu Drucken und zu Speichern (PDF).
Jedoch ist die Qualität nicht wirklich so das ich Sie einem Kunden geben möchte.
Bisher speichere ich die Kundedaten usw. in einer Datenbank und beim generieren erstelle ich eine XML und lasse darauf libxslt darüber laufen um eine HTML Ausgabe zu generieren, diese lade ich dann in ein QTextDocument bzw. in ein QWebView.
Beides habe ich schon ausgedruckt und als PDF gespeichert, jedoch ist die Qualität echt schlecht.
Wäre für jede Hilfe sehr dankbar
Lg NoRulez
Qualität bei Geschäftspapieren
-
- Beiträge: 605
- Registriert: 28. Juni 2007 15:01
- Kontaktdaten:
Re: Qualität bei Geschäftspapieren
QT kann xslt du brauchst keine lib...NoRulez hat geschrieben:Hey @all,
Bisher speichere ich die Kundedaten usw. in einer Datenbank und beim generieren erstelle ich eine XML und lasse darauf libxslt darüber laufen um eine HTML Ausgabe zu generieren, diese lade ich dann in ein
Wäre für jede Hilfe sehr dankbar
Lg NoRulez
http://englich.wordpress.com/2008/09/10/xsl-t-and-qt/
Code: Alles auswählen
int main(int argc, char *argv[]) {
QApplication a( argc, argv );
qDebug() << "### init main void Extract, Transform ";
QDateTime timer1( QDateTime::currentDateTime() );
const QString localoutfile = "outresult.html";
StreamBuf *buf = new StreamBuf();
QXmlQuery xquery(QXmlQuery::XSLT20);
xquery.setFocus(QUrl("http://fop-miniscribus.googlecode.com/svn/trunk/doc/Xsltqt5/data.xml"));
xquery.setQuery(QUrl("http://fop-miniscribus.googlecode.com/svn/trunk/doc/Xsltqt5/style.xsl"));
xquery.evaluateTo(buf->device());
QTextEdit t;
t.show();
t.setPlainText ( const QString & text );
a.connect( &a, SIGNAL( lastWindowClosed() ), &a, SLOT( quit() ) );
return a.exec();
};
//// read dir http://fop-miniscribus.googlecode.com/svn/trunk/doc/Xsltqt5/
propriere mal xsl-fo
http://de.wikipedia.org/wiki/Extensible ... ng_Objects
1 ist xml -> http://fop-miniscribus.googlecode.com/s ... sample2.fo
2 ist pdf -> http://fop-miniscribus.googlecode.com/f ... twrite.pdf
was aber auch rtf -tif oder ODF OpenOffice werden kann OpenDocument format.
XSLT is im qt 4.5 enthalten und dazu ist QTextDocument 200% schneller da die paintdevice neu geschrieben ist.
Um den unterchied zu beobachten lade:
1 - http://fop-miniscribus.googlecode.com/f ... dit4.5.exe
2 - http://fop-miniscribus.googlecode.com/f ... dit4.1.exe
und lade mit beiden programme demo.html oder demo.odt und achte auf die lade zeit...
wie installieren?:
http://code.google.com/p/fop-miniscribu ... _Trolltech
.........................
speack português italiano deutsch english castellà qt
speack português italiano deutsch english castellà qt
Am Fop ist nichts falsch man kan ihm auch mit einem installer setzen..
Dann gibt es noch http://xmlroff.org/ ist eine lib
Sowie einen XSLT den man xsl-fo file im OpenOffice laden kann
Und Ein Plug-in fuer http://www.abisource.com/ der xsl-fo lesen und schreiben kann ( doch ist die formatierung sehr schlecht )
Rendern bei -> Software:
http://de.wikipedia.org/wiki/Extensible ... ng_Objects
bei link ist auch MiniScribus vorhanden.
alle Kommerziell ausser Apache Fop java
Wer auch rendern kann ist MiniScribus version 1 print + pdf
bei MiniScribus version 2 kann man einen printPreview einsetzen
Beide painten in Graphics View
Also die einzige freien XSL-FO Wysiwyg-Editor sind
1 - http://code.google.com/p/fop-miniscribus/
2 - http://www.qt-apps.org/content/show.php ... tent=82672
Kommerziel gibt es http://www.antennahouse.com/ der gut ist..
Installiere http://fop-miniscribus.googlecode.com/f ... _1.0.3.exe und schaue auf den source insgesamt etwa 2500 download bei qt-apps , sf.net und google code sowie hotscripts aber version 1 kann keine bookmark machen, nur version 2 + Apache fop java
Dann gibt es noch http://xmlroff.org/ ist eine lib
Sowie einen XSLT den man xsl-fo file im OpenOffice laden kann
Und Ein Plug-in fuer http://www.abisource.com/ der xsl-fo lesen und schreiben kann ( doch ist die formatierung sehr schlecht )
Rendern bei -> Software:
http://de.wikipedia.org/wiki/Extensible ... ng_Objects
bei link ist auch MiniScribus vorhanden.
alle Kommerziell ausser Apache Fop java
Wer auch rendern kann ist MiniScribus version 1 print + pdf
bei MiniScribus version 2 kann man einen printPreview einsetzen
Beide painten in Graphics View
Also die einzige freien XSL-FO Wysiwyg-Editor sind
1 - http://code.google.com/p/fop-miniscribus/
2 - http://www.qt-apps.org/content/show.php ... tent=82672
Kommerziel gibt es http://www.antennahouse.com/ der gut ist..
Installiere http://fop-miniscribus.googlecode.com/f ... _1.0.3.exe und schaue auf den source insgesamt etwa 2500 download bei qt-apps , sf.net und google code sowie hotscripts aber version 1 kann keine bookmark machen, nur version 2 + Apache fop java
Zuletzt geändert von patrik08 am 1. Oktober 2008 12:53, insgesamt 1-mal geändert.
.........................
speack português italiano deutsch english castellà qt
speack português italiano deutsch english castellà qt
Die Links habe ich mir schon durchgesehen, jedoch verstehe ich glaube ich etwas grundsätzlich nicht oder ich bin noch zu sehr im XSLT.
Simples Beispiel für XSLT:
Wie würde sowas in XSL-FO aussehen?
Wie gesagt ich habe mir auch die Beispiele zu XSL-FO angesehen, jedoch wie benutzt man daten aus einem XML File?
Benötigt man jetzt nur mehr data.xml und data.fo oder auch eine data.xsl?
Zugegeben bei XSLT war es etwas einfacher
Hoffe Du kannst mir ein bisschen helfen/unter die Arme greifen.
Vielen Dank im Voraus
LG NoRulez
Simples Beispiel für XSLT:
Code: Alles auswählen
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="utf-8" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
<xsl:decimal-format name="european" decimal-separator=',' grouping-separator='.' />
<xsl:template match="/">
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<table border="0" align="center" cellpadding="0" cellspacing="0" width="100%">
<tr height="57">
<td><xsl:value-of select="invoice/company/company_name"/></td>
</tr>
<tr height="57">
<td><xsl:value-of select="invoice/company/street"/></td>
</tr>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Wie gesagt ich habe mir auch die Beispiele zu XSL-FO angesehen, jedoch wie benutzt man daten aus einem XML File?
Benötigt man jetzt nur mehr data.xml und data.fo oder auch eine data.xsl?
Zugegeben bei XSLT war es etwas einfacher
Hoffe Du kannst mir ein bisschen helfen/unter die Arme greifen.
Vielen Dank im Voraus
LG NoRulez
In meinem 2 qt programm http://sourceforge.net/search/?type_of_ ... rds=qexcel vor 2 jahren geschrieben ist so ein beispiel drinnen... der QT code nicht gut lesbar aber es funktioniert 1a.
https://qtexcel-xslt.svn.sourceforge.ne ... lt/qexcel/
tabelle zu excel oder sqlite zu excel ist auch drinn:
http://qtexcel-xslt.sourceforge.net/con ... el2003.xsl
http://qtexcel-xslt.sourceforge.net/con ... 2excel.xsl
xml zu xsl-fo fast wie in deinem bespiel:
http://qtexcel-xslt.sourceforge.net/con ... sql2fo.xsl
http://qtexcel-xslt.sourceforge.net/converter/ ***
eine tabelle
https://qtexcel-xslt.svn.sourceforge.ne ... lt/qexcel/
tabelle zu excel oder sqlite zu excel ist auch drinn:
http://qtexcel-xslt.sourceforge.net/con ... el2003.xsl
http://qtexcel-xslt.sourceforge.net/con ... 2excel.xsl
xml zu xsl-fo fast wie in deinem bespiel:
http://qtexcel-xslt.sourceforge.net/con ... sql2fo.xsl
http://qtexcel-xslt.sourceforge.net/converter/ ***
eine tabelle
Code: Alles auswählen
<fo:table>
<fo:table-column column-width="33%" />
<fo:table-column column-width="33%" />
<fo:table-column column-width="33%" />
<fo:table-body>
<fo:table-row>
<fo:table-cell>
<fo:block color="rgb(0,0,0,255)" font-size="8pt" >
0-1</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block color="rgb(0,0,0,255)" font-size="8pt" >
0-2</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block margin-bottom="12pt" margin-top="12pt" color="rgb(0,0,0,255)" font-size="8pt" >
0-3</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell>
<fo:block color="rgb(0,0,0,255)" font-size="8pt" >
1-1</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block color="rgb(0,0,0,255)" font-size="8pt" >
1-2</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block margin-bottom="12pt" margin-top="12pt" color="rgb(0,0,0,255)" font-size="8pt" >
1-3</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell>
<fo:block color="rgb(0,0,0,255)" font-size="8pt" >
2-1</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block color="rgb(0,0,0,255)" font-size="8pt" >
2-2</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block margin-bottom="12pt" margin-top="12pt" color="rgb(0,0,0,255)" font-size="8pt" >
2-3</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
.........................
speack português italiano deutsch english castellà qt
speack português italiano deutsch english castellà qt