2013-01-17 9 views
15

Używam itextext do wygenerowania pliku pdf. Chcę ustawić mój tytuł na środku strony. Obecnie używam tego w następujący sposób: czy to jest poprawne, czy jest jakikolwiek inny najlepszy sposób na zrobienie tego.Wyrównanie akapitu na środku strony

Odpowiedz

51

Zastosowanie Paragraph#setAlignment(int):

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

Zobacz ALIGN_* stałe w interfejsie Element więcej możliwych wartości.

+0

lubił prostotę –

3

Jeśli ktoś szuka. NET/C# wersji, poniżej jest jak osiągnąć wyrównanie CENTRUM.

używam biblioteki iText7 dla .NET/C#, a ja to osiągnąć za pomocą:

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

public static final String = "DEST/Wyniki tabele/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

Co jest zaletą rozwiązania w porównaniu do znacznie prostsze rozwiązanie w przyjętym odpowiedź? – mkl

+0

* "Poniższy wiersz nie ma większego sensu:' p1.setAlignment (Element.TABLE) '" * - Nie widzę tego kodu nigdzie, ani w pytaniu, ani w żadnej odpowiedzi. – mkl

+0

używasz wersji iText, która jest naprawdę, naprawdę stara. Następująca linia nie ma większego sensu: preface.setAlignment (Element.ALIGN_CENTER); więc użyj tej metody zamiast starszej wersji itext cell.setVerticalAlignment (Element.ALIGN_MIDDLE); ta metoda jest znacznie szybsza i lepsza –

0

Nie wiem, czy jest to stara wersja, ale dla PdfWriter te metody nie było. Zamiast tego użyłem:

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