Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
122 changes: 122 additions & 0 deletions def.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 (
Expand Down
73 changes: 65 additions & 8 deletions fpdf.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down Expand Up @@ -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().
Expand Down