7

PDFsharp libを使用して画像をpdfに変換しています。余白とページ サイズを設定する必要があるため、このフォーラムでページ サイズと余白を設定する方法を学びました。ここから、使用したコードを取得しましたが、2 つの領域でエラーが発生しました。これが私が得たコードです。

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;

この行でエラーが発生しました

XSize size = PageSizeConverter.ToSize(PdfSharp.PageSize.A4);

だから私はそれをに変更する必要があります

System.Drawing.Size size = PageSizeConverter.ToSize(PdfSharp.PageSize.A4);

これでプログラムはコンパイルされますが、マージンを設定すると 、PdfSharp に TrimMargins の定義が含まれていないというエラーが表示されます

これらの下の行は、マージンを設定するためにコンパイルされません。

    pdfPage.TrimMargins.Top = 5;
    pdfPage.TrimMargins.Right = 5;
    pdfPage.TrimMargins.Bottom = 5;
    pdfPage.TrimMargins.Left = 5;

私はpdfシャープライブラリバージョン1.0.898.0を使用しています

マージンを設定する方法を教えてください。

これは、画像ファイルからpdfを生成するための私の完全なコードです

public static string GeneratePdfFromImage(string source)
        {
            string destinaton = source.Replace("gif", "pdf");
            PdfDocument doc = new PdfDocument();
            PdfPage pdfPage = new PdfPage();
            System.Drawing.Size size = PageSizeConverter.ToSize(PdfSharp.PageSize.A4);
            pdfPage.Orientation = PageOrientation.Portrait;

            pdfPage.Width = size.Width;
            pdfPage.Height = size.Height;
            pdfPage.TrimMargins.Top = 5;
            pdfPage.TrimMargins.Right = 5;
            pdfPage.TrimMargins.Bottom = 5;
            pdfPage.TrimMargins.Left = 5;

            doc.Pages.Add(pdfPage);

            XGraphics xgr = XGraphics.FromPdfPage(doc.Pages[0]);
            XImage img = XImage.FromFile(source);

            try
            {
                xgr.DrawImage(img, 0, 0);
                doc.Save(destinaton);
                doc.Close();
            }
            catch (Exception ex)
            {
                destinaton = "";
            }

            return destinaton;
        }
4

1 に答える 1

6

PDFsharp で余白を設定することはできません。アイテムを描画するときにページに余白を確保するのはあなた次第です。

コピーしたコードは MigraDoc からのものです。MigraDoc は PDFsharp に含まれていますが、ページを処理しないより高いレベルで機能し、代わりにセクションを処理し、ここで余白を設定できます。

詳細については、PDFsharp および MigraDoc の Web サイトを参照してください。
http://pdfsharp.net/
ページ サイズの設定方法を示す PDFsharp サンプルもあります。

PDFsharp を使用すると、ページのどこにでも画像を描画でき、画像のサイズも指定できます。

于 2013-04-12T12:47:17.383 に答える