diff --git a/def.go b/def.go index 6a7030f9..d30abf9c 100644 --- a/def.go +++ b/def.go @@ -63,16 +63,138 @@ const ( ) const ( + // PageSizeA0 represents DIN/ISO A0 page size + PageSizeA0 = "A0" + // PageSizeA1 represents DIN/ISO A1 page size + PageSizeA1 = "A1" + // PageSizeA2 represents DIN/ISO A2 page size + PageSizeA2 = "A2" // PageSizeA3 represents DIN/ISO A3 page size PageSizeA3 = "A3" // PageSizeA4 represents DIN/ISO A4 page size PageSizeA4 = "A4" // PageSizeA5 represents DIN/ISO A5 page size PageSizeA5 = "A5" + // PageSizeA6 represents DIN/ISO A6 page size + PageSizeA6 = "A6" + // PageSizeA7 represents DIN/ISO A7 page size + PageSizeA7 = "A7" + // PageSizeA8 represents DIN/ISO A8 page size + PageSizeA8 = "A8" + // PageSizeA9 represents DIN/ISO A9 page size + PageSizeA9 = "A9" + // PageSizeA10 represents DIN/ISO A10 page size + PageSizeA10 = "A10" + // PageSizeB0 represents DIN/ISO B0 page size + PageSizeB0 = "B0" + // PageSizeB1 represents DIN/ISO B1 page size + PageSizeB1 = "B1" + // PageSizeB2 represents DIN/ISO B2 page size + PageSizeB2 = "B2" + // PageSizeB3 represents DIN/ISO B3 page size + PageSizeB3 = "B3" + // PageSizeB4 represents DIN/ISO B4 page size + PageSizeB4 = "B4" + // PageSizeB5 represents DIN/ISO B5 page size + PageSizeB5 = "B5" + // PageSizeB6 represents DIN/ISO B6 page size + PageSizeB6 = "B6" + // PageSizeB7 represents DIN/ISO B7 page size + PageSizeB7 = "B7" + // PageSizeB8 represents DIN/ISO B8 page size + PageSizeB8 = "B8" + // PageSizeB9 represents DIN/ISO B9 page size + PageSizeB9 = "B9" + // PageSizeB10 represents DIN/ISO B10 page size + PageSizeB10 = "B10" + // PageSizeC0 represents DIN/ISO C0 page size + PageSizeC0 = "C0" + // PageSizeC1 represents DIN/ISO C1 page size + PageSizeC1 = "C1" + // PageSizeC2 represents DIN/ISO C2 page size + PageSizeC2 = "C2" + // PageSizeC3 represents DIN/ISO C3 page size + PageSizeC3 = "C3" + // PageSizeC4 represents DIN/ISO C4 page size + PageSizeC4 = "C4" + // PageSizeC5 represents DIN/ISO C5 page size + PageSizeC5 = "C5" + // PageSizeC6 represents DIN/ISO C6 page size + PageSizeC6 = "C6" + // PageSizeC7 represents DIN/ISO C7 page size + PageSizeC7 = "C7" + // PageSizeC8 represents DIN/ISO C8 page size + PageSizeC8 = "C8" + // PageSizeC9 represents DIN/ISO C9 page size + PageSizeC9 = "C9" + // PageSizeC10 represents DIN/ISO C10 page size + PageSizeC10 = "C10" + // PageSizeJISA0 represents JIS A0 page size (Japanese Industrial Standard) + PageSizeJISA0 = "JISA0" + // PageSizeJISA1 represents JIS A1 page size (Japanese Industrial Standard) + PageSizeJISA1 = "JISA1" + // PageSizeJISA2 represents JIS A2 page size (Japanese Industrial Standard) + PageSizeJISA2 = "JISA2" + // PageSizeJISA3 represents JIS A3 page size (Japanese Industrial Standard) + PageSizeJISA3 = "JISA3" + // PageSizeJISA4 represents JIS A4 page size (Japanese Industrial Standard) + PageSizeJISA4 = "JISA4" + // PageSizeJISA5 represents JIS A5 page size (Japanese Industrial Standard) + PageSizeJISA5 = "JISA5" + // PageSizeJISA6 represents JIS A6 page size (Japanese Industrial Standard) + PageSizeJISA6 = "JISA6" + // PageSizeJISA7 represents JIS A7 page size (Japanese Industrial Standard) + PageSizeJISA7 = "JISA7" + // PageSizeJISA8 represents JIS A8 page size (Japanese Industrial Standard) + PageSizeJISA8 = "JISA8" + // PageSizeJISA9 represents JIS A9 page size (Japanese Industrial Standard) + PageSizeJISA9 = "JISA9" + // PageSizeJISA10 represents JIS A10 page size (Japanese Industrial Standard) + PageSizeJISA10 = "JISA10" + // PageSizeJISB0 represents JIS B0 page size (Japanese Industrial Standard) + PageSizeJISB0 = "JISB0" + // PageSizeJISB1 represents JIS B1 page size (Japanese Industrial Standard) + PageSizeJISB1 = "JISB1" + // PageSizeJISB2 represents JIS B2 page size (Japanese Industrial Standard) + PageSizeJISB2 = "JISB2" + // PageSizeJISB3 represents JIS B3 page size (Japanese Industrial Standard) + PageSizeJISB3 = "JISB3" + // PageSizeJISB4 represents JIS B4 page size (Japanese Industrial Standard) + PageSizeJISB4 = "JISB4" + // PageSizeJISB5 represents JIS B5 page size (Japanese Industrial Standard) + PageSizeJISB5 = "JISB5" + // PageSizeJISB6 represents JIS B6 page size (Japanese Industrial Standard) + PageSizeJISB6 = "JISB6" + // PageSizeJISB7 represents JIS B7 page size (Japanese Industrial Standard) + PageSizeJISB7 = "JISB7" + // PageSizeJISB8 represents JIS B8 page size (Japanese Industrial Standard) + PageSizeJISB8 = "JISB8" + // PageSizeExecutive represents US Executive page size + PageSizeExecutive = "Executive" // PageSizeLetter represents US Letter page size PageSizeLetter = "Letter" // PageSizeLegal represents US Legal page size PageSizeLegal = "Legal" + // PageSizeTabloid represents US Tabloid page size + PageSizeTabloid = "Tabloid" + // PageSizeLedger represents US Ledger page size + PageSizeLedger = "Ledger" + // PageSizeArchA represents US Architectural A page size + PageSizeArchA = "ArchA" + // PageSizeArchB represents US Architectural B page size + PageSizeArchB = "ArchB" + // PageSizeArchC represents US Architectural C page size + PageSizeArchC = "ArchC" + // PageSizeArchD represents US Architectural D page size + PageSizeArchD = "ArchD" + // PageSizeArchE represents US Architectural E page size + PageSizeArchE = "ArchE" + // PageSizeArchE1 represents US Architectural E1 page size + PageSizeArchE1 = "ArchE1" + // PageSizeArchE2 represents US Architectural E2 page size + PageSizeArchE2 = "ArchE2" + // PageSizeArchE3 represents US Architectural E3 page size + PageSizeArchE3 = "ArchE3" ) const ( diff --git a/fpdf.go b/fpdf.go index 3be1cdc2..4dd5bc75 100644 --- a/fpdf.go +++ b/fpdf.go @@ -137,15 +137,72 @@ func fpdfNew(orientationStr, unitStr, sizeStr, fontDirStr string, size SizeType) f.unitStr = unitStr // Page sizes f.stdPageSizes = make(map[string]SizeType) + f.stdPageSizes["a0"] = SizeType{2383.94, 3370.39} + f.stdPageSizes["a1"] = SizeType{1683.78, 2383.94} + f.stdPageSizes["a2"] = SizeType{1190.55, 1683.78} f.stdPageSizes["a3"] = SizeType{841.89, 1190.55} f.stdPageSizes["a4"] = SizeType{595.28, 841.89} - f.stdPageSizes["a5"] = SizeType{420.94, 595.28} - f.stdPageSizes["a6"] = SizeType{297.64, 420.94} - f.stdPageSizes["a2"] = SizeType{1190.55, 1683.78} - f.stdPageSizes["a1"] = SizeType{1683.78, 2383.94} - f.stdPageSizes["letter"] = SizeType{612, 792} - f.stdPageSizes["legal"] = SizeType{612, 1008} - f.stdPageSizes["tabloid"] = SizeType{792, 1224} + f.stdPageSizes["a5"] = SizeType{419.53, 595.28} + f.stdPageSizes["a6"] = SizeType{297.64, 419.53} + f.stdPageSizes["a7"] = SizeType{209.76, 297.64} + f.stdPageSizes["a8"] = SizeType{147.40, 209.76} + f.stdPageSizes["a9"] = SizeType{104.88, 147.40} + f.stdPageSizes["a10"] = SizeType{73.70, 104.88} + f.stdPageSizes["b0"] = SizeType{2834.65, 4007.64} + f.stdPageSizes["b1"] = SizeType{2003.82, 2834.65} + f.stdPageSizes["b2"] = SizeType{1417.32, 2003.82} + f.stdPageSizes["b3"] = SizeType{1000.94, 1417.32} + f.stdPageSizes["b4"] = SizeType{708.66, 1000.94} + f.stdPageSizes["b5"] = SizeType{498.90, 708.66} + f.stdPageSizes["b6"] = SizeType{354.33, 498.90} + f.stdPageSizes["b7"] = SizeType{250.63, 354.33} + f.stdPageSizes["b8"] = SizeType{177.17, 250.63} + f.stdPageSizes["b9"] = SizeType{125.27, 177.17} + f.stdPageSizes["b10"] = SizeType{88.58, 125.27} + f.stdPageSizes["c0"] = SizeType{2599.37, 3676.85} + f.stdPageSizes["c1"] = SizeType{1836.85, 2599.37} + f.stdPageSizes["c2"] = SizeType{1298.27, 1836.85} + f.stdPageSizes["c3"] = SizeType{918.46, 1298.27} + f.stdPageSizes["c4"] = SizeType{649.13, 918.46} + f.stdPageSizes["c5"] = SizeType{459.29, 649.13} + f.stdPageSizes["c6"] = SizeType{323.15, 459.29} + f.stdPageSizes["c7"] = SizeType{227.22, 323.15} + f.stdPageSizes["c8"] = SizeType{161.57, 227.22} + f.stdPageSizes["c9"] = SizeType{113.39, 161.57} + f.stdPageSizes["c10"] = SizeType{79.37, 113.39} + f.stdPageSizes["jisa0"] = SizeType{2383.94, 3370.39} + f.stdPageSizes["jisa1"] = SizeType{1683.78, 2383.94} + f.stdPageSizes["jisa2"] = SizeType{1190.55, 1683.78} + f.stdPageSizes["jisa3"] = SizeType{841.89, 1190.55} + f.stdPageSizes["jisa4"] = SizeType{595.28, 841.89} + f.stdPageSizes["jisa5"] = SizeType{419.53, 595.28} + f.stdPageSizes["jisa6"] = SizeType{297.64, 419.53} + f.stdPageSizes["jisa7"] = SizeType{209.76, 297.64} + f.stdPageSizes["jisa8"] = SizeType{147.40, 209.76} + f.stdPageSizes["jisa9"] = SizeType{104.88, 147.40} + f.stdPageSizes["jisa10"] = SizeType{73.70, 104.88} + f.stdPageSizes["jisb0"] = SizeType{2919.72, 4127.05} + f.stdPageSizes["jisb1"] = SizeType{2063.56, 2919.72} + f.stdPageSizes["jisb2"] = SizeType{1459.85, 2063.56} + f.stdPageSizes["jisb3"] = SizeType{1031.78, 1459.85} + f.stdPageSizes["jisb4"] = SizeType{728.50, 1031.78} + f.stdPageSizes["jisb5"] = SizeType{515.89, 728.50} + f.stdPageSizes["jisb6"] = SizeType{364.25, 515.89} + f.stdPageSizes["jisb7"] = SizeType{257.48, 364.25} + f.stdPageSizes["jisb8"] = SizeType{181.42, 257.48} + f.stdPageSizes["executive"] = SizeType{522.00, 756.00} + f.stdPageSizes["letter"] = SizeType{612.00, 792.00} + f.stdPageSizes["legal"] = SizeType{612.00, 1008.00} + f.stdPageSizes["tabloid"] = SizeType{792.00, 1224.00} + f.stdPageSizes["ledger"] = SizeType{792.00, 1224.00} + f.stdPageSizes["arch-a"] = SizeType{259.84, 367.85} + f.stdPageSizes["arch-b"] = SizeType{367.85, 561.26} + f.stdPageSizes["arch-c"] = SizeType{561.26, 792.50} + f.stdPageSizes["arch-d"] = SizeType{792.50, 1224.72} + f.stdPageSizes["arch-e"] = SizeType{1224.72, 1584.00} + f.stdPageSizes["arch-e1"] = SizeType{792.00, 1224.00} + f.stdPageSizes["arch-e2"] = SizeType{612.00, 792.00} + f.stdPageSizes["arch-e3"] = SizeType{1728.00, 2736.00} if size.Wd > 0 && size.Ht > 0 { f.defPageSize = size } else { @@ -2925,7 +2982,7 @@ func (f *Fpdf) WriteLinkID(h float64, displayStr string, linkID int) { // // width indicates the width of the box the text will be drawn in. This is in // the unit of measure specified in New(). If it is set to 0, the bounding box -//of the page will be taken (pageWidth - leftMargin - rightMargin). +// of the page will be taken (pageWidth - leftMargin - rightMargin). // // lineHeight indicates the line height in the unit of measure specified in // New().