В данный момент я могу добавить поле формы в PDF-файл, но когда я пытаюсь сделать это поле предварительно заполненным, я сталкиваюсь с проблемами кодировки символов. В чешском языке используется множество специальных символов (áéěžčš...), которые я не могу правильно ввести в поле формы. Я могу правильно отобразить текст в потоке в (...) Tj, но значение (по умолчанию) в записи /V всегда нарушает кодировку.
Прежде всего, я убедился, что использую подходящий шрифт, включающий эти символы. (К сожалению, Helvetica по умолчанию и другие шрифты, включенные в Zend PDF, не имеют этих символов «определенными»?) Чтобы отобразить значение в (...) Tj, я использую собственный Zend PDF >$font->encodeString($value, 'UTF-8'), которая работает нормально. Использование той же функции для получения значения в записи /V просто не работает. Я пробовал это с разными кодировками, без кодирования значения... Но просто не могу заставить его работать правильно.
Я наткнулся на аналогичную проблему здесь: но не могу найти способ обойти кодировку, используя это либо.
Я пытался создать пустую форму, записать значение, сохранить PDF-файл и проверить исходный код результата. (Это работало только в Mozilla, потому что Acrobat Reader кодирует весь PDF-файл, а Chrome добавляет свои собственные шрифты... Mozilla только переопределяет виджет, добавляя его в снова заполненный конец файла.) Значение в записи /V почти равно значению то же, что и мое закодированное значение в (...) Tj, в начале у него есть только "ţ˙". Я понятия не имею, как туда поместить и есть ли это то, что имеет решающее значение.

Можете ли вы, удивительные люди, придумать, как отобразить чешские специальные символы в значении поля?
И снова похоже, что Acrobat игнорирует шрифт, который я установил для поле (но, по крайней мере, при заполнении поля оно имеет шрифт с чешскими символами), а у Chrome есть некоторые проблемы с шириной символов - или я снова пропустил что-то действительно очевидное.

