このコードを使用して水平方向に配置しています。
cell = New PdfPCell();
p = New Phrase("value");
cell.AddElement(p);
cell.HorizontalAlignment = PdfPCell.ALIGN_CENTER; //Tried with Element.Align_Center Also. Tried Adding this line before adding element also.
table.AddCell(cell);
動いていない。
5つの列を含むテーブルを作成し、上記のコードを使用してforループで実行時にセルを動的に追加しています。すべてのセルのコンテンツを中央に配置したい。
上記のすべての解決策を試しましたが、どれもうまくいきませんでした。それから私はこれを試しました、そしてそれは私を正しい解決策に導きました
PdfPCell c2 = new PdfPCell(new iTextSharp.text.Phrase("Text")) { HorizontalAlignment = iTextSharp.text.Element.ALIGN_CENTER };
table.AddCell(c2);
OPからは必須ではないことはわかっていますが、\ nで区切ると、複数の単語を中央に配置することもできます。さらに、Element.ALIGN_MIDDLEを使用して垂直方向に中央揃えすることもできます
コードは次のとおりです。
PdfPCell c2 = new PdfPCell(new iTextSharp.text.Phrase("AAAAAAAAA\nBBBBBB")) { HorizontalAlignment = iTextSharp.text.Element.ALIGN_CENTER, VerticalAlignment = iTextSharp.text.Element.ALIGN_MIDDLE };
table.AddCell(c2);
そして結果:
それが役に立てば幸い
これを試して、
cell = New PdfPCell();
p = New Phrase("value");
cell.AddElement(p);
cell.HorizontalAlignment = Element.ALIGN_CENTER; //Tried with Element.Align_Center Also. Tried Adding this line before adding element also.
table.AddCell(cell);
これを試して、
cell.HorizontalAlignment = 1; //0=Left, 1=Centre, 2=Right
コメントによると、正解(ローカルでテストしたばかりです)は、段落要素を作成し、段落に配置ディレクティブを追加することです。
これを示すコードの作業ブロックは次のとおりです。
Font qFont = FontFactory.GetFont(FontFactory.HELVETICA_BOLDOBLIQUE, 10);
List<float> widths = new List<float>();
for(int i = 0; i < qs.Selected.Items.Count; i++) {
widths.Add((pageRectangle.Width - 250)/ qs.Selected.Items.Count);
}
PdfPTable table = new PdfPTable(qs.Selected.Items.Count);
table.HorizontalAlignment = Element.ALIGN_CENTER;
table.SetTotalWidth(widths.ToArray());
foreach(System.Web.UI.WebControls.ListItem answer in qs.Selected.Items) {
cell = new PdfPCell();
cell.Border = Rectangle.NO_BORDER;
/******************** RELEVANT CODE STARTS HERE ***************************/
Paragraph p = new Paragraph(answer.Text, aFont);
p.Alignment = Element.ALIGN_CENTER;
cell.AddElement(p);
table.AddCell(cell);
/******************** RELEVANT CODE ENDS HERE ***************************/
}
これの功績はユーザーのBrunoLowagieにあるはずですが、いくつかの奇妙なドラマが起こっているようで、正解に対する反対票の苦情とその後の同じものの削除があります。
適切な場所に適切なタイミングで明確な回答が投稿されたら、反対票を食べます。
インターネットポイントよりも重要なことがいくつかあります。 <3
これは古い質問ですが、適切な解決策はcell.HorizontalAlignment = 1;
を使用することです。
ここにニースがあります 例
例として、すべてのテーブルセルの配置を設定することができます。
table.DefaultCell.HorizontalAlignment = Element.ALIGN_JUSTIFIED;
一部のテーブルセルに他の配置が必要な場合は、個別に指定できます-
Phrase phraseConstant = new Phrase("Name :", font);
PdfPCell cell = new PdfPCell(phraseConstant);
cell.HorizontalAlignment = 0;
table.AddCell(phraseConstant);
最後に
これを変える :
cell = New PdfPCell();
p = New Phrase("value");
cell.AddElement(p);
cell.HorizontalAlignment = PdfPCell.ALIGN_CENTER;
table.AddCell(cell);
これとともに :
PdfPCell cell = new PdfPCell(new Phrase("value"));
cell.HorizontalAlignment = Element.ALIGN_CENTER;
似ているように見えますが、結果が異なります理由はわかりません