Class: PDF::Reader::Encoding::ZapfDingbatsEncoding
- Inherits:
-
PDF::Reader::Encoding
- Object
- PDF::Reader::Encoding
- PDF::Reader::Encoding::ZapfDingbatsEncoding
- Defined in:
- lib/pdf/reader/encoding.rb
Constant Summary
Constants inherited from PDF::Reader::Encoding
Instance Attribute Summary
Attributes inherited from PDF::Reader::Encoding
Instance Method Summary collapse
-
#to_utf8(str, tounicode = nil) ⇒ Object
convert a ZapfDingbatsEncoding string into UTF-8.
Methods inherited from PDF::Reader::Encoding
Instance Method Details
#to_utf8(str, tounicode = nil) ⇒ Object
convert a ZapfDingbatsEncoding string into UTF-8
811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 |
# File 'lib/pdf/reader/encoding.rb', line 811 def to_utf8(str, tounicode = nil) # mapping to unicode taken from: # http://unicode.org/Public/MAPPINGS/VENDORS/ADOBE/zdingbat.txt array_symbol = str.unpack('C*') array_symbol = self.process_differences(array_symbol) array_enc = [] array_symbol.each do |num| case num when 0x21; array_enc << 0x2701 when 0x22; array_enc << 0x2702 when 0x23; array_enc << 0x2703 when 0x24; array_enc << 0x2704 when 0x25; array_enc << 0x260E when 0x26; array_enc << 0x2706 when 0x27; array_enc << 0x2707 when 0x28; array_enc << 0x2708 when 0x29; array_enc << 0x2709 when 0x2A; array_enc << 0x261B when 0x2B; array_enc << 0x261E when 0x2C; array_enc << 0x270C when 0x2D; array_enc << 0x270D when 0x2E; array_enc << 0x270E when 0x2F; array_enc << 0x270F when 0x30; array_enc << 0x2710 when 0x31; array_enc << 0x2711 when 0x32; array_enc << 0x2712 when 0x33; array_enc << 0x2713 when 0x34; array_enc << 0x2714 when 0x35; array_enc << 0x2715 when 0x36; array_enc << 0x2716 when 0x37; array_enc << 0x2717 when 0x38; array_enc << 0x2718 when 0x39; array_enc << 0x2719 when 0x3A; array_enc << 0x271A when 0x3B; array_enc << 0x271B when 0x3C; array_enc << 0x271C when 0x3D; array_enc << 0x271D when 0x3E; array_enc << 0x271E when 0x3F; array_enc << 0x271E when 0x40; array_enc << 0x2720 when 0x41; array_enc << 0x2721 when 0x42; array_enc << 0x2722 when 0x43; array_enc << 0x2723 when 0x44; array_enc << 0x2724 when 0x45; array_enc << 0x2725 when 0x46; array_enc << 0x2726 when 0x47; array_enc << 0x2727 when 0x48; array_enc << 0x2605 when 0x49; array_enc << 0x2729 when 0x4A; array_enc << 0x272A when 0x4B; array_enc << 0x272B when 0x4C; array_enc << 0x272C when 0x4D; array_enc << 0x272D when 0x4E; array_enc << 0x272E when 0x4F; array_enc << 0x272F when 0x50; array_enc << 0x2730 when 0x51; array_enc << 0x2731 when 0x52; array_enc << 0x2732 when 0x53; array_enc << 0x2733 when 0x54; array_enc << 0x2734 when 0x55; array_enc << 0x2735 when 0x56; array_enc << 0x2736 when 0x57; array_enc << 0x2737 when 0x58; array_enc << 0x2738 when 0x59; array_enc << 0x2739 when 0x5A; array_enc << 0x273A when 0x5B; array_enc << 0x273B when 0x5C; array_enc << 0x273C when 0x5D; array_enc << 0x273D when 0x5E; array_enc << 0x273E when 0x5F; array_enc << 0x273F when 0x60; array_enc << 0x2740 when 0x61; array_enc << 0x2741 when 0x62; array_enc << 0x2742 when 0x63; array_enc << 0x2743 when 0x64; array_enc << 0x2744 when 0x65; array_enc << 0x2745 when 0x66; array_enc << 0x2746 when 0x67; array_enc << 0x2747 when 0x68; array_enc << 0x2748 when 0x69; array_enc << 0x2749 when 0x6A; array_enc << 0x274A when 0x6B; array_enc << 0x274B when 0x6C; array_enc << 0x25CF when 0x6D; array_enc << 0x274D when 0x6E; array_enc << 0x25A0 when 0x6F; array_enc << 0x274F when 0x70; array_enc << 0x2750 when 0x71; array_enc << 0x2751 when 0x72; array_enc << 0x2752 when 0x73; array_enc << 0x2753 when 0x74; array_enc << 0x2754 when 0x75; array_enc << 0x2755 when 0x76; array_enc << 0x2756 when 0x77; array_enc << 0x2757 when 0x78; array_enc << 0x2758 when 0x79; array_enc << 0x2759 when 0x7A; array_enc << 0x275A when 0x7B; array_enc << 0x275B when 0x7C; array_enc << 0x275C when 0x7D; array_enc << 0x275D when 0x7E; array_enc << 0x275E when 0x80; array_enc << 0xF8D7 when 0x81; array_enc << 0xF8D8 when 0x82; array_enc << 0xF8D9 when 0x83; array_enc << 0xF8DA when 0x84; array_enc << 0xF8DB when 0x85; array_enc << 0xF8DC when 0x86; array_enc << 0xF8DD when 0x87; array_enc << 0xF8DE when 0x88; array_enc << 0xF8DF when 0x89; array_enc << 0xF8E0 when 0x8A; array_enc << 0xF8E1 when 0x8B; array_enc << 0xF8E2 when 0x8C; array_enc << 0xF8E3 when 0x8D; array_enc << 0xF8E4 when 0xA1; array_enc << 0x2761 when 0xA2; array_enc << 0x2762 when 0xA3; array_enc << 0x2763 when 0xA4; array_enc << 0x2764 when 0xA5; array_enc << 0x2765 when 0xA6; array_enc << 0x2766 when 0xA7; array_enc << 0x2767 when 0xA8; array_enc << 0x2663 when 0xA9; array_enc << 0x2666 when 0xAA; array_enc << 0x2665 when 0xAB; array_enc << 0x2660 when 0xAC; array_enc << 0x2460 when 0xAD; array_enc << 0x2461 when 0xAE; array_enc << 0x2462 when 0xAF; array_enc << 0x2463 when 0xB0; array_enc << 0x2464 when 0xB1; array_enc << 0x2465 when 0xB2; array_enc << 0x2466 when 0xB3; array_enc << 0x2467 when 0xB4; array_enc << 0x2468 when 0xB5; array_enc << 0x2469 when 0xB6; array_enc << 0x2776 when 0xB7; array_enc << 0x2777 when 0xB8; array_enc << 0x2778 when 0xB9; array_enc << 0x2779 when 0xBA; array_enc << 0x277A when 0xBB; array_enc << 0x277B when 0xBC; array_enc << 0x277C when 0xBD; array_enc << 0x277D when 0xBE; array_enc << 0x277E when 0xBF; array_enc << 0x277F when 0xC0; array_enc << 0x2780 when 0xC1; array_enc << 0x2781 when 0xC2; array_enc << 0x2782 when 0xC3; array_enc << 0x2783 when 0xC4; array_enc << 0x2784 when 0xC5; array_enc << 0x2785 when 0xC6; array_enc << 0x2786 when 0xC7; array_enc << 0x2787 when 0xC8; array_enc << 0x2788 when 0xC9; array_enc << 0x2789 when 0xCA; array_enc << 0x278A when 0xCB; array_enc << 0x278B when 0xCC; array_enc << 0x278C when 0xCD; array_enc << 0x278D when 0xCE; array_enc << 0x278E when 0xCF; array_enc << 0x278F when 0xD0; array_enc << 0x2790 when 0xD1; array_enc << 0x2791 when 0xD2; array_enc << 0x2792 when 0xD3; array_enc << 0x2793 when 0xD4; array_enc << 0x2794 when 0xD5; array_enc << 0x2795 when 0xD6; array_enc << 0x2796 when 0xD7; array_enc << 0x2797 when 0xD8; array_enc << 0x2798 when 0xD9; array_enc << 0x2799 when 0xDA; array_enc << 0x279A when 0xDB; array_enc << 0x279B when 0xDC; array_enc << 0x279C when 0xDD; array_enc << 0x279D when 0xDE; array_enc << 0x279E when 0xDF; array_enc << 0x279F when 0xE0; array_enc << 0x27A0 when 0xE1; array_enc << 0x27A1 when 0xE2; array_enc << 0x27A2 when 0xE3; array_enc << 0x27A3 when 0xE4; array_enc << 0x27A4 when 0xE5; array_enc << 0x27A5 when 0xE6; array_enc << 0x27A6 when 0xE7; array_enc << 0x27A7 when 0xE8; array_enc << 0x27A8 when 0xE9; array_enc << 0x27A9 when 0xEA; array_enc << 0x27AA when 0xEB; array_enc << 0x27AB when 0xEC; array_enc << 0x27AC when 0xED; array_enc << 0x27AD when 0xEE; array_enc << 0x27AE when 0xEF; array_enc << 0x27AF when 0xF1; array_enc << 0x27B1 when 0xF2; array_enc << 0x27B2 when 0xF3; array_enc << 0x27B3 when 0xF4; array_enc << 0x27B4 when 0xF5; array_enc << 0x27B5 when 0xF6; array_enc << 0x27B6 when 0xF7; array_enc << 0x27B7 when 0xF8; array_enc << 0x27B8 when 0xF9; array_enc << 0x27B9 when 0xFA; array_enc << 0x27BA when 0xFB; array_enc << 0x27BB when 0xFC; array_enc << 0x27BC when 0xFD; array_enc << 0x27BD when 0xFE; array_enc << 0x27BE else array_enc << num end end # convert any glyph names to unicode codepoints array_enc = self.process_glyphnames(array_enc) # replace charcters that didn't convert to unicode nicely with something valid array_enc.collect! { |c| c ? c : PDF::Reader::Encoding::UNKNOWN_CHAR } # pack all our Unicode codepoints into a UTF-8 string ret = array_enc.pack("U*") # set the strings encoding correctly under ruby 1.9+ ret.force_encoding("UTF-8") if ret.respond_to?(:force_encoding) return ret end |