Thanks for your patience, examples and explanations. Now I think at last I'm getting somewhere - thank you very much!
Just one final question: How can I add PdfPtable-objects to the ColumnText? AddElement didn't do the job, nor adding the table to a Phrase or Paragraph first. What am I doing wrong?
All the best
Michael
2006/5/31, bruno <[EMAIL PROTECTED]>:
Michael Caletka wrote:
> As far as I can see in the examples of the tutorial, you always have
> to give the Column a rectangle in absolute positions. I don't have the
> positions beforehand,
???
> so I can't define a rectangle of positions for adding my paragraphs,
> chunks and tables in.
When you use document.add, you have IMPLICITELY defined such a rectangle.
Document document = new Document();
is shorthand for:
Document document = new Document(PageSize.A4, 36, 36, 36, 36);
PageSize.A4 is a Rectangle object, subtract the margins (36) and you
have the definition of your 'simple column' needed for method
setSimpleColumn.
> Perhaps, if you still got some patience left you could get me a
> sample-code for just how to define a ColumnText object right? I want
> it to fit on a A4-page with margins 60 for left and right, and 50 for
> top and bottom. I'm sorry, if I give the impression, that I'm just
> stupid, but somehow I really don't see how it is done.
My publisher will probably shoot me for all the book examples
I am giving away for free, but here it goes. In attachment, you
find a text file with some lines. Each line is read into a Phrase
and added to a ColumnText.
If the Phrase fits the page, the column is written; if not, a new page
is triggered. Some variables were added and sent to the System.out
to show you what happens.
Document document = new Document( PageSize.A4);
try {
PdfWriter writer = PdfWriter.getInstance(document,
new FileOutputStream("column_control.pdf"));
document.open();
PdfContentByte cb = writer.getDirectContent();
BufferedReader reader = new BufferedReader(new
FileReader("caesar.txt"));
ColumnText ct = new ColumnText(cb);
float pos;
String line;
Phrase p;
int status = ColumnText.START_COLUMN ;
ct.setSimpleColumn(36, 36, PageSize.A4.width() - 36,
PageSize.A4.height() - 36, 18, Element.ALIGN_JUSTIFIED);
while ((line = reader.readLine()) != null) {
p = new Phrase(line);
ct.addText (p);
pos = ct.getYLine();
status = ct.go(true);
System.err.println("Lines written:" + ct.getLinesWritten() + "
Y-position: " + pos + " - " + ct.getYLine());
if (!ColumnText.hasMoreText(status)) {
ct.addText(p);
ct.setYLine(pos);
ct.go(false);
}
else {
document.newPage();
ct.setText(p);
ct.setYLine(PageSize.A4.height() - 36);
ct.go();
}
}
reader.close();
} catch (DocumentException de) {
System.err.println(de.getMessage());
} catch (IOException ioe) {
System.err.println(ioe.getMessage());
}
document.close();
}
In your example, you MUST NOT use setText, but addElement.
This example is a 'text mode' example; you need 'composite mode'.
br,
Bruno
GALLIA est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur. Hi omnes lingua, institutis, legibus inter se differunt. Gallos ab Aquitanis Garumna flumen, a Belgis Matrona et Sequana dividit. Horum omnium fortissimi sunt Belgae, propterea quod a cultu atque humanitate provinciae longissime absunt, minimeque ad eos mercatores saepe commeant atque ea quae ad effeminandos animos pertinent important, proximique sunt Germanis, qui trans Rhenum incolunt, quibuscum continenter bellum gerunt. Qua de causa Helvetii quoque reliquos Gallos virtute praecedunt, quod fere cotidianis proeliis cum Germanis contendunt, cum aut suis finibus eos prohibent aut ipsi in eorum finibus bellum gerunt.
[Eorum una, pars, quam Gallos obtinere dictum est, initium capit a flumine Rhodano, continetur Garumna flumine, Oceano, finibus Belgarum, attingit etiam ab Sequanis et Helvetiis flumen Rhenum, vergit ad septentriones. Belgae ab extremis Galliae finibus oriuntur, pertinent ad inferiorem partem fluminis Rheni, spectant in septentrionem et orientem solem. Aquitania a Garumna flumine ad Pyrenaeos montes et eam partem Oceani quae est ad Hispaniam pertinet; spectat inter occasum solis et septentriones.]
Apud Helvetios longe nobilissimus fuit et ditissimus Orgetorix. Is M. Messala, [et P.] M. Pisone consulibus regni cupiditate inductus coniurationem nobilitatis fecit et civitati persuasit ut de finibus suis cum omnibus copiis exirent: perfacile esse, cum virtute omnibus praestarent, totius Galliae imperio potiri. Id hoc facilius iis persuasit, quod undique loci natura Helvetii continentur: una ex parte flumine Rheno latissimo atque altissimo, qui agrum Helvetium a Germanis dividit; altera ex parte monte Iura altissimo, qui est inter Sequanos et Helvetios; tertia lacu Lemanno et flumine Rhodano, qui provinciam nostram ab Helvetiis dividit. His rebus fiebat ut et minus late vagarentur et minus facile finitimis bellum inferre possent; qua ex parte homines bellandi cupidi magno dolore adficiebantur. Pro multitudine autem hominum et pro gloria belli atque fortitudinis angustos se fines habere arbitrabantur, qui in longitudinem milia passuum CCXL, in latitudinem CLXXX patebant.
His rebus adducti et auctoritate Orgetorigis permoti constituerunt ea quae ad proficiscendum pertinerent comparare, iumentorum et carrorum quam maximum numerum coemere, sementes quam maximas facere, ut in itinere copia frumenti suppeteret, cum proximis civitatibus pacem et amicitiam confirmare. Ad eas res conficiendas biennium sibi satis esse duxerunt; in tertium annum profectionem lege confirmant. Ad eas res conficiendas Orgetorix deligitur. Is sibi legationem ad civitates suscipit. In eo itinere persuadet Castico, Catamantaloedis filio, Sequano, cuius pater regnum in Sequanis multos annos obtinuerat et a senatu populi Romani amicus appellatus erat, ut regnum in civitate sua occuparet, quod pater ante habuerit; itemque Dumnorigi Haeduo, fratri Diviciaci, qui eo tempore principatum in civitate obtinebat ac maxime plebi acceptus erat, ut idem conaretur persuadet eique filiam suam in matrimonium dat. Perfacile factu esse illis probat conata perficere, propterea quod ipse suae civitatis imperium obtenturus esset: non esse dubium quin totius Galliae plurimum Helvetii possent; se suis copiis suoque exercitu illis regna conciliaturum confirmat. Hac oratione adducti inter se fidem et ius iurandum dant et regno occupato per tres potentissimos ac firmissimos populos totius Galliae sese potiri posse sperant.
Ea res est Helvetiis per indicium enuntiata. Moribus suis Orgetoricem ex vinculis causam dicere coegerunt; damnatum poenam sequi oportebat, ut igni cremaretur. Die constituta causae dictionis Orgetorix ad iudicium omnem suam familiam, ad hominum milia decem, undique coegit, et omnes clientes obaeratosque suos, quorum magnum numerum habebat, eodem conduxit; per eos ne causam diceret se eripuit. Cum civitas ob eam rem incitata armis ius suum exequi conaretur multitudinemque hominum ex agris magistratus cogerent, Orgetorix mortuus est; neque abest suspicio, ut Helvetii arbitrantur, quin ipse sibi mortem consciverit.
_______________________________________________ iText-questions mailing list iText-questions@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/itext-questions