71 lines
2.1 KiB
C#
71 lines
2.1 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|