2013-01-17 19 views
15

ich itext bin mit pdf-Datei zu erzeugen. Ich möchte meinen Titel in der Mitte der Seite ausrichten. Derzeit verwende ich soAlign Ziffer in der Mitte der Seite

Paragraph preface = new Paragraph(); 
for (int i = 0; i < 10; i++) { 
    preface.add(new Paragraph(" ")); 
} 

Ist es korrekt oder gibt es einen anderen besten Weg, dies zu tun.

Antwort

51

Verwendung Paragraph#setAlignment(int):

Paragraph preface = new Paragraph(); 
preface.setAlignment(Element.ALIGN_CENTER); 

Siehe die ALIGN_* Konstanten in der Element Schnittstelle für weitere mögliche Werte.

+0

mochte die Einfachheit –

3

Wenn ein für .NET/C# Version suchen, unten ist, wie ich die zentrierte Ausrichtung erreicht.

Ich verwende iText7 Bibliothek für .NET/C#, und ich erreichte dies mit:

Paragraph preface = new Paragraph(); 
preface.SetTextAlignment(iText.Layout.Properties.TextAlignment.CENTER); 
0

public static final String DEST = "Ergebnisse/Tabellen/centered_text.pdf";

public static void main(String[] args) throws IOException, DocumentException { 
    File file = new File(DEST); 
    file.getParentFile().mkdirs(); 
    new CenteredTextInCell().createPdf(DEST); 
} 

public void createPdf(String dest) throws IOException, DocumentException { 
    Document document = new Document(); 
    PdfWriter.getInstance(document, new FileOutputStream(dest)); 
    document.open(); 
    Font font = new Font(FontFamily.HELVETICA, 12, Font.BOLD); 
    Paragraph para = new Paragraph("Test", font); 
    para.setLeading(0, 1); 
    PdfPTable table = new PdfPTable(1); 
    table.setWidthPercentage(100); 
    PdfPCell cell = new PdfPCell(); 
    cell.setMinimumHeight(50); 
    cell.setVerticalAlignment(Element.ALIGN_MIDDLE); 
    cell.addElement(para); 
    table.addCell(cell); 
    document.add(table); 
    document.close(); 
} 
+0

Was ist der Vorteil Ihrer Lösung im Vergleich zu der viel einfacheren Lösung in der akzeptierten Antwort? – mkl

+0

* "Die folgende Zeile macht keinen Sinn:' p1.setAlignment (Element.TABLE) '" * - Ich sehe diesen Code nirgends hier, weder in der Frage noch in irgendeiner Antwort. – mkl

+0

Sie verwenden eine Version von iText, die wirklich sehr alt ist. Die folgende Zeile macht keinen Sinn: preface.setAlignment (Element.ALIGN_CENTER); Verwenden Sie diese Methode stattdessen über der älteren Version von itext cell.setVerticalAlignment (Element.ALIGN_MIDDLE); Diese Methode viel schneller und besser –

0

Nicht sicher, ob dies eine alte Version, aber für PDFWriter diese Methoden nicht da waren. Stattdessen benutzen ich:

Paragraph p = new Paragraph("This too shall pass"); 
    p.Alignment = Element.ALIGN_CENTER; 
Verwandte Themen