Wie passt sich eine Zeichenfolge innerhalb eines Rechtecks?
Ich versuche, fügen Sie einige Texte, Bilder und Tabellen in meiner pdf-Datei (es sind mehrere Seiten), aber wenn ich versuche, mit ColumnText
(ich verwende diese, weil ich möchte, platzieren von Zeichenfolgen an den absoluten Positionen), stoße ich auf ein problem.
Wenn die Spalte, die Höhe ist nicht ausreichend, um fügen Sie den Inhalt der Zeichenfolgen, wird der Inhalt unvollständig ist. Wie kann ich vermeiden, dass der Inhalt verloren geht?
Hier ist der zugehörige code :
try {
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("output.pdf"));
document.open();
PdfContentByte cb = writer.getDirectContent();
String imageUrl = "/Users/nofear/workspace/deneme23/pics/a4-ust.png";
String imageUrlAlt = "pics/a4-alt.png";
Image imageust = null;
Image imageAlt = null;
try {
imageust = Image.getInstance(imageUrl);
imageAlt = Image.getInstance(imageUrlAlt);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("HEIGHT"
+ (document.getPageSize().getHeight() - imageust.getHeight()));
imageust.setAbsolutePosition(0f,
document.getPageSize().getHeight() - imageust.getHeight()-10);
imageAlt.setAbsolutePosition( 0f, 10f);
document.add(imageust);
document.add(imageAlt);
//now draw a line below the headline
cb.setLineWidth(1f);
cb.moveTo(0, 200);
cb.lineTo(200, 200);
cb.stroke();
//first define a standard font for our text
Font helvetica8BoldBlue = FontFactory.getFont(FontFactory.HELVETICA,16);
//create a column object
ColumnText ct = new ColumnText(cb);
//define the text to print in the column
Phrase myText = new Phrase("Very Very Long String!!!" , helvetica8BoldBlue);
ct.setSimpleColumn(myText, 60, 750,
/* width*/document.getPageSize().getWidth() - 40, 100,
20, Element.ALIGN_LEFT);
ct.go();
} catch (Exception e) {
} finally {
document.close();
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es drei Optionen:
Woher wissen Sie, wenn der Inhalt nicht passt?
Können Sie den Inhalt im simulation-Modus zuerst, und testen Sie, ob der Inhalt 'verbraucht':
Basierend auf dem Wert von
fits
können Sie entscheiden, zu ändern die Größe des Rechtecks oder der Inhalt. Es gibt ein Beispiel, das zeigt, wie dies zu tun: http://itextpdf.com/examples/iia.php?id=163Wenn Sie können, verteilen Sie die Inhalte über verschiedene Seiten, die Sie nicht brauchen, Simulations-Modus, müssen Sie nur einfügen
document.newPage();
In diesem Beispiel
rect
enthält die Koordinaten des Rechtecks.