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