작은 머리글, 주요 문자열 및 작은 꼬리말로 각각 PdfPCell 클래스의 셀 테이블을 만들고 싶습니다. HeaderandFooter가 셀에 추가 할 수있는 요소가 아니기 때문에 삽입 방법을 찾을 수 없습니다. 한 단락이 다른 단락을 덮어 쓰는 등등. 어떤 아이디어?itextsharp pdfpcell header
미리 감사드립니다.
작은 머리글, 주요 문자열 및 작은 꼬리말로 각각 PdfPCell 클래스의 셀 테이블을 만들고 싶습니다. HeaderandFooter가 셀에 추가 할 수있는 요소가 아니기 때문에 삽입 방법을 찾을 수 없습니다. 한 단락이 다른 단락을 덮어 쓰는 등등. 어떤 아이디어?itextsharp pdfpcell header
미리 감사드립니다.
중첩 테이블을 사용할 수 있습니다.
작은 머리글 & 작은 꼬리말이있는 1x1 테이블을 PdfPCell 대신 삽입하십시오.
편집 :
테이블이 여러 페이지에 걸쳐있는 경우에 유용이기 때문에 이제 iTextSharp의 테이블 바닥 글 및 헤더 기능에 대해 잊게 한 다음 바닥 글 & 헤더를 반복합니다. 우리의 경우 머리말 & 꼬리말은 3 개의 셀만 포함 할 내부 테이블에 속할 것이므로 모든 것에 PdfPCell을 사용합시다.
다음 주요 기능은 사용자 지정된 머리글 셀 (높이, 글꼴, 텍스트, ..)을 포함하는 PdfPTable, 기본 텍스트가 들어있는 중간 셀 & 맞춤형 바닥 글 셀을 반환합니다. GetHFCell
입니다. 이 함수는 주 테이블에 셀을 추가 할 때마다 호출됩니다 (GeneratePDF
에서이 함수를 사용하는 방법 예제).
private static PdfPTable GetHFCell(string header, string footer, string text)
{
PdfPTable pdft;
PdfPCell hc;
PdfPCell fc;
pdft = new PdfPTable(1);
pdft.WidthPercentage = 100f;
pdft.DefaultCell.Border = 0;
hc = new PdfPCell(new Phrase(header));
hc.Top = 0f;
hc.FixedHeight = 7f;
hc.HorizontalAlignment = 1;
hc.BackgroundColor = iTextSharp.text.Color.ORANGE;
((Chunk)(hc.Phrase[0])).Font = new iTextSharp.text.Font(((Chunk)(hc.Phrase[0])).Font.Family, 5f);
fc = new PdfPCell(new Phrase(footer));
hc.Top = 0f;
fc.FixedHeight = 7f;
hc.HorizontalAlignment = 1;
fc.BackgroundColor = iTextSharp.text.Color.YELLOW;
((Chunk)(fc.Phrase[0])).Font = new iTextSharp.text.Font(((Chunk)(fc.Phrase[0])).Font.Family, 5f);
pdft.AddCell(hc);
pdft.AddCell(text);
pdft.AddCell(fc);
return pdft;
}
public void GeneratePDF()
{
Document document = new Document();
try
{
PdfWriter.GetInstance(document, new FileStream("File1.pdf", FileMode.Create));
document.Open();
PdfPTable table = new PdfPTable(5);
table.DefaultCell.Padding = 0;
table.DefaultCell.BorderWidth = 2f;
for (int j = 1; j < 6; j++)
{
for (int i = 1; i < 6; i++)
{
//calling GetHFCell
table.AddCell(
GetHFCell("header " + ((int)(i + 5 * (j - 1))).ToString(),
"footer " + ((int)(i + 5 * (j - 1))).ToString(),
"z" + j.ToString() + i.ToString()));
}
}
document.Add(table);
}
catch (DocumentException de)
{
//...
}
catch (IOException ioe)
{
//...
}
document.Close();
}
그래, 그게 내가하려는 일이지만, 지금까지 실패했습니다. 조금 더 구체적으로 말씀해 주시겠습니까? 나는 1 컬럼으로 새로운 PdfPTable을 만들려고했다. 헤더에 1 행을, 바닥 글에 1을 설정했습니다. 그러나, 나는 그 테이블에 그들을 강제 수 없습니다. – Trimack
ImageShack이 이미지를 삭제하고이를 광고로 대체 했으므로 귀하의 게시물에서 이미지를 삭제해야했습니다. 자세한 내용은 http://meta.stackexchange.com/q/263771/215468을 참조하십시오. 가능한 경우 다시 업로드하는 것이 좋습니다. 감사! – Undo