PDF形式でレポートを作成するためにitextsharpを使用しています。
ページの罫線が欲しい。いくつかの方法を試しました。私は成功していません。
を使用して上、下、左、右のページ境界線を取得するにはどうすればよいiText for .NET
ですか?
画像を1枚追加しました1。画像にあるようなボーダーが欲しいです。
質問する
4739 次
3 に答える
4
ヘッダーの画像を手動で追加するには、このコードを試すことができます。
//ステップ 1: 画像ファイルを追加する
strImgPath is refer the directory Info..
Image imgLogo = Image.GetInstance(strImgPath.ToString()+"\\abcdur compe.Jpg");
imgLogo.Alignment = Image.ALIGN_CENTER;
imgLogo.ScalePercent(50f);
// ステップ2:
Add this ImgLogo to the PdfPTable by use of this
PdfPCell pdfcellImage = new PdfPCell(imgLogo, true);
pdfcellImage.FixedHeight = 40f;
pdfcellImage.HorizontalAlignment = Element.ALIGN_CENTER;
pdfcellImage.VerticalAlignment = Element.ALIGN_CENTER;
pdfcellImage.Border = Rectangle.NO_BORDER;
pdfcellImage.Border = Rectangle.NO_BORDER;
pdftblImage.AddCell(pdfcellImage);
// ステップ 3:
Create Chunck to add Text for address or others
fntBoldComHd is a Base Font Library Object
Chunk chnCompany = new Chunk("Your CompanyName\nAddress", fntBoldComHd);
//Step 4:
Create Phrase For add the Chunks and PdfPTables
Phrase phHeader = new Phrase();
phHeader.Add(pdftblImage);
phHeader.Add(chnCompany);
// ステップ 5:
Assign the Phrase to PDF Header
HeaderFooter header = new HeaderFooter(phHeader, false);
header.Border = Rectangle.NO_BORDER;
header.Alignment = Element.ALIGN_CENTER;
docPDF.Header = header;
于 2012-12-18T07:13:44.990 に答える
1
私はハックな回避策を使用していますが、境界線が作成されます。この方法を使用してください。
private void CreateBorder(PdfContentByte cb, PdfWriter writer, Document doc)
{
iTextSharp.text.Rectangle r = doc.PageSize;
float left = r.Left + 30;
float right = r.Right - 30;
float top = r.Top - 30;
float bottom = r.Bottom + 30;
float width = right - left;
float height = top - bottom;
PdfPTable tab = new PdfPTable(1);
tab.TotalWidth = width;
tab.LockedWidth = true;
PdfPCell t = new PdfPCell(new Phrase(String.Empty));
t.BackgroundColor = new BaseColor(250, 235, 215);
t.FixedHeight = height;
t.BorderWidth = 3;
tab.AddCell(t);
Paragraph pa = new Paragraph();
pa.Add(tab);
float h = tab.TotalHeight;
PdfTemplate temp = cb.CreateTemplate(tab.TotalWidth, h);
tab.WriteSelectedRows(0, -1, 0.0F, h, temp);
iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(temp);
img.SetAbsolutePosition(30, 30);
cb.AddImage(img);
}
ヘッダー用にもう 1 つのセクションが必要な場合は、テーブル幅を 2 行に作成します。これが役立つことを願っています。
于 2012-12-24T11:13:00.417 に答える
0
ドキュメントのマージンについて言及していますか?はいの場合は、Document オブジェクトの ctor を使用して指定します。
public Document(Rectangle pageSize, float marginLeft, float marginRight, float marginTop, float marginBottom);
于 2012-12-18T18:38:31.863 に答える