2012-01-22 1 views
0

@font-face을 사용하여 UTF-8 글꼴을 사용하는 경우에도 중국어 문자가 표시되지 않는 곳에 문제가있었습니다. 그것은뿐만 아니라 이미지를 표시 할 수없는 것으로 밝혀졌습니다 ... 그래서 나는 내 PDF 파일에 포함 된 파일 중 하나를 얻을 수없는 것 같습니다. 이미지/파일을 읽을 수 없습니다 pisa pdf Django python

내가 사용하는 코드입니다 :

def render_to_pdf(template_src, context_dict): 
    """Function to render html template into a pdf file""" 
    template = get_template(template_src) 
    context = Context(context_dict) 
    html = template.render(context) 
    result = StringIO.StringIO() 

    pdf = pisa.pisaDocument(StringIO.StringIO(html.encode("UTF-8")), 
              dest=result, 
              encoding='UTF-8', 
              link_callback=fetch_resources) 
    if not pdf.err: 
     response = http.HttpResponse(result.getvalue(), mimetype='application/pdf') 

     return response 

    return HttpResponse('We had some errors<pre>%s</pre>' % escape(html)) 

def fetch_resources(uri, rel): 
    import os.path 
    from django.conf import settings 
    path = os.path.join(
      settings.STATIC_ROOT, 
      uri.replace(settings.STATIC_URL, "")) 
    return path 

HTML 나는 SO에 다른 퀘스트 보았다

<img src="/static/images/bc_logo_bw_pdf.png" /> 

@font-face { 
     font-family: "Wingdings"; 
     src: url("/static/fonts/wingdings.ttf"); 
    } 

하지만 어쩔 없었다. 또한 두 가지 기능에서 예외가 발생하지 않습니다. 또한 fetch_resources 기능에서 반환 된 경로는 파일의 올바른 전체 경로 (예 : /home/<user>/project/static/images/bc_logo_bw_pdf.png/home/<user>/project/static/fonts/wingdings.ttf)이며 무엇이 잘못 되었습니까?

내가 PDF를 생성 매번, 나는 이것이 관련이있을 수있는 콘솔

No handlers could be found for logger "ho.pisa" 

에이 메시지가 UPDATE?

업데이트 # 2

글꼴 내가 바보 같은 실수 ... 나는 중국의 유니 코드를 가지고 있지 않은 사용 된 폰트를 만들어 작동합니다. 하지만 여전히 jpeg, gif 또는 png 일지라도 pdf에 이미지를 삽입 할 수는 없습니다.

+2

글꼴에 실제로 한자가 있습니까? Fount는 유니 코드 일 수 있지만 여전히 일부 문자가 부족합니다. –

+0

'logger' 문제와 관련이 없습니다 (무해 함) – plaes

+0

의견을 보내 주셔서 감사합니다. 이제는 글꼴이 작동하지만 이미지가 여전히 작동하지 않습니다 – zentenk

답변

-2

여기에도 같은 문제가 있습니다. XHTML2PDF Pisa를 포기하지 마십시오.
피사는 PIL을 사용하여 PDF를 생성하고 이미지를 삽입하기 위해 lib zip 디코더를 사용합니다. 당신의 PIL 이미 우편 디코더, 글꼴 및 여러 구성 요소

내가 우편 디코더 PIL를 설치하여이 문제를 해결해야

제대로 설치된 경우
당신은 확인해야합니다. 더 자세한 정보가 필요하면
http://obroll.com/install-python-pil-python-image-library-on-ubuntu-11-10-oneiric/

, 당신은 여기 내 기사를 읽을 수 있습니다 : http://obroll.com/how-to-load-images-files-style-css-in-pdf-using-pisa-xhtml2pdf-on-django/

+0

귀하의 사이트에서 지침을 시도했지만 여전히 작동하지 않습니다 : ( – zentenk

+0

이 나를 위해 작동하지 않습니다. –

3

나는 마침내 내가 설정 한 경우 작동하지 않습니다 밝혀 ... 내가 가지고 있던 문제를 해결 한 body 님의 높이가 CSS로 ... 일단 해당 선을 제거하면 이미지가 완벽하게로드됩니다 ...

0

나를 위해 (django 1.4, python 2.7 pisa == 3.0.33) 전체 경로를 넣으면 친척이 아닌 이미지로, 그것은 나를 위해 일합니다. 동일한 작업을 시도해보십시오.

0

모두 좋아 보인다. JPG 이미지 파일로 한번 시도하십시오. 내 경우에는 PNG 파일도 작동하지 않았다. widthheight 속성 이미지없이

<img src="/static/images/<name>.jpg" /> 
0

이 작동하지 않습니다. width 및 height 속성을 추가하십시오.

<img src="{% static 'images/logo.png' %}" alt="image" width="200" height="150" /> 

이 수정 프로그램은 저에게 적합합니다.