2016-07-01 9 views
0

A4用紙の中央に線を引きますが、私のコードは、PDFのフッターに行を生成するに引かれた線に作る方法私はページの真ん中に引かれた線にしたいiTextSharp

public void GeneratePdf() 
    { 
     Document document = new Document(PageSize.A4, 0, 0, 50, 50); 
     var output = new FileStream("doctest.pdf", FileMode.Create); 
     var writer = PdfWriter.GetInstance(document, output); 
     document.Open(); 

     document.NewPage(); 
     PdfContentByte contentByte = writer.DirectContent; 
     contentByte.SetLineWidth(1); 
     contentByte.MoveTo(0, 14); 
     contentByte.LineTo(document.PageSize.Width, 0); 
     contentByte.Stroke(); 

     document.Close(); 
     writer.Close(); 
    } 

ページの真ん中?

+0

「中」とはどういう意味ですか?上下を等分する水平線?左右に均等に分かれる縦線? – mkl

答えて

2

ここで考慮して取るためにいくつかのこと:

  1. ページを横切る線を描画する場合は、開始と終了の両方で同じ高さに配置する必要があります。ここでは14の行を開始し、0に描画しています。
  2. iTextSharpユーザーユニットのものを測定します。ユーザー単位はポイントに対応します。 1インチに72ポイントがあるので、14インチにラインを置く場合は、指定する必要があります。14 * 72
  3. ライターの位置は下から上です。そのため、行の先頭に14を設定すると、その行の最後に描画されます。
  4. これを考慮して

:あなただけのページサイズを使用、右ページの真ん中であなたの線を描画する場合:あなたは別の位置でそれを描きたい場合は

contentByte.MoveTo(0, document.PageSize.Height/2); 
contentByte.LineTo(document.PageSize.Width, document.PageSize.Height/2); 

を、対策実際のページで、どの位置(インチ)で線を描きたいのか、それをページの合計サイズから引いて72を掛けます。つまり、あなたのラインを上から5インチ描く場合、A4サイズは8.3 * 11.7です:

contentByte.MoveTo(0, (11.7f - 5f) * 72f); 
contentByte.LineTo(document.PageSize.Width, (11.7f - 5f) * 72f); 
+0

丁寧な答えですが、私は小さな誤解を修正しました。 –

関連する問題