2010-03-22 1 views
2

iTextsharp 라이브러리를 사용하여 PDF 파일을 만듭니다. 이 같은 A4 가로 용지 선언 할 수iTextSharp 사용자 정의 용지 크기

Dim pdfTable As New PdfPTable(9) 
pdfTable.WidthPercentage = 100 
Dim pdfDoc As New Document(PageSize.A4.Rotate()) 

은 내가 수동으로 pdfTable 또는 A4 높이의 높이를 설정하는 방법 궁금하네요. 하단에는 더 많은 여백이 남기 때문에 그 여백에 약간의 텍스트를 넣어야합니다. 지금은 아래쪽에 한 줄의 텍스트를 넣었고 그 줄은 새 페이지로 밀어 넣었습니다.

Q1 : iTextsharp에서 제공 한 A4 용지의 높이를 어떻게 무시할 수 있습니까?

Q2 : 너비 = 29cm, 높이 = 22cm로 사용자 정의 크기 용지를 만들려면 어떻게해야합니까?

감사합니다.

답변

0

사용자 정의 PdfpageEvent를 사용하여 텍스트 나 표 또는 기타를 바닥 글에 추가 할 수 있습니다.

public override void OnEndPage(PdfWriter writer, iTextSharp.text.Document document) 
{ 
    base.OnEndPage(writer, document); 

    PdfContentByte cb = writer.DirectContent; 

    var footerTable = new PdfPTable(4); 

    var columnWidth = (document.Right - document.LeftMargin)/4; 

    footerTable.SetTotalWidth(new float[] { columnWidth, columnWidth, columnWidth, columnWidth }); 

    var cell1 = new PdfPCell(); 
    cell1.AddElement(new Paragraph("Date:")); 
    cell1.AddElement(new Paragraph(DateTime.Now.ToShortDateString())); 
    footerTable.AddCell(cell1); 

    var cell2 = new PdfPCell(); 
    cell2.AddElement(new Paragraph("Data:")); 
    cell2.AddElement(new Paragraph("123456789")); 
    footerTable.AddCell(cell2); 

    var cell3 = new PdfPCell(); 
    cell3.AddElement(new Paragraph("Date:")); 
    cell3.AddElement(new Paragraph(DateTime.Now.ToShortDateString())); 
    footerTable.AddCell(cell3); 

    var cell4 = new PdfPCell(); 
    cell4.AddElement(new Paragraph("Page:")); 
    cell4.AddElement(new Paragraph(document.PageNumber.ToString())); 
    footerTable.AddCell(cell4); 

    footerTable.WriteSelectedRows(0, -1, document.LeftMargin, cell4.Height + 50, cb); 
} 

을 그리고 이것은 위의 코드를 호출 할 코드입니다 : 여기

바닥 글에 4 열 테이블을 추가하는 코드입니다 (죄송는 C#으로의)

var pdfWriter = PdfWriter.GetInstance(pdf, new FileStream(fileName, FileMode.Create)); 
pdfWriter.PageEvent = new CustomPdfPageEvent(); 
+1

안녕하세요, Dim DocfDoc As New Document (PageSize.A4.Rotate(), 15, 35, 15, 3)와 같은 매개 변수를 추가하고 있습니다. 나는 또한 당신의 제안을 시도 할 것입니다. – Narazana

8

을 iTextSharp에서 사용자 정의 페이지 크기 :

Dim pgSize As New iTextSharp.text.Rectangle(myWidth, myHeight) 
Dim doc As New iTextSharp.text.Document(pgSize, leftMargin, rightMargin, topMargin, bottomMargin) 

iTextSharp 인치당 72 개 픽셀을 사용, 그래서 당신은 높이와 폭을 알고있는 경우 원하는 페이지 크기를 인치로 지정하면 72를 곱하여 myWidth 및 myHeight를 얻습니다.