PDF: fix 0x5c(backslash) escape processing in FPDF (#61).
Japanese CP932(Shift_JIS) and Traditional Chinese Big5 have 0x5c(backslash) problem. Contributed Jun NAITOH. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@5565 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
1 parent
ed3efeb960
commit
f62605c636
3 files changed
+3
-51
No files matched your search
+3
-9
@@ -642,10 +642,7 @@ class FPDF
|
||||
|
||||
def Text(x, y, txt)
|
||||
# Output a string
|
||||
txt.gsub!(')', '\\)')
|
||||
txt.gsub!('(', '\\(')
|
||||
txt.gsub!('\\', '\\\\')
|
||||
s=sprintf('BT %.2f %.2f Td (%s) Tj ET',x*@k,(@h-y)*@k,txt);
|
||||
s=sprintf('BT %.2f %.2f Td (%s) Tj ET',x*@k,(@h-y)*@k, escape(txt));
|
||||
s=s+' '+dounderline(x,y,txt) if @underline and txt!=''
|
||||
s='q '+@TextColor+' '+s+' Q' if @ColorFlag
|
||||
out(s)
|
||||
@@ -719,14 +716,11 @@ class FPDF
|
||||
else
|
||||
dx=@cMargin
|
||||
end
|
||||
txt = txt.gsub(')', '\\)')
|
||||
txt.gsub!('(', '\\(')
|
||||
txt.gsub!('\\', '\\\\')
|
||||
if @ColorFlag
|
||||
s=s+'q '+@TextColor+' '
|
||||
end
|
||||
s=s+sprintf('BT %.2f %.2f Td (%s) Tj ET',
|
||||
(@x+dx)*@k,(@h-(@y+0.5*h+0.3*@FontSize))*@k,txt)
|
||||
(@x+dx)*@k,(@h-(@y+0.5*h+0.3*@FontSize))*@k,escape(txt))
|
||||
s=s+' '+dounderline(@x+dx,@y+0.5*h+0.3*@FontSize,txt) if @underline
|
||||
s=s+' Q' if @ColorFlag
|
||||
if link and link != ''
|
||||
@@ -1538,7 +1532,7 @@ class FPDF
|
||||
|
||||
def escape(s)
|
||||
# Add \ before \, ( and )
|
||||
s.gsub('\\','\\\\').gsub('(','\\(').gsub(')','\\)')
|
||||
s.gsub('\\','\\\\\\').gsub('(','\\(').gsub(')','\\)')
|
||||
end
|
||||
|
||||
def putstream(s)
|
||||
|
||||
Reference in new issue
Block a user