2014-10-21 7 views
0

PyX pdf 파일에 삽입하려는 UTF-8 문자 집합이 있습니다. # -*- coding: utf-8 -*-을 파일 상단에 포함 시켰습니다. 코드는 다음과 다소 비슷합니다.pyx 캔버스에 유니 코드 텍스트 삽입

# -*- coding: utf-8 -*- 
c = canvas.canvas() 
txt = "u'aあä'" 
c.text(2, 2, "ID: %s"%txt) 
c.writeEPSfile("filename.eps") 

하지만이 문제를 해결할 수는 없습니다.

오류 :

'ascii' codec can't encode character u'\xae' in position 47: ordinal not in range(128) 
+0


우리에게 pdf 파일에 일부 콘텐츠를 삽입하는 방법에 대한 코드를 표시합니다. –

+0

질문에 코드를 추가했습니다. – pariwesh

답변

0

이 시도 :

# -*- coding: utf-8 -*- 
c = canvas.canvas() 
txt = u'aあä'.encode('utf-8') 
c.text(1, 4, "UID: %s"%(txt)) 
c.writeEPSfile("filename.eps") 
+0

다시 오류가 발생합니다 : 'ascii'코덱은 3 위치의 바이트 0xe3을 디코딩 할 수 없습니다. 서수가 범위 내에 없습니다 (128) – pariwesh

+0

@ user3280299 업데이트를 확인하십시오. 유니 코드 객체로 인코딩해야합니다. –

+0

코드에 편집 내용을 추가했지만 여전히 위의 오류가 발생합니다 – pariwesh

0

당신은 설정 PYX는 (라) TeX의 유니 코드 문자를 통과 할 수 있습니다. 그러면 TeX/LaTeX 내에서 문제의 문자를 생성하는 것이 모두 문제가됩니다.

from pyx import * 

text.set(cls=text.LatexRunner, texenc='utf-8') 
text.preamble(r'\usepackage[utf8]{inputenc}') 
text.preamble(r'\usepackage{newunicodechar}') 
text.preamble(r"\newunicodechar{あ}{{\usefont{U}{min}{m}{n}\symbol{'102}}}") 
text.preamble(r'\DeclareFontFamily{U}{min}{}') 
text.preamble(r'\DeclareFontShape{U}{min}{m}{n}{<-> udmj30}{}') 

c = canvas.canvas() 
c.text(0, 0, 'UID: aあä') 
c.writeGSfile('utf8.png') 

(여기에 업로드로 PNG로)이 직접 출력 결과 :이 파이썬 3 PYX 0.13를 사용하여 수행되었다 program output

참고 여기에 문제의 출력을 생성하는 대신 최소한의 솔루션입니다 오히려 표준 LaTeX 설치입니다. 또한 LaTeX에서 해당 문자를 만드는 방법에 대한 정보를 https://tex.stackexchange.com/questions/171611/how-to-write-a-single-hiragana-character-in-latex에서 사용했습니다. LaTeX 내에서 유니 코드 문자로 직접 사용하기 위해 모든 종류의 문자를 설정하는 CJKutf8과 같은 솔루션이있는 것 같지만, 이것은 내 경험에서 벗어나는 방법입니다. 어쨌든 모든 설정이 제대로 완료 되었다면 LaTeX 자체에서와 마찬가지로 PyX에서 정상적으로 작동해야합니다. 행운을 빕니다!

0

어쩌면 바벨 패키지에서 다음 세트를 찾을 수 있습니다. 독일어 ä (움라우트)을 삽입하려고했을 때 동일한 오류가 발생했습니다. 이 오류없이 가능했던, 그 후

text.preamble(r"\usepackage[ngerman]{babel}") 

:

c.text(12, 34, "äöüßß") 

제가 또한 UTF8 입력 부호화 사용한 I 그것뿐만 아니라 필요이 생각 I 단순히 독일 바벨 패키지를 첨가.

추가 읽기 : https://en.wikibooks.org/wiki/LaTeX/Internationalization
https://en.wikibooks.org/wiki/LaTeX/Fonts