4

私はPdfSharpについて話している。縦向きは、余白がある場合とない場合でうまく機能します。ただし、横向きの場合は、TrimMarginsを使用してマージンを設定すると、ページが右側で切り捨てられます。pdfSharpのサンプルコードで同じことを試しましたが、同じ問題があります!!

次のコードのためにうまくレンダリングされたPDFを見てください

page = document.AddPage();
page.Size = PdfSharp.PageSize.A4;
page.Orientation = PageOrientation.Landscape;
gfx = XGraphics.FromPdfPage(page);
gfx.DrawString("A4 (landscape)", font,XBrushes.DarkRed, new XRect(0, 0, page.Width, page.Height),XStringFormats.Center);

ただし、次のコードではpdfが適切にレンダリングされないため、右側を切り捨てます。

page = document.AddPage();
page.TrimMargins.Top = 5;
page.TrimMargins.Right = 5;
page.TrimMargins.Bottom = 5;
page.TrimMargins.Left = 5;
page.Size = PdfSharp.PageSize.A4;
page.Orientation = PageOrientation.Landscape;
gfx = XGraphics.FromPdfPage(page);
gfx.DrawString("A4 (landscape)", font,XBrushes.DarkRed, new XRect(0, 0, page.Width, page.Height),XStringFormats.Center);

何か考えがありますか?ありがとう

4

3 に答える 3

2

はい、これは PdfSharp のバグです

以下のような向きで余白を設定できます

page = document.AddPage();
//page.Size = PdfSharp.PageSize.A4;
XSize size = PageSizeConverter.ToSize(PdfSharp.PageSize.A4);
if(page.Orientation == PageOrientation.Landscape)
{
   page.Width  = size.Height;
   page.Height = size.Width;
}
else
{
   page.Width  = size.Width;
   page.Height = size.Height;
}

// default unit in points 1 inch = 72 points
page.TrimMargins.Top = 5;
page.TrimMargins.Right = 5;
page.TrimMargins.Bottom = 5;
page.TrimMargins.Left = 5;
于 2012-06-11T17:41:52.007 に答える