2010/04/11 03:03
PDF하면 정말 유명한 곳이 있습니다. 바로 어도비죠. 그래서 많은 분들이 PDF를 보기 위해서 Adobe Reader(버전업을 하면서 이름이 바뀐거 같은데 기억이;;)를 설치하고 있습니다.

하지만 이놈은 PDF를 단순히 보기만 원하는 사람한테는 무겁다고 느리다는 단점이 있습니다.

그래서 전 Foxit Reader를 사용하고 있었는데 얼마전 ZipNall 사이트의 PDF+를 알게 되었습니다.


PDF+는 굉장히 가볍고 빠릅니다. 라이센스 또한 프리웨어입니다.

아래는 홈페이지의 설명입니다.


 

PDF 문서 형식을 열수 있는 대표적인 뷰어로 Adobe Reader가 있습니다만, 상당히 고용량이고 자원 점유율이 높아서 한번 실행시키기 부담스러울 때가 있죠. 이 프로그램은 Adobe Reader 보다 간소하게 PDF 문서를 읽어낼수 있습니다. 간단히 확인할 때의 용도로 사용해 보세요.



* 기업, 단체등 어느 누구나 무료로 사용할 수 있습니다.



 PDF+는 작고, 설치가 필요 없이 복사만 해도 실행이 잘 되는 PDF 뷰어 입니다.


 PDF+는 기다릴 필요 없이 즉시 PDF파일을 열어서 볼 수 있는 가볍고 빠른 PDF뷰어입니다.


PDF+는 뷰어 및 인쇄, 찾기 등 기본적인 PDF 뷰어의 기능이 모두 포함되어있습니다.


PDF+는 위도우 95/98/NT/2000/XP/2003 에서 모두 실행이 가능하고 기업, 관공서, 단체 및 개인등이 무료로 사용할 수 있는 완전 무료 PDF뷰어 입니다.


PDF+는 미국 Fox-it 소프트웨어사의 기술력으로 개발된 안정된 PDF뷰어 입니다.


참고로 Fox-it PDF Reader의 한글화 된 버전이 돌고 있습니다. 이것은 명백히 불법 자료 이므로.. 사용을 하지 말아달라는 Fox-it사의 요청이 있었습니다.

크리에이티브 커먼즈 라이선스
Creative Commons License
2009/12/23 17:15

※ 이 글은 박인서님의 블로그에서 퍼온글입니다.

redmine 에서 Gantt Chart 에서 한글이 제대로 나오는 것을 확인 한 후, pdf 에서 한글이 나오지 않는 이유를 몰라 한참을 헤매다가 결국 방법을 알았습니다.

redmine/app/helpers 에 있는 ifpdf_helper.rb 에 language 가 한글로 되어 있을 때 pdf에 UHC Font 를 출력하는 routine 이 빠져 있었고, redmine\vendor/plugins/rfpdf/lib/rfpdf
에 있는 korean.rb 에 일부 오류가 있었습니다.

ifpdf_helper.rb 는 다음과 같이 고칩니다. (0.80 기준)

[code]
    when 'zh-tw'
       extend(PDF_Chinese)
       AddBig5Font()
      @font_for_content = 'Big5'
       @font_for_footer = 'Big5'
    
when 'ko'
       extend(PDF_Korean)
       AddUHCFont()
       @font_for_content = 'UHC'
       @font_for_footer = 'UHC'

[/code]

그리고, korean.rb 는 다음과 같이 고칩니다.

[code]
  def AddUHCFont(family='UHC',name='HYGoThic-Medium')
   #Add UHC font with proportional
   cw=UHC_widths
cMap='KSCms-UHC-H'
   registry={'ordering'=>'Korea1','supplement'=>1}
   AddCIDFonts(family,name,cw,cMap,registry)
  end

  def AddUHChwFont(family='UHC-hw',name='HYGoThic-Medium')
   #Add UHC font with half-witdh Latin
   32.upto(126) do |i|
    cw[i.chr]=500
   end
 cMap='KSCms-UHC-HW-H'
   registry={'ordering'=>'Korea1','supplement'=>1}
   AddCIDFonts(family,name,cw,cMap,registry)
  end
[/code]

(사실상 고딕체가 출력되게 할 뿐이지, 윗부분이 잘못된 것은 아닙니다.)

문제 부분은 아래 부분입니다.

[code]
  def MultiCell(w,h,txt,border=0,align='L',fill=0)
   if(@CurrentFont['type']=='Type0')
    MBMultiCell(w,h,txt,border,align,fill)
   else
    super(w,h,txt,border,align,fill)
 end
  end

  def MBMultiCell(w,h,txt,border=0,align='L',fill=0)
   #Multi-byte version of MultiCell()
   cw=@CurrentFont['cw']
   if(w==0)
    w=@w-@rMargin-@x
 end
   wmax=(w-2*@cMargin)*1000/@FontSize
   s=txt.gsub("\r",'')
   nb=s.length
   if(nb>0 and s[nb-1]=="\n")
    nb-=1
 end
   b=0
   if(border)
    if(border==1)
     border='LTRB'
     b='LRT'
     b2='LR'
    else
     b2=''
     if(border.to_s.index('L'))
      b2+='L'
   end
     if(border.to_s.index('R'))
      b2+='R'
   end
     b=border.to_s.index('T') ? b2+'T' : b2
    end
   end
   sep=-1
   i=0
   j=0
   l=0
   nl=1
   while(i<nb)
    #Get next character
    c=s[i]
    #Check if ASCII or MB
    ascii=(c<128)
    if(c.chr=="\n")
     #Explicit line break
     Cell(w,h,s[j,i-j],b,2,align,fill)
     i+=1
     sep=-1
     j=i
     l=0
     nl+=1
     if(border and nl==2)
      b=b2
   end
     next
    end
    if(!ascii)
     sep=i
     ls=l
    elsif(c==' ')
     sep=i
     ls=l
    end
    l+=ascii ? (cw[c.chr] || 0) : 1100
    if(l>wmax)
     #Automatic line break
     if(sep==-1 or i==j)
      if(i==j)
       i+=ascii ? 1 : 3
    end
      Cell(w,h,s[j,i-j],b,2,align,fill)
     else
      Cell(w,h,s[j,sep-j],b,2,align,fill)
      i=(s[sep]==' ') ? sep+1 : sep
     end
     sep=-1
     j=i
     l=0
#     nl+=1
     if(border and nl==2)
      b=b2
     end
    else
     i+=ascii ? 1 : 3
    end
   end
   #Last chunk
   if(border and not border.to_s.index('B').nil?)
    b+='B'
 end
   Cell(w,h,s[j,i-j],b,2,align,fill)
   @x=@lMargin
  end
[/code]

즉,   def MBMultiCell(w,h,txt,border=0,align='L',fill=0) 의 부분을 chinese.rb 화일의 것으로 교체했습니다.

아래 windows 용 rb 화일을 첨부합니다.

크리에이티브 커먼즈 라이선스
Creative Commons License