diff --git a/core14.go b/core14.go new file mode 100644 index 0000000..af701c5 --- /dev/null +++ b/core14.go @@ -0,0 +1,256 @@ +package pdf + +var Core14Widths = map[string][]float64{ + "Helvetica-BoldOblique": []float64{ + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 278.0, 333.0, 474.0, 556.0, 556.0, 889.0, 722.0, 278.0, 333.0, 333.0, 389.0, 584.0, 278.0, 333.0, 278.0, 278.0, + 556.0, 556.0, 556.0, 556.0, 556.0, 556.0, 556.0, 556.0, 556.0, 556.0, 333.0, 333.0, 584.0, 584.0, 584.0, 611.0, + 975.0, 722.0, 722.0, 722.0, 722.0, 667.0, 611.0, 778.0, 722.0, 278.0, 556.0, 722.0, 611.0, 833.0, 722.0, 778.0, + 667.0, 778.0, 722.0, 667.0, 611.0, 722.0, 667.0, 944.0, 667.0, 667.0, 611.0, 333.0, 278.0, 333.0, 584.0, 556.0, + 278.0, 556.0, 611.0, 556.0, 611.0, 556.0, 333.0, 611.0, 611.0, 278.0, 278.0, 556.0, 278.0, 889.0, 611.0, 611.0, + 611.0, 611.0, 389.0, 556.0, 333.0, 611.0, 556.0, 778.0, 556.0, 556.0, 500.0, 389.0, 280.0, 389.0, 584.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 333.0, 556.0, 556.0, 167.0, 556.0, 556.0, 556.0, 556.0, 238.0, 500.0, 556.0, 333.0, 333.0, 611.0, 611.0, + 0.0, 556.0, 556.0, 556.0, 278.0, 0.0, 556.0, 350.0, 278.0, 500.0, 500.0, 556.0, 1000.0, 1000.0, 0.0, 611.0, + 0.0, 333.0, 333.0, 333.0, 333.0, 333.0, 333.0, 333.0, 333.0, 0.0, 333.0, 333.0, 0.0, 333.0, 333.0, 333.0, + 1000.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 1000.0, 0.0, 370.0, 0.0, 0.0, 0.0, 0.0, 611.0, 778.0, 1000.0, 365.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 889.0, 0.0, 0.0, 0.0, 278.0, 0.0, 0.0, 278.0, 611.0, 944.0, 611.0, 0.0, 0.0, 0.0, 556.0, + }, + "ZapfDingbats": []float64{ + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 278.0, 974.0, 961.0, 974.0, 980.0, 719.0, 789.0, 790.0, 791.0, 690.0, 960.0, 939.0, 549.0, 855.0, 911.0, 933.0, + 911.0, 945.0, 974.0, 755.0, 846.0, 762.0, 761.0, 571.0, 677.0, 763.0, 760.0, 759.0, 754.0, 494.0, 552.0, 537.0, + 577.0, 692.0, 786.0, 788.0, 788.0, 790.0, 793.0, 794.0, 816.0, 823.0, 789.0, 841.0, 823.0, 833.0, 816.0, 831.0, + 923.0, 744.0, 723.0, 749.0, 790.0, 792.0, 695.0, 776.0, 768.0, 792.0, 759.0, 707.0, 708.0, 682.0, 701.0, 826.0, + 815.0, 789.0, 789.0, 707.0, 687.0, 696.0, 689.0, 786.0, 787.0, 713.0, 791.0, 785.0, 791.0, 873.0, 761.0, 762.0, + 762.0, 759.0, 759.0, 892.0, 892.0, 788.0, 784.0, 438.0, 138.0, 277.0, 415.0, 392.0, 392.0, 668.0, 668.0, 0.0, + 390.0, 390.0, 317.0, 317.0, 276.0, 276.0, 509.0, 509.0, 410.0, 410.0, 234.0, 234.0, 334.0, 334.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 732.0, 544.0, 544.0, 910.0, 667.0, 760.0, 760.0, 776.0, 595.0, 694.0, 626.0, 788.0, 788.0, 788.0, 788.0, + 788.0, 788.0, 788.0, 788.0, 788.0, 788.0, 788.0, 788.0, 788.0, 788.0, 788.0, 788.0, 788.0, 788.0, 788.0, 788.0, + 788.0, 788.0, 788.0, 788.0, 788.0, 788.0, 788.0, 788.0, 788.0, 788.0, 788.0, 788.0, 788.0, 788.0, 788.0, 788.0, + 788.0, 788.0, 788.0, 788.0, 894.0, 838.0, 1016.0, 458.0, 748.0, 924.0, 748.0, 918.0, 927.0, 928.0, 928.0, 834.0, + 873.0, 828.0, 924.0, 924.0, 917.0, 930.0, 931.0, 463.0, 883.0, 836.0, 836.0, 867.0, 867.0, 696.0, 696.0, 874.0, + 0.0, 874.0, 760.0, 946.0, 771.0, 865.0, 771.0, 888.0, 967.0, 888.0, 831.0, 873.0, 927.0, 970.0, 918.0, 0.0, + }, + "Helvetica-Bold": []float64{ + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 278.0, 333.0, 474.0, 556.0, 556.0, 889.0, 722.0, 278.0, 333.0, 333.0, 389.0, 584.0, 278.0, 333.0, 278.0, 278.0, + 556.0, 556.0, 556.0, 556.0, 556.0, 556.0, 556.0, 556.0, 556.0, 556.0, 333.0, 333.0, 584.0, 584.0, 584.0, 611.0, + 975.0, 722.0, 722.0, 722.0, 722.0, 667.0, 611.0, 778.0, 722.0, 278.0, 556.0, 722.0, 611.0, 833.0, 722.0, 778.0, + 667.0, 778.0, 722.0, 667.0, 611.0, 722.0, 667.0, 944.0, 667.0, 667.0, 611.0, 333.0, 278.0, 333.0, 584.0, 556.0, + 278.0, 556.0, 611.0, 556.0, 611.0, 556.0, 333.0, 611.0, 611.0, 278.0, 278.0, 556.0, 278.0, 889.0, 611.0, 611.0, + 611.0, 611.0, 389.0, 556.0, 333.0, 611.0, 556.0, 778.0, 556.0, 556.0, 500.0, 389.0, 280.0, 389.0, 584.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 333.0, 556.0, 556.0, 167.0, 556.0, 556.0, 556.0, 556.0, 238.0, 500.0, 556.0, 333.0, 333.0, 611.0, 611.0, + 0.0, 556.0, 556.0, 556.0, 278.0, 0.0, 556.0, 350.0, 278.0, 500.0, 500.0, 556.0, 1000.0, 1000.0, 0.0, 611.0, + 0.0, 333.0, 333.0, 333.0, 333.0, 333.0, 333.0, 333.0, 333.0, 0.0, 333.0, 333.0, 0.0, 333.0, 333.0, 333.0, + 1000.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 1000.0, 0.0, 370.0, 0.0, 0.0, 0.0, 0.0, 611.0, 778.0, 1000.0, 365.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 889.0, 0.0, 0.0, 0.0, 278.0, 0.0, 0.0, 278.0, 611.0, 944.0, 611.0, 0.0, 0.0, 0.0, 556.0, + }, + "Courier-Oblique": []float64{ + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, + 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, + 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, + 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, + 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, + 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, + 0.0, 600.0, 600.0, 600.0, 600.0, 0.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 0.0, 600.0, + 0.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 0.0, 600.0, 600.0, 0.0, 600.0, 600.0, 600.0, + 600.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 600.0, 0.0, 600.0, 0.0, 0.0, 0.0, 0.0, 600.0, 600.0, 600.0, 600.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 600.0, 0.0, 0.0, 0.0, 600.0, 0.0, 0.0, 600.0, 600.0, 600.0, 600.0, 0.0, 0.0, 0.0, 600.0, + }, + "Courier": []float64{ + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, + 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, + 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, + 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, + 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, + 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, + 0.0, 600.0, 600.0, 600.0, 600.0, 0.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 0.0, 600.0, + 0.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 0.0, 600.0, 600.0, 0.0, 600.0, 600.0, 600.0, + 600.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 600.0, 0.0, 600.0, 0.0, 0.0, 0.0, 0.0, 600.0, 600.0, 600.0, 600.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 600.0, 0.0, 0.0, 0.0, 600.0, 0.0, 0.0, 600.0, 600.0, 600.0, 600.0, 0.0, 0.0, 0.0, 600.0, + }, + "Helvetica": []float64{ + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 278.0, 278.0, 355.0, 556.0, 556.0, 889.0, 667.0, 222.0, 333.0, 333.0, 389.0, 584.0, 278.0, 333.0, 278.0, 278.0, + 556.0, 556.0, 556.0, 556.0, 556.0, 556.0, 556.0, 556.0, 556.0, 556.0, 278.0, 278.0, 584.0, 584.0, 584.0, 556.0, + 1015.0, 667.0, 667.0, 722.0, 722.0, 667.0, 611.0, 778.0, 722.0, 278.0, 500.0, 667.0, 556.0, 833.0, 722.0, 778.0, + 667.0, 778.0, 722.0, 667.0, 611.0, 722.0, 667.0, 944.0, 667.0, 667.0, 611.0, 278.0, 278.0, 278.0, 469.0, 556.0, + 222.0, 556.0, 556.0, 500.0, 556.0, 556.0, 278.0, 556.0, 556.0, 222.0, 222.0, 500.0, 222.0, 833.0, 556.0, 556.0, + 556.0, 556.0, 333.0, 500.0, 278.0, 556.0, 500.0, 722.0, 500.0, 500.0, 500.0, 334.0, 260.0, 334.0, 584.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 333.0, 556.0, 556.0, 167.0, 556.0, 556.0, 556.0, 556.0, 191.0, 333.0, 556.0, 333.0, 333.0, 500.0, 500.0, + 0.0, 556.0, 556.0, 556.0, 278.0, 0.0, 537.0, 350.0, 222.0, 333.0, 333.0, 556.0, 1000.0, 1000.0, 0.0, 611.0, + 0.0, 333.0, 333.0, 333.0, 333.0, 333.0, 333.0, 333.0, 333.0, 0.0, 333.0, 333.0, 0.0, 333.0, 333.0, 333.0, + 1000.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 1000.0, 0.0, 370.0, 0.0, 0.0, 0.0, 0.0, 556.0, 778.0, 1000.0, 365.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 889.0, 0.0, 0.0, 0.0, 278.0, 0.0, 0.0, 222.0, 611.0, 944.0, 611.0, 0.0, 0.0, 0.0, 556.0, + }, + "Symbol": []float64{ + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 250.0, 333.0, 713.0, 500.0, 549.0, 833.0, 778.0, 439.0, 333.0, 333.0, 500.0, 549.0, 250.0, 549.0, 250.0, 278.0, + 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 278.0, 278.0, 549.0, 549.0, 549.0, 444.0, + 549.0, 722.0, 667.0, 722.0, 612.0, 611.0, 763.0, 603.0, 722.0, 333.0, 631.0, 722.0, 686.0, 889.0, 722.0, 722.0, + 768.0, 741.0, 556.0, 592.0, 611.0, 690.0, 439.0, 768.0, 645.0, 795.0, 611.0, 333.0, 863.0, 333.0, 658.0, 500.0, + 500.0, 631.0, 549.0, 549.0, 494.0, 439.0, 521.0, 411.0, 603.0, 329.0, 603.0, 549.0, 549.0, 576.0, 521.0, 549.0, + 549.0, 521.0, 549.0, 603.0, 439.0, 576.0, 713.0, 686.0, 493.0, 686.0, 494.0, 480.0, 200.0, 480.0, 549.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 750.0, 620.0, 247.0, 549.0, 167.0, 713.0, 500.0, 753.0, 753.0, 753.0, 753.0, 1042.0, 987.0, 603.0, 987.0, 603.0, + 400.0, 549.0, 411.0, 549.0, 549.0, 713.0, 494.0, 460.0, 549.0, 549.0, 549.0, 549.0, 1000.0, 603.0, 1000.0, 658.0, + 823.0, 686.0, 795.0, 987.0, 768.0, 768.0, 823.0, 768.0, 768.0, 713.0, 713.0, 713.0, 713.0, 713.0, 713.0, 713.0, + 768.0, 713.0, 790.0, 790.0, 890.0, 823.0, 549.0, 250.0, 713.0, 603.0, 603.0, 1042.0, 987.0, 603.0, 987.0, 603.0, + 494.0, 329.0, 790.0, 790.0, 786.0, 713.0, 384.0, 384.0, 384.0, 384.0, 384.0, 384.0, 494.0, 494.0, 494.0, 494.0, + 0.0, 329.0, 274.0, 686.0, 686.0, 686.0, 384.0, 384.0, 384.0, 384.0, 384.0, 384.0, 494.0, 494.0, 494.0, 790.0, + }, + "Times-BoldItalic": []float64{ + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 250.0, 389.0, 555.0, 500.0, 500.0, 833.0, 778.0, 333.0, 333.0, 333.0, 500.0, 570.0, 250.0, 333.0, 250.0, 278.0, + 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 333.0, 333.0, 570.0, 570.0, 570.0, 500.0, + 832.0, 667.0, 667.0, 667.0, 722.0, 667.0, 667.0, 722.0, 778.0, 389.0, 500.0, 667.0, 611.0, 889.0, 722.0, 722.0, + 611.0, 722.0, 667.0, 556.0, 611.0, 722.0, 667.0, 889.0, 667.0, 611.0, 611.0, 333.0, 278.0, 333.0, 570.0, 500.0, + 333.0, 500.0, 500.0, 444.0, 500.0, 444.0, 333.0, 500.0, 556.0, 278.0, 278.0, 500.0, 278.0, 778.0, 556.0, 500.0, + 500.0, 500.0, 389.0, 389.0, 278.0, 556.0, 444.0, 667.0, 500.0, 444.0, 389.0, 348.0, 220.0, 348.0, 570.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 389.0, 500.0, 500.0, 167.0, 500.0, 500.0, 500.0, 500.0, 278.0, 500.0, 500.0, 333.0, 333.0, 556.0, 556.0, + 0.0, 500.0, 500.0, 500.0, 250.0, 0.0, 500.0, 350.0, 333.0, 500.0, 500.0, 500.0, 1000.0, 1000.0, 0.0, 500.0, + 0.0, 333.0, 333.0, 333.0, 333.0, 333.0, 333.0, 333.0, 333.0, 0.0, 333.0, 333.0, 0.0, 333.0, 333.0, 333.0, + 1000.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 944.0, 0.0, 266.0, 0.0, 0.0, 0.0, 0.0, 611.0, 722.0, 944.0, 300.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 722.0, 0.0, 0.0, 0.0, 278.0, 0.0, 0.0, 278.0, 500.0, 722.0, 500.0, 0.0, 0.0, 0.0, 500.0, + }, + "Courier-Bold": []float64{ + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, + 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, + 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, + 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, + 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, + 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, + 0.0, 600.0, 600.0, 600.0, 600.0, 0.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 0.0, 600.0, + 0.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 0.0, 600.0, 600.0, 0.0, 600.0, 600.0, 600.0, + 600.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 600.0, 0.0, 600.0, 0.0, 0.0, 0.0, 0.0, 600.0, 600.0, 600.0, 600.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 600.0, 0.0, 0.0, 0.0, 600.0, 0.0, 0.0, 600.0, 600.0, 600.0, 600.0, 0.0, 0.0, 0.0, 600.0, + }, + "Times-Roman": []float64{ + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 250.0, 333.0, 408.0, 500.0, 500.0, 833.0, 778.0, 333.0, 333.0, 333.0, 500.0, 564.0, 250.0, 333.0, 250.0, 278.0, + 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 278.0, 278.0, 564.0, 564.0, 564.0, 444.0, + 921.0, 722.0, 667.0, 667.0, 722.0, 611.0, 556.0, 722.0, 722.0, 333.0, 389.0, 722.0, 611.0, 889.0, 722.0, 722.0, + 556.0, 722.0, 667.0, 556.0, 611.0, 722.0, 722.0, 944.0, 722.0, 722.0, 611.0, 333.0, 278.0, 333.0, 469.0, 500.0, + 333.0, 444.0, 500.0, 444.0, 500.0, 444.0, 333.0, 500.0, 500.0, 278.0, 278.0, 500.0, 278.0, 778.0, 500.0, 500.0, + 500.0, 500.0, 333.0, 389.0, 278.0, 500.0, 500.0, 722.0, 500.0, 500.0, 444.0, 480.0, 200.0, 480.0, 541.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 333.0, 500.0, 500.0, 167.0, 500.0, 500.0, 500.0, 500.0, 180.0, 444.0, 500.0, 333.0, 333.0, 556.0, 556.0, + 0.0, 500.0, 500.0, 500.0, 250.0, 0.0, 453.0, 350.0, 333.0, 444.0, 444.0, 500.0, 1000.0, 1000.0, 0.0, 444.0, + 0.0, 333.0, 333.0, 333.0, 333.0, 333.0, 333.0, 333.0, 333.0, 0.0, 333.0, 333.0, 0.0, 333.0, 333.0, 333.0, + 1000.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 889.0, 0.0, 276.0, 0.0, 0.0, 0.0, 0.0, 611.0, 722.0, 889.0, 310.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 667.0, 0.0, 0.0, 0.0, 278.0, 0.0, 0.0, 278.0, 500.0, 722.0, 500.0, 0.0, 0.0, 0.0, 500.0, + }, + "Times-Bold": []float64{ + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 250.0, 333.0, 555.0, 500.0, 500.0, 1000.0, 833.0, 333.0, 333.0, 333.0, 500.0, 570.0, 250.0, 333.0, 250.0, 278.0, + 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 333.0, 333.0, 570.0, 570.0, 570.0, 500.0, + 930.0, 722.0, 667.0, 722.0, 722.0, 667.0, 611.0, 778.0, 778.0, 389.0, 500.0, 778.0, 667.0, 944.0, 722.0, 778.0, + 611.0, 778.0, 722.0, 556.0, 667.0, 722.0, 722.0, 1000.0, 722.0, 722.0, 667.0, 333.0, 278.0, 333.0, 581.0, 500.0, + 333.0, 500.0, 556.0, 444.0, 556.0, 444.0, 333.0, 500.0, 556.0, 278.0, 333.0, 556.0, 278.0, 833.0, 556.0, 500.0, + 556.0, 556.0, 444.0, 389.0, 333.0, 556.0, 500.0, 722.0, 500.0, 500.0, 444.0, 394.0, 220.0, 394.0, 520.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 333.0, 500.0, 500.0, 167.0, 500.0, 500.0, 500.0, 500.0, 278.0, 500.0, 500.0, 333.0, 333.0, 556.0, 556.0, + 0.0, 500.0, 500.0, 500.0, 250.0, 0.0, 540.0, 350.0, 333.0, 500.0, 500.0, 500.0, 1000.0, 1000.0, 0.0, 500.0, + 0.0, 333.0, 333.0, 333.0, 333.0, 333.0, 333.0, 333.0, 333.0, 0.0, 333.0, 333.0, 0.0, 333.0, 333.0, 333.0, + 1000.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 1000.0, 0.0, 300.0, 0.0, 0.0, 0.0, 0.0, 667.0, 778.0, 1000.0, 330.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 722.0, 0.0, 0.0, 0.0, 278.0, 0.0, 0.0, 278.0, 500.0, 722.0, 556.0, 0.0, 0.0, 0.0, 500.0, + }, + "Helvetica-Oblique": []float64{ + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 278.0, 278.0, 355.0, 556.0, 556.0, 889.0, 667.0, 222.0, 333.0, 333.0, 389.0, 584.0, 278.0, 333.0, 278.0, 278.0, + 556.0, 556.0, 556.0, 556.0, 556.0, 556.0, 556.0, 556.0, 556.0, 556.0, 278.0, 278.0, 584.0, 584.0, 584.0, 556.0, + 1015.0, 667.0, 667.0, 722.0, 722.0, 667.0, 611.0, 778.0, 722.0, 278.0, 500.0, 667.0, 556.0, 833.0, 722.0, 778.0, + 667.0, 778.0, 722.0, 667.0, 611.0, 722.0, 667.0, 944.0, 667.0, 667.0, 611.0, 278.0, 278.0, 278.0, 469.0, 556.0, + 222.0, 556.0, 556.0, 500.0, 556.0, 556.0, 278.0, 556.0, 556.0, 222.0, 222.0, 500.0, 222.0, 833.0, 556.0, 556.0, + 556.0, 556.0, 333.0, 500.0, 278.0, 556.0, 500.0, 722.0, 500.0, 500.0, 500.0, 334.0, 260.0, 334.0, 584.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 333.0, 556.0, 556.0, 167.0, 556.0, 556.0, 556.0, 556.0, 191.0, 333.0, 556.0, 333.0, 333.0, 500.0, 500.0, + 0.0, 556.0, 556.0, 556.0, 278.0, 0.0, 537.0, 350.0, 222.0, 333.0, 333.0, 556.0, 1000.0, 1000.0, 0.0, 611.0, + 0.0, 333.0, 333.0, 333.0, 333.0, 333.0, 333.0, 333.0, 333.0, 0.0, 333.0, 333.0, 0.0, 333.0, 333.0, 333.0, + 1000.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 1000.0, 0.0, 370.0, 0.0, 0.0, 0.0, 0.0, 556.0, 778.0, 1000.0, 365.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 889.0, 0.0, 0.0, 0.0, 278.0, 0.0, 0.0, 222.0, 611.0, 944.0, 611.0, 0.0, 0.0, 0.0, 556.0, + }, + "Times-Italic": []float64{ + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 250.0, 333.0, 420.0, 500.0, 500.0, 833.0, 778.0, 333.0, 333.0, 333.0, 500.0, 675.0, 250.0, 333.0, 250.0, 278.0, + 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 333.0, 333.0, 675.0, 675.0, 675.0, 500.0, + 920.0, 611.0, 611.0, 667.0, 722.0, 611.0, 611.0, 722.0, 722.0, 333.0, 444.0, 667.0, 556.0, 833.0, 667.0, 722.0, + 611.0, 722.0, 611.0, 500.0, 556.0, 722.0, 611.0, 833.0, 611.0, 556.0, 556.0, 389.0, 278.0, 389.0, 422.0, 500.0, + 333.0, 500.0, 500.0, 444.0, 500.0, 444.0, 278.0, 500.0, 500.0, 278.0, 278.0, 444.0, 278.0, 722.0, 500.0, 500.0, + 500.0, 500.0, 389.0, 389.0, 278.0, 500.0, 444.0, 667.0, 444.0, 444.0, 389.0, 400.0, 275.0, 400.0, 541.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 389.0, 500.0, 500.0, 167.0, 500.0, 500.0, 500.0, 500.0, 214.0, 556.0, 500.0, 333.0, 333.0, 500.0, 500.0, + 0.0, 500.0, 500.0, 500.0, 250.0, 0.0, 523.0, 350.0, 333.0, 556.0, 556.0, 500.0, 889.0, 1000.0, 0.0, 500.0, + 0.0, 333.0, 333.0, 333.0, 333.0, 333.0, 333.0, 333.0, 333.0, 0.0, 333.0, 333.0, 0.0, 333.0, 333.0, 333.0, + 889.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 889.0, 0.0, 276.0, 0.0, 0.0, 0.0, 0.0, 556.0, 722.0, 944.0, 310.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 667.0, 0.0, 0.0, 0.0, 278.0, 0.0, 0.0, 278.0, 500.0, 667.0, 500.0, 0.0, 0.0, 0.0, 500.0, + }, + "Courier-BoldOblique": []float64{ + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, + 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, + 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, + 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, + 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, + 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, + 0.0, 600.0, 600.0, 600.0, 600.0, 0.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 0.0, 600.0, + 0.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 0.0, 600.0, 600.0, 0.0, 600.0, 600.0, 600.0, + 600.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 600.0, 0.0, 600.0, 0.0, 0.0, 0.0, 0.0, 600.0, 600.0, 600.0, 600.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 600.0, 0.0, 0.0, 0.0, 600.0, 0.0, 0.0, 600.0, 600.0, 600.0, 600.0, 0.0, 0.0, 0.0, 600.0, + }, +} diff --git a/page.go b/page.go index 9c7d688..bcf1c87 100644 --- a/page.go +++ b/page.go @@ -123,6 +123,9 @@ func (f Font) Widths() []float64 { // Width returns the width of the given code point. func (f Font) Width(code int) float64 { + if corewidths, ok := Core14Widths[f.BaseFont()]; ok == true { + return corewidths[code] + } first := f.FirstChar() last := f.LastChar() if code < first || last < code { diff --git a/read.go b/read.go index eb8b9aa..1a5c8de 100644 --- a/read.go +++ b/read.go @@ -44,7 +44,7 @@ // the package. Equally important, traversal of other PDF data structures can be implemented // in other packages as needed. // -package pdf // import "rsc.io/pdf" +package pdf // BUG(rsc): The package is incomplete, although it has been used successfully on some // large real-world PDF files.