Por que o PDFBox e o PDFrenderer não podem suportar "fontes adicionais"?
-
23-09-2019 - |
Pergunta
Eu tenho um pdf que contém 'unicns-ucs2-h', experimentei o PDFBox e o PDFrenderer, todos eles lançam exceção: codificação desconhecida para 'unicns-ucs2-h'
E essa fonte foi incluída em um arquivo de fonte: mingliu.ttc (é um arquivo de coleção de tipos verdadeiro, eu não sei que isso importa?
O que posso fazer para permitir que essas duas bibliotecas suportem fontes adicionais?
Solução
A codificação para uma fonte nos documentos PDF é especificada no objeto Dicionário de Fonte. A fonte que você está encontrando é codificada usando 'Unicns-UCS2-H', que até onde eu sei é uma variante da codificação chinesa.
O PDFBox suporta apenas 4 codificações:
- Pdfdoccencoding
- MacromanEncoding
- StandardEncoding
- Winansiencoding
Estes são definidos no objeto de dicionário de fonte dentro do fluxo PDF
(por exemplo: .../Encoding/WinAnsiEncoding/...
)
Quando o PDFBox encontra uma codificação desconhecida, a exceção relatada é mostrada.
Para obter mais informações sobre fontes nos documentos em PDF, consulte a Seção 9.5 a 9.8 do Especificação em PDF