Кроме того, я заметил, что шрифты Zend PDF по умолчанию нет этих специальных символов, хотя я точно знаю, что они есть и в Times, и в Courier. (Я думал, что они тоже должны быть в Helvetica.) Есть ли способ обновить шрифты Zend PDF, чтобы они включали эти символы?
Я загружаю два PDF-файла, один пустой, второй другое имеет предварительно заполненное значение.
Тестовая строка, которую мы можем использовать: «€ Příliš žluťoučký kůň» (знак € предназначен только для добавления дополнительных символов, остальное — обычная тестовая строка для чешских шрифтов.)
https ://filetransfer.io/data-package/i14YBMbv#link
Вот исходный код PDF-файла без заполненного значения:
(мне пришлось удалить содержимое потоки шрифтов, поэтому сообщение соответствует установленному здесь лимиту символов)
%PDF-1.5
%âăĎÓ
1 0 obj
endobj
2 0 obj
endobj
3 0 obj
stream
/Tx BMC
BT
/F1 11 Tf 0 g
0 0 Td
() Tj
ET
EMC
endstream
endobj
4 0 obj
endobj
5 0 obj
[]
endobj
6 0 obj
endobj
7 0 obj
endobj
8 0 obj
endobj
9 0 obj
stream
/F1 14 Tf
0 g
BT
40 400 Td
( ¬ PY í l ia ~ l ue o u\r k ý koH) Tj
ET
1 g
200 395 150 30 re
S
endstream
endobj
10 0 obj
endobj
11 0 obj
stream
/CIDInit /ProcSet findresource begin
12 dict begin
begincmap
/CIDSystemInfo
def
/CMapName /Adobe-Identity-UCS def
/CMapType 2 def
1 begincodespacerange
endcodespacerange
1 beginbfrange
< b r / > e n d b f r a n g e < b r / > e n d c m a p < b r / > C M a p N a m e c u r r e n t d i c t / C M a p d e f i n e r e s o u r c e p o p < b r / > e n d e n d < b r / > e n d s t r e a m < b r / > e n d o b j < b r / > 1 2 0 o b j < b r / > & l t ; & l t ; / T y p e / F o n t / B a s e F o n t / M o n t s e r r a t - R e g u l a r / D W 6 0 0 / W 1 3 0 R / C I D S y s t e m I n f o 1 4 0 R / S u b t y p e / C I D F o n t T y p e 2 / F o n t D e s c r i p t o r 16 0 R
/CIDToGIDMap 17 0 R >>
endobj
13 0 obj
[0 [0 ] 13 [262 ] 32 [262 260 373 696 615 829 669 202 ] 40 41 329 42 [386 575 212 382 212 335 662 361 568 564 661 566 609 589 638 609 ]
58 59 212 60 62 575 63 [567 1033 717 754 719 826 669 633 773 813 302 501 711 589 955 813 839 718 839 723 615 574 792 698 1111 656 635 651 318 335 318 576
500 ]
97 [590 678 563 678 604 339 686 677 269 274 601 269 1061 677 627 ] 112 113 678 114 [401 489 406 673 542 879 534 542 511 334 295 334 575 ]
160 [262 260 563 637 700 695 295 490 ] 169 [809 401 477 575 382 809 ] 176 [419 575 ] 178 179 430 181 [678 632 252 ] 185 [430 414 477 ]
188 190 1029 191 [567 ] 192 197 717 198 [1033 719 ] 200 203 669 204 207 302 208 [831 813 ] 210 214 839 215 [575 839 ] 217 220 792
221 [635 718 668 ] 224 229 590 230 [986 563 ] 232 235 604 236 239 269 240 [633 677 ] 242 246 627 247 [575 627 ] 249 252 673 253 [542 678 542 717 590 717 590 717 590 719 563 719 563 719 563 719 563 826 678 831 678 669 604 669 604 669 604 669 604 669 604 773
686 773 686 773 686 773 686 813 677 823 677 302 269 302 269 302 269 302 269 302 269 718 543 501 274 711 601 590 589 269 589 269 589
269 589 314 594 279 813 677 813 677 813 677 721 813 677 839 627 839 627 839 627 1121 1068 723 401 723 401 723 401 615 489 615 489
615 489 615 489 574 406 574 406 574 416 792 673 792 673 792 673 792 673 792 673 792 673 1111 879 635 542 635 651 511 651 511 651
511 295 ]
399 [817 ] 402 [438 ] 416 [839 627 ] 431 [797 679 ] 439 [615 ] 452 [1456 1337 1202 1090 863 543 1315 1087 951 717 590 ] 467 [792 673 ]
484 [806 691 773 686 711 601 839 627 ] 494 [615 514 ] 506 [717 590 1033 986 839 627 717 590 717 590 669 604 669 604 302 269 302 269 839 627 839 627 723 401 723 401 792 673 792 673 615 489
574 406 ]
542 [813 677 ] 554 [839 627 839 627 ] 560 [839 627 635 542 ] 567 [274 ] 601 [604 ] 658 [514 ] 697 [202 373 266 222 ] 712 [166 ] 716
[166 ] 768 772 0 774 780 0 783 [0 ] 785 786 0 795 [0 ] 803 804 0 806 808 0 814 [0 ] 817 [0 ] 821 824 0 916 [717 ] 937 [902 ] 956
[678 ] 960 [722 ] 1024 1025 659 1026 [825 572 707 627 309 302 527 1186 1184 835 702 824 680 806 744 727 749 572 794 659 1011 636 ]
1048 1049 824 1050 [702 785 963 821 851 825 710 716 588 680 917 650 827 731 1094 1117 820 978 710 706 1092 732 583 659 608 475 651 618 826 534 ]
1080 1081 688 1082 [581 632 790 675 636 674 686 563 473 558 785 526 684 599 ] 1096 1097 929 1098 [621 785 563 571 865 606 625 618 671 475 572 528 273 269 274 921 944 670 581 688 558 639 ]
1122 [802 596 ] 1130 [884 680 ] 1138 [851 646 748 576 ] 1162 [848 708 735 593 732 697 575 449 608 502 701 592 1052 862 636 534 748 581 728 597 724 581 813 646 845 694 1088 877 ]
1192 [972 794 716 563 588 473 652 559 652 559 690 526 967 757 755 620 731 599 731 670 974 752 974 752 310 1011 826 702 581 ] 1222
[652 816 682 845 695 728 597 992 816 274 744 583 744 583 1026 990 659 625 824 617 824 617 1011 826 636 534 615 514 824 688 824 688
851 636 851 646 851 646 706 571 680 558 680 558 680 558 731 599 572 475 978 785 609 478 651 524 668 555 ]
1296 [635 534 787 632 ] 1306 [855 686 1072 928 ] 1316 [849 674 798 692 817 675 ] 1326 [809 651 ] 7688 [719 563 ] 7692 [826 678 826 678 ]
7700 [669 604 669 604 ] 7708 [669 604 ] 7712 [773 686 ] 7716 [813 677 ] 7722 [813 677 ] 7726 [302 269 ] 7734 [589 269 ] 7738 [589 269 ]
7746 [955 1061 813 677 813 677 813 677 813 677 839 627 839 627 839 627 839 627 ] 7770 [723 401 ] 7774 [723 401 615 489 615 489 615 489 615 489 615 489 ]
7788 [574 406 574 406 ] 7800 [792 673 792 673 ] 7808 [1111 879 1111 879 1111 879 ] 7822 [635 542 ] 7826 [651 511 ] 7831 [406 ] 7838
[756 ] 7840 [717 590 717 590 717 590 717 590 717 590 717 590 717 590 717 590 717 590 717 590 717 590 717 590 669 604 669 604 669 604 669 604
669 604 669 604 669 604 669 604 302 269 302 269 839 627 839 627 839 627 839 627 839 627 839 627 839 627 839 627 839 627 839 627 839
631 839 627 792 673 792 673 797 679 797 679 797 679 797 679 797 679 635 542 635 542 635 542 635 542 ]
8199 [700 212 131 100 0 ] 8208 [382 ] 8210 [700 500 ] 8212 8213 1000 8216 8218 212 8220 8222 382 8224 8225 547 8226 [295 ] 8230 [647 ]
8240 [1190 ] 8242 [202 373 ] 8249 8250 299 8260 [169 ] 8274 [514 ] 8304 [430 ] 8308 8313 430 8320 8329 430 8353 [719 ] 8355 [654 637 ]
8358 [870 1617 ] 8361 [1171 ] 8363 [678 802 628 674 ] 8369 [833 773 ] 8372 [825 719 ] 8376 8377 718 8378 [695 ] 8380 [919 739 ] 8383
[817 ] 8467 [466 ] 8470 [1200 ] 8482 [1021 ] 8486 [902 ] 8490 [711 717 ] 8494 [887 ] 8531 8532 1029 8539 8542 1029 8596 [687 ] 8706
[700 ] 8709 [575 717 ] 8719 [813 ] 8721 [651 575 ] 8725 [335 ] 8729 [272 796 ] 8734 [920 ] 8747 [385 ] 8776 [575 ] 8800 [575 ] 8804
8805 575 9664 [601 ] 9674 [501 ] 10216 10217 320 42891 [241 240 ] 64257 [608 609 ] 65535 [587 ] ]
endobj
14 0 obj
endobj
15 0 obj
stream
... % removed so the content fit's the post limit
endstream
endobj
16 0 obj
endobj
17 0 obj
stream
... % removed so the content fit's the post limit
endstream
endobj
xref
0 18
0000000000 65535 f
0000000015 00000 n
0000000123 00000 n
0000000181 00000 n
0000000439 00000 n
0000000632 00000 n
0000000651 00000 n
0000000685 00000 n
0000000719 00000 n
0000000953 00000 n
0000001110 00000 n
0000001257 00000 n
0000001670 00000 n
0000001841 00000 n
0000006551 00000 n
0000006621 00000 n
0000130775 00000 n
0000130993 00000 n
trailer
startxref
133246
%%EOF
А вот код для PDF с предварительно заполненным значением:
%PDF-1.5
%âăĎÓ
1 0 obj
endobj
2 0 obj
endobj
3 0 obj
stream
/Tx BMC
BT
/F1 11 Tf 0 g
0 8.2955 Td
( ¬ PY í l ia ~ l ue o u\r k ý koH) Tj
ET
EMC
endstream
endobj
4 0 obj
endobj
5 0 obj
[]
endobj
6 0 obj
endobj
7 0 obj
endobj
8 0 obj
endobj
9 0 obj
stream
/F1 14 Tf
0 g
BT
40 400 Td
( ¬ PY í l ia ~ l ue o u\r k ý koH) Tj
ET
1 g
200 395 150 30 re
S
endstream
endobj
10 0 obj
endobj
11 0 obj
stream
/CIDInit /ProcSet findresource begin
12 dict begin
begincmap
/CIDSystemInfo
def
/CMapName /Adobe-Identity-UCS def
/CMapType 2 def
1 begincodespacerange
endcodespacerange
1 beginbfrange
< b r / > e n d b f r a n g e < b r / > e n d c m a p < b r / > C M a p N a m e c u r r e n t d i c t / C M a p d e f i n e r e s o u r c e p o p < b r / > e n d e n d < b r / > e n d s t r e a m < b r / > e n d o b j < b r / > 1 2 0 o b j < b r / > & l t ; & l t ; / T y p e / F o n t / B a s e F o n t / M o n t s e r r a t - R e g u l a r / D W 6 0 0 / W 1 3 0 R / C I D S y s t e m I n f o 1 4 0 R / S u b t y p e / C I D F o n t T y p e 2 / F o n t D e s c r i p t o r 16 0 R
/CIDToGIDMap 17 0 R >>
endobj
13 0 obj
[0 [0 ] 13 [262 ] 32 [262 260 373 696 615 829 669 202 ] 40 41 329 42 [386 575 212 382 212 335 662 361 568 564 661 566 609 589 638 609 ]
58 59 212 60 62 575 63 [567 1033 717 754 719 826 669 633 773 813 302 501 711 589 955 813 839 718 839 723 615 574 792 698 1111 656 635 651 318 335 318 576
500 ]
97 [590 678 563 678 604 339 686 677 269 274 601 269 1061 677 627 ] 112 113 678 114 [401 489 406 673 542 879 534 542 511 334 295 334 575 ]
160 [262 260 563 637 700 695 295 490 ] 169 [809 401 477 575 382 809 ] 176 [419 575 ] 178 179 430 181 [678 632 252 ] 185 [430 414 477 ]
188 190 1029 191 [567 ] 192 197 717 198 [1033 719 ] 200 203 669 204 207 302 208 [831 813 ] 210 214 839 215 [575 839 ] 217 220 792
221 [635 718 668 ] 224 229 590 230 [986 563 ] 232 235 604 236 239 269 240 [633 677 ] 242 246 627 247 [575 627 ] 249 252 673 253 [542 678 542 717 590 717 590 717 590 719 563 719 563 719 563 719 563 826 678 831 678 669 604 669 604 669 604 669 604 669 604 773
686 773 686 773 686 773 686 813 677 823 677 302 269 302 269 302 269 302 269 302 269 718 543 501 274 711 601 590 589 269 589 269 589
269 589 314 594 279 813 677 813 677 813 677 721 813 677 839 627 839 627 839 627 1121 1068 723 401 723 401 723 401 615 489 615 489
615 489 615 489 574 406 574 406 574 416 792 673 792 673 792 673 792 673 792 673 792 673 1111 879 635 542 635 651 511 651 511 651
511 295 ]
399 [817 ] 402 [438 ] 416 [839 627 ] 431 [797 679 ] 439 [615 ] 452 [1456 1337 1202 1090 863 543 1315 1087 951 717 590 ] 467 [792 673 ]
484 [806 691 773 686 711 601 839 627 ] 494 [615 514 ] 506 [717 590 1033 986 839 627 717 590 717 590 669 604 669 604 302 269 302 269 839 627 839 627 723 401 723 401 792 673 792 673 615 489
574 406 ]
542 [813 677 ] 554 [839 627 839 627 ] 560 [839 627 635 542 ] 567 [274 ] 601 [604 ] 658 [514 ] 697 [202 373 266 222 ] 712 [166 ] 716
[166 ] 768 772 0 774 780 0 783 [0 ] 785 786 0 795 [0 ] 803 804 0 806 808 0 814 [0 ] 817 [0 ] 821 824 0 916 [717 ] 937 [902 ] 956
[678 ] 960 [722 ] 1024 1025 659 1026 [825 572 707 627 309 302 527 1186 1184 835 702 824 680 806 744 727 749 572 794 659 1011 636 ]
1048 1049 824 1050 [702 785 963 821 851 825 710 716 588 680 917 650 827 731 1094 1117 820 978 710 706 1092 732 583 659 608 475 651 618 826 534 ]
1080 1081 688 1082 [581 632 790 675 636 674 686 563 473 558 785 526 684 599 ] 1096 1097 929 1098 [621 785 563 571 865 606 625 618 671 475 572 528 273 269 274 921 944 670 581 688 558 639 ]
1122 [802 596 ] 1130 [884 680 ] 1138 [851 646 748 576 ] 1162 [848 708 735 593 732 697 575 449 608 502 701 592 1052 862 636 534 748 581 728 597 724 581 813 646 845 694 1088 877 ]
1192 [972 794 716 563 588 473 652 559 652 559 690 526 967 757 755 620 731 599 731 670 974 752 974 752 310 1011 826 702 581 ] 1222
[652 816 682 845 695 728 597 992 816 274 744 583 744 583 1026 990 659 625 824 617 824 617 1011 826 636 534 615 514 824 688 824 688
851 636 851 646 851 646 706 571 680 558 680 558 680 558 731 599 572 475 978 785 609 478 651 524 668 555 ]
1296 [635 534 787 632 ] 1306 [855 686 1072 928 ] 1316 [849 674 798 692 817 675 ] 1326 [809 651 ] 7688 [719 563 ] 7692 [826 678 826 678 ]
7700 [669 604 669 604 ] 7708 [669 604 ] 7712 [773 686 ] 7716 [813 677 ] 7722 [813 677 ] 7726 [302 269 ] 7734 [589 269 ] 7738 [589 269 ]
7746 [955 1061 813 677 813 677 813 677 813 677 839 627 839 627 839 627 839 627 ] 7770 [723 401 ] 7774 [723 401 615 489 615 489 615 489 615 489 615 489 ]
7788 [574 406 574 406 ] 7800 [792 673 792 673 ] 7808 [1111 879 1111 879 1111 879 ] 7822 [635 542 ] 7826 [651 511 ] 7831 [406 ] 7838
[756 ] 7840 [717 590 717 590 717 590 717 590 717 590 717 590 717 590 717 590 717 590 717 590 717 590 717 590 669 604 669 604 669 604 669 604
669 604 669 604 669 604 669 604 302 269 302 269 839 627 839 627 839 627 839 627 839 627 839 627 839 627 839 627 839 627 839 627 839
631 839 627 792 673 792 673 797 679 797 679 797 679 797 679 797 679 635 542 635 542 635 542 635 542 ]
8199 [700 212 131 100 0 ] 8208 [382 ] 8210 [700 500 ] 8212 8213 1000 8216 8218 212 8220 8222 382 8224 8225 547 8226 [295 ] 8230 [647 ]
8240 [1190 ] 8242 [202 373 ] 8249 8250 299 8260 [169 ] 8274 [514 ] 8304 [430 ] 8308 8313 430 8320 8329 430 8353 [719 ] 8355 [654 637 ]
8358 [870 1617 ] 8361 [1171 ] 8363 [678 802 628 674 ] 8369 [833 773 ] 8372 [825 719 ] 8376 8377 718 8378 [695 ] 8380 [919 739 ] 8383
[817 ] 8467 [466 ] 8470 [1200 ] 8482 [1021 ] 8486 [902 ] 8490 [711 717 ] 8494 [887 ] 8531 8532 1029 8539 8542 1029 8596 [687 ] 8706
[700 ] 8709 [575 717 ] 8719 [813 ] 8721 [651 575 ] 8725 [335 ] 8729 [272 796 ] 8734 [920 ] 8747 [385 ] 8776 [575 ] 8800 [575 ] 8804
8805 575 9664 [601 ] 9674 [501 ] 10216 10217 320 42891 [241 240 ] 64257 [608 609 ] 65535 [587 ] ]
endobj
14 0 obj
endobj
15 0 obj
stream
... % removed so the content fit's the post limit
endstream
endobj
16 0 obj
endobj
17 0 obj
stream
... % removed so the content fit's the post limit
endstream
endobj
xref
0 18
0000000000 65535 f
0000000015 00000 n
0000000123 00000 n
0000000181 00000 n
0000000489 00000 n
0000000733 00000 n
0000000752 00000 n
0000000786 00000 n
0000000820 00000 n
0000001054 00000 n
0000001211 00000 n
0000001358 00000 n
0000001771 00000 n
0000001942 00000 n
0000006652 00000 n
0000006722 00000 n
0000130876 00000 n
0000131094 00000 n
trailer
startxref
133347
%%EOF
Подробнее здесь: https://stackoverflow.com/questions/782 ... characters
Мобильная версия