Próbuję wstawić znak Unicode & # x2207; lub & # x25BD ;, co widać w pliku PDF wygenerowanym przez Apache FOP.Jak wyświetlić znak Unicode za pomocą Apache fop? Pokazywanie "?" zamiast charakteru.
To, co zrobiłem do tej pory:
Najpierw trzeba wiedzieć prawidłowego kodowy Unicode aby reprezentować znak według tej podstawowej pomocy Apache XSL-FO Input, że punkt kodowy Unicode można znaleźć w Unicode. org na liście operatorów matematycznych. Kod to
∇
& # x2207; NABLA, mógłbym także użyć▽
& # x25BD; trójkąt skierowany w dół.Po znalezieniu właściwego kodu muszę wybrać czcionkę zawierającą niezbędne glif i Adobe PostScript i PDF Specyfikacja określić Base-14 Font Character Mapping, które muszą być dostępne dla każdego tłumacza i PDF Reader PostScript, więc szukać na liście i czcionki Symbol zawiera & # x2207;
∇
, (brak czcionki zawiera & # x25BD;▽
odrzucono)Następnie przeszukać kod wynikowy myślę, że powinienem użyć w XSL: FO jest:
<fo:block font-family="Symbol"> ∇ </fo:block>
Problem jest, gdy generuje plik PDF, wynik nie jest tym, czego oczekiwałem "& # x2207;", ale zamiast tego pokazuje "?", czytam, że gdy nie może pokazać znaku, zwykle pokazuje "#", ale mój kod pokazuje "?".
Używam Apache FOP 0.95, podejrzewam, że jest to ta wersja, która powoduje problem, i powinienem zaktualizować do wersji 1.0, ale w tej chwili jest to wersja używana w produkcji, a lider zespołu powiedział, że jest to trudne w moment, aby go ulepszyć.
Czy jest to problem, może być coś innego poza wersją? Czy mógłbyś być czymś dummie, którego zapomniałem? Jak wyświetlić znak Unicode za pomocą Apache fop?
Próbowałem twój kod 'fo: block' w obu FOP 1.0 i FOP .95. W obu wersjach działało dobrze. Czy masz dostęp do stderr? Powinieneś otrzymać ostrzeżenie, jeśli jest problem z czcionką lub glifem. –
@ DevNull w rzeczywistości, nie testowałem jeszcze w FOP 1.0, tylko FOP .95, zaczynam się uczyć, czy możesz mi powiedzieć, jak mogę uzyskać dostęp do stderr, aby sprawdzić, czy jest to kwestia czcionki czy glifu? –
Prawdopodobnie robisz swój rozwój w IDE, takim jak Eclipse. Za każdym razem, gdy uruchamiasz swój kod, dane wyjściowe są wysyłane do konsoli; domyślnie (przynajmniej w Eclipse) pokaże stderr jako czerwone linie w tej konsoli. – Wivani