C2020-002 Logic to get the iTechSharp Letter or A4 paper settings and the point size (length) or either paper size
This commit is contained in:
parent
b41320ed24
commit
00efe2a582
70
PROMS/Volian.Print.Library/PDFPageSize.cs
Normal file
70
PROMS/Volian.Print.Library/PDFPageSize.cs
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using VEPROMS.CSLA.Library;
|
||||||
|
using iTextSharp.text;
|
||||||
|
|
||||||
|
|
||||||
|
namespace Volian.Print.Library
|
||||||
|
{
|
||||||
|
public class PDFPageSize
|
||||||
|
{
|
||||||
|
// C2020-002 paper size is now set in the format files - this class is use to select the page size that PROMS should be using
|
||||||
|
private static Dictionary<string, Rectangle> dicPDFPageSize = new Dictionary<string, Rectangle>();
|
||||||
|
private static Dictionary<string, int> dicPDFPageSizePnts = new Dictionary<string, int>();
|
||||||
|
private static void BuildPDFPageSizeDic()
|
||||||
|
{
|
||||||
|
// the page size is set in the format files using a string description i.e.: <PDFPageSize PaperSize="LETTER" />
|
||||||
|
if (dicPDFPageSize.Count > 0) return;
|
||||||
|
dicPDFPageSize.Add("LETTER", PageSize.LETTER);
|
||||||
|
dicPDFPageSize.Add("A4", PageSize.A4);
|
||||||
|
}
|
||||||
|
private static void BuildPDFPageSizeDicPnts()
|
||||||
|
{
|
||||||
|
if (dicPDFPageSizePnts.Count > 0) return;
|
||||||
|
dicPDFPageSizePnts.Add("LETTER", 792);
|
||||||
|
dicPDFPageSizePnts.Add("A4", 842);
|
||||||
|
/* Paper Size in Points
|
||||||
|
-------------------------
|
||||||
|
Letter 612x792
|
||||||
|
LetterSmall 612x792
|
||||||
|
Tabloid 792x1224
|
||||||
|
Ledger 1224x792
|
||||||
|
Legal 612x1008
|
||||||
|
Statement 396x612
|
||||||
|
Executive 540x720
|
||||||
|
A0 2384x3371
|
||||||
|
A1 1685x2384
|
||||||
|
A2 1190x1684
|
||||||
|
A3 842x1190
|
||||||
|
A4 595x842
|
||||||
|
A4Small 595x842
|
||||||
|
A5 420x595
|
||||||
|
B4 729x1032
|
||||||
|
B5 516x729
|
||||||
|
Envelope ???x???
|
||||||
|
Folio 612x936
|
||||||
|
Quarto 610x780
|
||||||
|
10x14 720x1008
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
public static Rectangle UsePaperSize(string pgSize)
|
||||||
|
{
|
||||||
|
Rectangle recPageSize = PageSize.LETTER;
|
||||||
|
BuildPDFPageSizeDic();
|
||||||
|
if (pgSize != null && dicPDFPageSize.ContainsKey(pgSize.ToUpper()))
|
||||||
|
recPageSize = dicPDFPageSize[pgSize.ToUpper()];
|
||||||
|
return recPageSize;
|
||||||
|
}
|
||||||
|
public static int PaperSizePoints(string pgSize)
|
||||||
|
{
|
||||||
|
int paperPoints = 792; //LETTER paper size
|
||||||
|
BuildPDFPageSizeDicPnts();
|
||||||
|
if (pgSize != null && dicPDFPageSizePnts.ContainsKey(pgSize.ToUpper()))
|
||||||
|
paperPoints = dicPDFPageSizePnts[pgSize.ToUpper()];
|
||||||
|
return paperPoints;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user