jt
2021-06-10 5d0d028456874576560552f5a5c4e8b801786f11
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
//============================================================================
//Gios Pdf.NET - A library for exporting Pdf Documents in C#
//Copyright (C) 2005  Paolo Gios - www.paologios.com
//
//This library is free software; you can redistribute it and/or
//modify it under the terms of the GNU Lesser General Public
//License as published by the Free Software Foundation; either
//version 2.1 of the License, or (at your option) any later version.
//
//This library is distributed in the hope that it will be useful,
//but WITHOUT ANY WARRANTY; without even the implied warranty of
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
//Lesser General Public License for more details.
//
//You should have received a copy of the GNU Lesser General Public
//License along with this library; if not, write to the Free Software
//Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
//=============================================================================
 
using System;
 
namespace HH.WMS.Utils.Gios.Pdf
{
    /// <summary>
    /// Represents the Paper Size of each Page of the Document.
    /// </summary>
    public class PdfDocumentFormat
    {
        internal double height,width;
        internal PdfDocumentFormat(double Width,double Height)
        {
            this.height=Height;
            this.width=Width;
        }
        /// <summary>
        /// gets the Classic A4 Letter.
        /// </summary>
        public static PdfDocumentFormat A4
        {
            get
            {
                return PdfDocumentFormat.InCentimeters(21,29.7);
            }
        }
        /// <summary>
        /// gets the Classic A4 Letter (Horizontal)
        /// </summary>
        public static PdfDocumentFormat A4_Horizontal
        {
            get
            {
                return PdfDocumentFormat.InCentimeters(29.7,21);
            }
        }
        /// <summary>
        /// gets the 8.5x11 American Letter.
        /// </summary>
        public static PdfDocumentFormat Letter_8_5x11
        {
            get
            {
                return PdfDocumentFormat.InInches(8.5,11);
            }
        }
        /// <summary>
        /// gets the 8.5x11 American Letter (Horizontal)
        /// </summary>
        public static PdfDocumentFormat Letter_8_5x11_Horizontal
        {
            get
            {
                return PdfDocumentFormat.InInches(11,8.5);
            }
        }
        /// <summary>
        /// creates a custom inches sized paper.
        /// </summary>
        /// <param name="Width"></param>
        /// <param name="Height"></param>
        /// <returns></returns>
        public static PdfDocumentFormat InInches(double Width,double Height)
        {
            if (Width<=0) throw new Exception("Width must be grater than zero.");
            if (Height<=0) throw new Exception("Height must be grater than zero.");
            return new PdfDocumentFormat(Width*72,Height*72);
        }
        /// <summary>
        /// creates a custom centimeters sized paper.
        /// </summary>
        /// <param name="Width"></param>
        /// <param name="Height"></param>
        /// <returns></returns>
        public static PdfDocumentFormat InCentimeters(double Width,double Height)
        {
            if (Width<=0) throw new Exception("Width must be grater than zero.");
            if (Height<=0) throw new Exception("Height must be grater than zero.");
            return new PdfDocumentFormat(Width*72/2.54,Height*72/2.54);
        }
    }
}