unipdf/render/render.go
2020-10-19 10:58:10 +00:00

25 lines
31 KiB
Go

//
// Copyright 2020 FoxyUtils ehf. All rights reserved.
//
// This is a commercial product and requires a license to operate.
// A trial license can be obtained at https://unidoc.io
//
// DO NOT EDIT: generated by unitwist Go source code obfuscator.
//
// Use of this source code is governed by the UniDoc End User License Agreement
// terms that can be accessed at https://unidoc.io/eula/
package render ;import (_d "errors";_a "fmt";_aa "github.com/adrg/sysfont";_cd "github.com/unidoc/unipdf/v3/common";_db "github.com/unidoc/unipdf/v3/contentstream";_ae "github.com/unidoc/unipdf/v3/core";_df "github.com/unidoc/unipdf/v3/internal/transform";_cc "github.com/unidoc/unipdf/v3/model";_ac "github.com/unidoc/unipdf/v3/render/internal/context";_gc "github.com/unidoc/unipdf/v3/render/internal/context/imagerender";_fb "image";_c "image/draw";_eg "image/jpeg";_f "image/png";_b "os";_g "path/filepath";_ec "strings";);func _bd (_be string ,_ce _fb .Image ,_ddf int )error {_gfc ,_ecee :=_b .Create (_be );if _ecee !=nil {return _ecee ;};defer _gfc .Close ();return _eg .Encode (_gfc ,_ce ,&_eg .Options {Quality :_ddf });};
// Render converts the specified PDF page into an image and returns the result.
func (_ea *ImageDevice )Render (page *_cc .PdfPage )(_fb .Image ,error ){_cg ,_ecg :=page .GetMediaBox ();if _ecg !=nil {return nil ,_ecg ;};_fd ,_ad :=_cg .Llx +_cg .Width (),_cg .Lly +_cg .Height ();_ef :=_gc .NewContext (int (_fd ),int (_ad ));if _bb :=_ea .renderPage (_ef ,page );_bb !=nil {return nil ,_bb ;};_gf :=_ef .Image ();if _fc :=page .CropBox ;_fc !=nil {_gb :=_fb .Rect (0,0,int (_fc .Width ()),int (_fc .Height ()));_ead :=_fb .Pt (int (_fc .Llx ),int (_ad -_fc .Ury ));_ece :=_fb .NewRGBA (_gb );_c .Draw (_ece ,_gb ,_gf ,_ead ,_c .Src );_gf =_ece ;};return _gf ,nil ;};
// RenderToPath converts the specified PDF page into an image and saves the
// result at the specified location.
func (_af *ImageDevice )RenderToPath (page *_cc .PdfPage ,outputPath string )error {_bg ,_bgc :=_af .Render (page );if _bgc !=nil {return _bgc ;};_ee :=_ec .ToLower (_g .Ext (outputPath ));if _ee ==""{return _d .New ("\u0063\u006ful\u0064\u0020\u006eo\u0074\u0020\u0072\u0065cog\u006eiz\u0065\u0020\u006f\u0075\u0074\u0070\u0075t \u0066\u0069\u006c\u0065\u0020\u0074\u0079p\u0065");};switch _ee {case "\u002e\u0070\u006e\u0067":return _eeb (outputPath ,_bg );case "\u002e\u006a\u0070\u0067","\u002e\u006a\u0070e\u0067":return _bd (outputPath ,_bg ,100);};return _a .Errorf ("\u0075\u006e\u0072\u0065\u0063\u006fg\u006e\u0069\u007a\u0065\u0064\u0020\u006f\u0075\u0074\u0070\u0075\u0074\u0020f\u0069\u006c\u0065\u0020\u0074\u0079\u0070e\u003a\u0020\u0025\u0073",_ee );};var (_dc =_d .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");_fa =_d .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072"););func _eeb (_dfa string ,_eb _fb .Image )error {_ff ,_dd :=_b .Create (_dfa );if _dd !=nil {return _dd ;};defer _ff .Close ();return _f .Encode (_ff ,_eb );};
// NewImageDevice returns a new image device.
func NewImageDevice ()*ImageDevice {return &ImageDevice {}};
// ImageDevice is used to render PDF pages to image targets.
type ImageDevice struct{renderer };type renderer struct{};func (_gbc renderer )renderPage (_ag _ac .Context ,_ade *_cc .PdfPage )error {_bc ,_bf :=_ade .GetAllContentStreams ();if _bf !=nil {return _bf ;};_ag .Translate (0,float64 (_ag .Height ()));_ag .Scale (1,-1);_ag .Push ();_ag .SetRGBA (1,1,1,1);_ag .DrawRectangle (0,0,float64 (_ag .Width ()),float64 (_ag .Height ()));_ag .Fill ();_ag .Pop ();_ag .SetLineWidth (1.0);_ag .SetRGBA (0,0,0,1);return _gbc .renderContentStream (_ag ,_bc ,_ade .Resources );};func (_ebd renderer )renderContentStream (_bff _ac .Context ,_aff string ,_bfa *_cc .PdfPageResources )error {_aee ,_gcb :=_db .NewContentStreamParser (_aff ).Parse ();if _gcb !=nil {return _gcb ;};_cb :=_bff .TextState ();_adeb :=map[string ]*_ac .TextFont {};_bbe :=_aa .NewFinder (&_aa .FinderOpts {Extensions :[]string {"\u002e\u0074\u0074\u0066","\u002e\u0074\u0074\u0063"}});_eee :=_db .NewContentStreamProcessor (*_aee );_eee .AddHandler (_db .HandlerConditionEnumAllOperands ,"",func (_dg *_db .ContentStreamOperation ,_gd _db .GraphicsState ,_efb *_cc .PdfPageResources )error {_cd .Log .Debug ("\u0050\u0072\u006f\u0063\u0065\u0073\u0073\u0069\u006e\u0067\u0020\u0025\u0073",_dg .Operand );switch _dg .Operand {case "\u0071":_bff .Push ();case "\u0051":_bff .Pop ();case "\u0063\u006d":if len (_dg .Params )!=6{return _fa ;};_dgg ,_gba :=_ae .GetNumbersAsFloat (_dg .Params );if _gba !=nil {return _gba ;};_fff :=_df .NewMatrix (_dgg [0],_dgg [1],_dgg [2],_dgg [3],_dgg [4],_dgg [5]);_cd .Log .Debug ("\u0047\u0072\u0061\u0070\u0068\u0069\u0063\u0073\u0020\u0073\u0074a\u0074\u0065\u0020\u006d\u0061\u0074\u0072\u0069\u0078\u003a \u0025\u002b\u0076",_fff );_bff .SetMatrix (_bff .Matrix ().Mult (_fff ));_aeb :=(_gd .CTM .ScalingFactorX ()+_gd .CTM .ScalingFactorY ())/2.0;_bff .SetLineWidth (_aeb *_bff .LineWidth ());case "\u0077":if len (_dg .Params )!=1{return _fa ;};_gcd ,_fae :=_ae .GetNumbersAsFloat (_dg .Params );if _fae !=nil {return _fae ;};_fg :=(_gd .CTM .ScalingFactorX ()+_gd .CTM .ScalingFactorY ())/2.0;_bff .SetLineWidth (_fg *_gcd [0]);case "\u004a":if len (_dg .Params )!=1{return _fa ;};_fbe ,_bbb :=_ae .GetIntVal (_dg .Params [0]);if !_bbb {return _dc ;};switch _fbe {case 0:_bff .SetLineCap (_ac .LineCapButt );case 1:_bff .SetLineCap (_ac .LineCapRound );case 2:_bff .SetLineCap (_ac .LineCapSquare );default:_cd .Log .Debug ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006c\u0069\u006ee\u0020\u0063\u0061\u0070\u0020\u0073\u0074\u0079\u006c\u0065:\u0020\u0025\u0064",_fbe );return _fa ;};case "\u006a":if len (_dg .Params )!=1{return _fa ;};_fe ,_affa :=_ae .GetIntVal (_dg .Params [0]);if !_affa {return _dc ;};switch _fe {case 0:_bff .SetLineJoin (_ac .LineJoinBevel );case 1:_bff .SetLineJoin (_ac .LineJoinRound );case 2:_bff .SetLineJoin (_ac .LineJoinBevel );default:_cd .Log .Debug ("I\u006e\u0076\u0061\u006c\u0069\u0064 \u006c\u0069\u006e\u0065\u0020\u006a\u006f\u0069\u006e \u0073\u0074\u0079l\u0065:\u0020\u0025\u0064",_fe );return _fa ;};case "\u004d":if len (_dg .Params )!=1{return _fa ;};_ebe ,_cf :=_ae .GetNumbersAsFloat (_dg .Params );if _cf !=nil {return _cf ;};_ =_ebe ;_cd .Log .Debug ("\u004di\u0074\u0065\u0072\u0020l\u0069\u006d\u0069\u0074\u0020n\u006ft\u0020s\u0075\u0070\u0070\u006f\u0072\u0074\u0065d");case "\u0064":if len (_dg .Params )!=2{return _fa ;};_ga ,_ge :=_ae .GetArray (_dg .Params [0]);if !_ge {return _dc ;};_fac ,_ge :=_ae .GetIntVal (_dg .Params [1]);if !_ge {return _dc ;};_gef ,_gfcd :=_ae .GetNumbersAsFloat (_ga .Elements ());if _gfcd !=nil {return _gfcd ;};_bff .SetDash (_gef ...);_ =_fac ;_cd .Log .Debug ("\u004c\u0069n\u0065\u0020\u0064\u0061\u0073\u0068\u0020\u0070\u0068\u0061\u0073\u0065\u0020\u006e\u006f\u0074\u0020\u0073\u0075\u0070\u0070\u006frt\u0065\u0064");case "\u0072\u0069":_cd .Log .Debug ("\u0052\u0065\u006e\u0064\u0065\u0072\u0069\u006e\u0067\u0020i\u006e\u0074\u0065\u006e\u0074\u0020\u006eo\u0074\u0020\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064");case "\u0069":_cd .Log .Debug ("\u0046\u006c\u0061\u0074\u006e\u0065\u0073\u0073\u0020\u0074\u006f\u006c\u0065\u0072\u0061n\u0063e\u0020\u006e\u006f\u0074\u0020\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064");case "\u0067\u0073":if len (_dg .Params )!=1{return _fa ;};_ccb ,_cff :=_ae .GetName (_dg .Params [0]);if !_cff {return _dc ;};if _ccb ==nil {return _fa ;};_gfg ,_cff :=_efb .GetExtGState (*_ccb );if !_cff {_cd .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006eo\u0074 \u0066i\u006ed\u0020\u0072\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u003a\u0020\u0025\u0073",*_ccb );return _d .New ("\u0072e\u0073o\u0075\u0072\u0063\u0065\u0020n\u006f\u0074 \u0066\u006f\u0075\u006e\u0064");};_ffc ,_cff :=_ae .GetDict (_gfg );if !_cff {_cd .Log .Debug ("\u0045\u0052RO\u0052\u003a\u0020c\u006f\u0075\u006c\u0064 ge\u0074 g\u0072\u0061\u0070\u0068\u0069\u0063\u0073 s\u0074\u0061\u0074\u0065\u0020\u0064\u0069c\u0074");return _dc ;};_cd .Log .Debug ("G\u0053\u0020\u0064\u0069\u0063\u0074\u003a\u0020\u0025\u0073",_ffc .String ());case "\u006d":if len (_dg .Params )!=2{_cd .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020\u0065\u0072\u0072o\u0072\u0020\u0077\u0068\u0069\u006c\u0065\u0020\u0070\u0072\u006f\u0063\u0065\u0073\u0073\u0069\u006e\u0067\u0020\u0060\u006d\u0060\u0020o\u0070\u0065r\u0061\u0074o\u0072\u003a\u0020\u0025\u0073\u002e\u0020\u004f\u0075\u0074\u0070\u0075\u0074 m\u0061\u0079\u0020\u0062\u0065\u0020\u0069\u006e\u0063o\u0072\u0072\u0065\u0063\u0074\u002e",_fa );return nil ;};_fgc ,_baf :=_ae .GetNumbersAsFloat (_dg .Params );if _baf !=nil {return _baf ;};_cd .Log .Debug ("M\u006f\u0076\u0065\u0020\u0074\u006f\u003a\u0020\u0025\u0076",_fgc );_bff .NewSubPath ();_bff .MoveTo (_fgc [0],_fgc [1]);case "\u006c":if len (_dg .Params )!=2{_cd .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020\u0065\u0072\u0072o\u0072\u0020\u0077\u0068\u0069\u006c\u0065\u0020\u0070\u0072\u006f\u0063\u0065\u0073\u0073\u0069\u006e\u0067\u0020\u0060\u006c\u0060\u0020o\u0070\u0065r\u0061\u0074o\u0072\u003a\u0020\u0025\u0073\u002e\u0020\u004f\u0075\u0074\u0070\u0075\u0074 m\u0061\u0079\u0020\u0062\u0065\u0020\u0069\u006e\u0063o\u0072\u0072\u0065\u0063\u0074\u002e",_fa );return nil ;};_dbg ,_faf :=_ae .GetNumbersAsFloat (_dg .Params );if _faf !=nil {return _faf ;};_bff .LineTo (_dbg [0],_dbg [1]);case "\u0063":if len (_dg .Params )!=6{return _fa ;};_cga ,_gaa :=_ae .GetNumbersAsFloat (_dg .Params );if _gaa !=nil {return _gaa ;};_cd .Log .Debug ("\u0043u\u0062\u0069\u0063\u0020\u0062\u0065\u007a\u0069\u0065\u0072\u0020p\u0061\u0072\u0061\u006d\u0073\u003a\u0020\u0025\u002b\u0076",_cga );_bff .CubicTo (_cga [0],_cga [1],_cga [2],_cga [3],_cga [4],_cga [5]);case "\u0076","\u0079":if len (_dg .Params )!=4{return _fa ;};_bad ,_aea :=_ae .GetNumbersAsFloat (_dg .Params );if _aea !=nil {return _aea ;};_cd .Log .Debug ("\u0043u\u0062\u0069\u0063\u0020\u0062\u0065\u007a\u0069\u0065\u0072\u0020p\u0061\u0072\u0061\u006d\u0073\u003a\u0020\u0025\u002b\u0076",_bad );_bff .QuadraticTo (_bad [0],_bad [1],_bad [2],_bad [3]);case "\u0068":_bff .ClosePath ();_bff .NewSubPath ();case "\u0072\u0065":if len (_dg .Params )!=4{return _fa ;};_dga ,_fbc :=_ae .GetNumbersAsFloat (_dg .Params );if _fbc !=nil {return _fbc ;};_bff .DrawRectangle (_dga [0],_dga [1],_dga [2],_dga [3]);_bff .NewSubPath ();case "\u0053":_ace ,_gaag :=_gd .ColorspaceStroking .ColorToRGB (_gd .ColorStroking );if _gaag !=nil {_cd .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_gaag );return _gaag ;};_aebd ,_gce :=_ace .(*_cc .PdfColorDeviceRGB );if !_gce {_cd .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _gaag ;};_bff .SetRGBA (_aebd .R (),_aebd .G (),_aebd .B (),1);_bff .Stroke ();case "\u0073":_ebb ,_gcc :=_gd .ColorspaceStroking .ColorToRGB (_gd .ColorStroking );if _gcc !=nil {_cd .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_gcc );return _gcc ;};_fcf ,_cdb :=_ebb .(*_cc .PdfColorDeviceRGB );if !_cdb {_cd .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _gcc ;};_bff .ClosePath ();_bff .NewSubPath ();_bff .SetRGBA (_fcf .R (),_fcf .G (),_fcf .B (),1);_bff .Stroke ();case "\u0066","\u0046":_cdf ,_adc :=_gd .ColorspaceNonStroking .ColorToRGB (_gd .ColorNonStroking );if _adc !=nil {_cd .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_adc );return _adc ;};_gaaa ,_ab :=_cdf .(*_cc .PdfColorDeviceRGB );if !_ab {_cd .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _adc ;};_bff .SetRGBA (_gaaa .R (),_gaaa .G (),_gaaa .B (),1);_bff .SetFillRule (_ac .FillRuleWinding );_bff .Fill ();case "\u0066\u002a":_cgd ,_aac :=_gd .ColorspaceNonStroking .ColorToRGB (_gd .ColorNonStroking );if _aac !=nil {_cd .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_aac );return _aac ;};_gee ,_gbd :=_cgd .(*_cc .PdfColorDeviceRGB );if !_gbd {_cd .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _aac ;};_bff .SetRGBA (_gee .R (),_gee .G (),_gee .B (),1);_bff .SetFillRule (_ac .FillRuleEvenOdd );_bff .Fill ();case "\u0042":_bdd ,_bgb :=_gd .ColorspaceNonStroking .ColorToRGB (_gd .ColorNonStroking );if _bgb !=nil {_cd .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_bgb );return _bgb ;};_fffe :=_bdd .(*_cc .PdfColorDeviceRGB );_bff .SetRGBA (_fffe .R (),_fffe .G (),_fffe .B (),1);_bff .SetFillRule (_ac .FillRuleWinding );_bff .FillPreserve ();_bdd ,_bgb =_gd .ColorspaceStroking .ColorToRGB (_gd .ColorStroking );if _bgb !=nil {_cd .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_bgb );return _bgb ;};_fffe =_bdd .(*_cc .PdfColorDeviceRGB );_bff .SetRGBA (_fffe .R (),_fffe .G (),_fffe .B (),1);_bff .Stroke ();case "\u0042\u002a":_fca ,_cge :=_gd .ColorspaceNonStroking .ColorToRGB (_gd .ColorNonStroking );if _cge !=nil {_cd .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_cge );return _cge ;};_bcd :=_fca .(*_cc .PdfColorDeviceRGB );_bff .SetRGBA (_bcd .R (),_bcd .G (),_bcd .B (),1);_bff .SetFillRule (_ac .FillRuleEvenOdd );_bff .FillPreserve ();_fca ,_cge =_gd .ColorspaceStroking .ColorToRGB (_gd .ColorStroking );if _cge !=nil {_cd .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_cge );return _cge ;};_bcd =_fca .(*_cc .PdfColorDeviceRGB );_bff .SetRGBA (_bcd .R (),_bcd .G (),_bcd .B (),1);_bff .Stroke ();case "\u0062":_ed ,_cfg :=_gd .ColorspaceNonStroking .ColorToRGB (_gd .ColorNonStroking );if _cfg !=nil {_cd .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_cfg );return _cfg ;};_ddc :=_ed .(*_cc .PdfColorDeviceRGB );_bff .SetRGBA (_ddc .R (),_ddc .G (),_ddc .B (),1);_bff .ClosePath ();_bff .NewSubPath ();_bff .SetFillRule (_ac .FillRuleWinding );_bff .FillPreserve ();_ed ,_cfg =_gd .ColorspaceStroking .ColorToRGB (_gd .ColorStroking );if _cfg !=nil {_cd .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_cfg );return _cfg ;};_ddc =_ed .(*_cc .PdfColorDeviceRGB );_bff .SetRGBA (_ddc .R (),_ddc .G (),_ddc .B (),1);_bff .Stroke ();case "\u0062\u002a":_bff .ClosePath ();_aga ,_fde :=_gd .ColorspaceNonStroking .ColorToRGB (_gd .ColorNonStroking );if _fde !=nil {_cd .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_fde );return _fde ;};_cgea :=_aga .(*_cc .PdfColorDeviceRGB );_bff .SetRGBA (_cgea .R (),_cgea .G (),_cgea .B (),1);_bff .NewSubPath ();_bff .SetFillRule (_ac .FillRuleEvenOdd );_bff .FillPreserve ();_aga ,_fde =_gd .ColorspaceStroking .ColorToRGB (_gd .ColorStroking );if _fde !=nil {_cd .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_fde );return _fde ;};_cgea =_aga .(*_cc .PdfColorDeviceRGB );_bff .SetRGBA (_cgea .R (),_cgea .G (),_cgea .B (),1);_bff .Stroke ();case "\u006e":_bff .ClearPath ();case "\u0057":_bff .SetFillRule (_ac .FillRuleWinding );_bff .ClipPreserve ();case "\u0057\u002a":_bff .SetFillRule (_ac .FillRuleEvenOdd );_bff .ClipPreserve ();case "\u0072\u0067":_bfb ,_agc :=_gd .ColorNonStroking .(*_cc .PdfColorDeviceRGB );if !_agc {_cd .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_gd .ColorNonStroking );return nil ;};_bff .SetFillRGBA (_bfb .R (),_bfb .G (),_bfb .B (),1);case "\u0052\u0047":_ccc ,_cdbc :=_gd .ColorStroking .(*_cc .PdfColorDeviceRGB );if !_cdbc {_cd .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_gd .ColorStroking );return nil ;};_bff .SetStrokeRGBA (_ccc .R (),_ccc .G (),_ccc .B (),1);case "\u006b":_ged ,_ecgf :=_gd .ColorNonStroking .(*_cc .PdfColorDeviceCMYK );if !_ecgf {_cd .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_gd .ColorNonStroking );return nil ;};_fcg ,_bcf :=_gd .ColorspaceNonStroking .ColorToRGB (_ged );if _bcf !=nil {_cd .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_gd .ColorNonStroking );return nil ;};_afg ,_ecgf :=_fcg .(*_cc .PdfColorDeviceRGB );if !_ecgf {_cd .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_fcg );return nil ;};_bff .SetFillRGBA (_afg .R (),_afg .G (),_afg .B (),1);case "\u004b":_fbeb ,_ca :=_gd .ColorStroking .(*_cc .PdfColorDeviceCMYK );if !_ca {_cd .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_gd .ColorStroking );return nil ;};_aaf ,_fbb :=_gd .ColorspaceStroking .ColorToRGB (_fbeb );if _fbb !=nil {_cd .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_gd .ColorStroking );return nil ;};_gda ,_ca :=_aaf .(*_cc .PdfColorDeviceRGB );if !_ca {_cd .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_aaf );return nil ;};_bff .SetStrokeRGBA (_gda .R (),_gda .G (),_gda .B (),1);case "\u0067":_baff ,_agb :=_gd .ColorNonStroking .(*_cc .PdfColorDeviceGray );if !_agb {_cd .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_gd .ColorNonStroking );return nil ;};_cgg ,_fad :=_gd .ColorspaceNonStroking .ColorToRGB (_baff );if _fad !=nil {_cd .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_gd .ColorNonStroking );return nil ;};_agag ,_agb :=_cgg .(*_cc .PdfColorDeviceRGB );if !_agb {_cd .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_cgg );return nil ;};_bff .SetFillRGBA (_agag .R (),_agag .G (),_agag .B (),1);case "\u0047":_ccba ,_fag :=_gd .ColorStroking .(*_cc .PdfColorDeviceGray );if !_fag {_cd .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_gd .ColorStroking );return nil ;};_ccf ,_fge :=_gd .ColorspaceStroking .ColorToRGB (_ccba );if _fge !=nil {_cd .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_gd .ColorStroking );return nil ;};_cad ,_fag :=_ccf .(*_cc .PdfColorDeviceRGB );if !_fag {_cd .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_ccf );return nil ;};_bff .SetStrokeRGBA (_cad .R (),_cad .G (),_cad .B (),1);case "\u0063\u0073","\u0073\u0063","\u0073\u0063\u006e":_ffg ,_aed :=_gd .ColorspaceNonStroking .ColorToRGB (_gd .ColorNonStroking );if _aed !=nil {_cd .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_gd .ColorNonStroking );return nil ;};_edd ,_abe :=_ffg .(*_cc .PdfColorDeviceRGB );if !_abe {_cd .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_ffg );return nil ;};_bff .SetFillRGBA (_edd .R (),_edd .G (),_edd .B (),1);case "\u0043\u0053","\u0053\u0043","\u0053\u0043\u004e":_gbad ,_dda :=_gd .ColorspaceStroking .ColorToRGB (_gd .ColorStroking );if _dda !=nil {_cd .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_gd .ColorStroking );return nil ;};_fbebf ,_gfa :=_gbad .(*_cc .PdfColorDeviceRGB );if !_gfa {_cd .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_gbad );return nil ;};_bff .SetStrokeRGBA (_fbebf .R (),_fbebf .G (),_fbebf .B (),1);case "\u0044\u006f":if len (_dg .Params )!=1{return _fa ;};_aacf ,_dde :=_ae .GetName (_dg .Params [0]);if !_dde {return _dc ;};_ ,_cdc :=_efb .GetXObjectByName (*_aacf );switch _cdc {case _cc .XObjectTypeImage :_cd .Log .Debug ("\u0058\u004f\u0062\u006a\u0065\u0063\u0074\u0020\u0069\u006d\u0061\u0067e\u003a\u0020\u0025\u0073",_aacf .String ());_fgeb ,_eab :=_efb .GetXObjectImageByName (*_aacf );if _eab !=nil {return _eab ;};_bgg ,_eab :=_fgeb .ToImage ();if _eab !=nil {return _eab ;};_afc ,_eab :=_bgg .ToGoImage ();if _eab !=nil {return _eab ;};_fgd :=_afc .Bounds ();_bff .Push ();_bff .Scale (1.0/float64 (_fgd .Dx ()),-1.0/float64 (_fgd .Dy ()));_bff .DrawImageAnchored (_afc ,0,0,0,1);_bff .Pop ();case _cc .XObjectTypeForm :_cd .Log .Debug ("\u0058\u004fb\u006a\u0065\u0063t\u0020\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u0073",_aacf .String ());_bag ,_gaf :=_efb .GetXObjectFormByName (*_aacf );if _gaf !=nil {return _gaf ;};_adf ,_gaf :=_bag .GetContentStream ();if _gaf !=nil {return _gaf ;};_dgad :=_bag .Resources ;if _dgad ==nil {_dgad =_efb ;};_bff .Push ();if _bag .Matrix !=nil {_edf ,_agg :=_ae .GetArray (_bag .Matrix );if !_agg {return _dc ;};_efd ,_cfc :=_ae .GetNumbersAsFloat (_edf .Elements ());if _cfc !=nil {return _cfc ;};if len (_efd )!=6{return _fa ;};_fab :=_df .NewMatrix (_efd [0],_efd [1],_efd [2],_efd [3],_efd [4],_efd [5]);_bff .SetMatrix (_bff .Matrix ().Mult (_fab ));};if _bag .BBox !=nil {_dbe ,_acd :=_ae .GetArray (_bag .BBox );if !_acd {return _dc ;};_eac ,_cbc :=_ae .GetNumbersAsFloat (_dbe .Elements ());if _cbc !=nil {return _cbc ;};if len (_eac )!=4{_cd .Log .Debug ("\u004c\u0065\u006e\u0020\u003d\u0020\u0025\u0064",len (_eac ));return _fa ;};_bff .DrawRectangle (_eac [0],_eac [1],_eac [2]-_eac [0],_eac [3]-_eac [1]);_bff .SetRGBA (1,0,0,1);_bff .Clip ();}else {_cd .Log .Debug ("\u0045R\u0052\u004fR\u003a\u0020\u0052\u0065q\u0075\u0069\u0072e\u0064\u0020\u0042\u0042\u006f\u0078\u0020\u006d\u0069ss\u0069\u006e\u0067 \u006f\u006e \u0058\u004f\u0062\u006a\u0065\u0063t\u0020\u0046o\u0072\u006d");};_gaf =_ebd .renderContentStream (_bff ,string (_adf ),_dgad );if _gaf !=nil {return _gaf ;};_bff .Pop ();};case "\u0042\u0049":if len (_dg .Params )!=1{return _fa ;};_da ,_gfb :=_dg .Params [0].(*_db .ContentStreamInlineImage );if !_gfb {return nil ;};_bda ,_gfaa :=_da .ToImage (_efb );if _gfaa !=nil {return _gfaa ;};_cce ,_gfaa :=_bda .ToGoImage ();if _gfaa !=nil {return _gfaa ;};_gbdb :=_cce .Bounds ();_bff .Push ();_bff .Scale (1.0/float64 (_gbdb .Dx ()),-1.0/float64 (_gbdb .Dy ()));_bff .DrawImageAnchored (_cce ,0,0,0,1);_bff .Pop ();case "\u0042\u0054":_cb .Reset ();case "\u0045\u0054":_cb .Reset ();case "\u0054\u004c":if len (_dg .Params )!=1{return _fa ;};_ebed ,_facb :=_ae .GetNumberAsFloat (_dg .Params [0]);if _facb !=nil {return _facb ;};_cb .Tl =_ebed ;case "\u0054\u0063":if len (_dg .Params )!=1{return _fa ;};_cdcg ,_ceg :=_ae .GetNumberAsFloat (_dg .Params [0]);if _ceg !=nil {return _ceg ;};_cb .Tc =_cdcg ;case "\u0054\u0077":if len (_dg .Params )!=1{return _fa ;};_eff ,_gg :=_ae .GetNumberAsFloat (_dg .Params [0]);if _gg !=nil {return _gg ;};_cb .Tw =_eff ;case "\u0054\u007a":if len (_dg .Params )!=1{return _fa ;};_cced ,_fed :=_ae .GetNumberAsFloat (_dg .Params [0]);if _fed !=nil {return _fed ;};_cb .Th =_cced ;case "\u0054\u0073":if len (_dg .Params )!=1{return _fa ;};_cbd ,_bde :=_ae .GetNumberAsFloat (_dg .Params [0]);if _bde !=nil {return _bde ;};_cb .Ts =_cbd ;case "\u0054\u0064":if len (_dg .Params )!=2{return _fa ;};_abb ,_cac :=_ae .GetNumbersAsFloat (_dg .Params );if _cac !=nil {return _cac ;};_cd .Log .Debug ("\u0054\u0064\u003a\u0020\u0025\u0076",_abb );_cb .ProcTd (_abb [0],_abb [1]);case "\u0054\u0044":if len (_dg .Params )!=2{return _fa ;};_dfc ,_gbb :=_ae .GetNumbersAsFloat (_dg .Params );if _gbb !=nil {return _gbb ;};_cd .Log .Debug ("\u0054\u0044\u003a\u0020\u0025\u0076",_dfc );_cb .ProcTD (_dfc [0],_dfc [1]);case "\u0054\u002a":_cb .ProcTStar ();case "\u0054\u006d":if len (_dg .Params )!=6{return _fa ;};_egc ,_gbcg :=_ae .GetNumbersAsFloat (_dg .Params );if _gbcg !=nil {return _gbcg ;};_cd .Log .Debug ("\u0054\u0065x\u0074\u0020\u006da\u0074\u0072\u0069\u0078\u003a\u0020\u0025\u002b\u0076",_egc );_cb .ProcTm (_egc [0],_egc [1],_egc [2],_egc [3],_egc [4],_egc [5]);case "\u0027":if len (_dg .Params )!=1{return _fa ;};_gbda ,_dbf :=_ae .GetStringBytes (_dg .Params [0]);if !_dbf {return _dc ;};_cd .Log .Debug ("\u0027\u0020\u0073t\u0072\u0069\u006e\u0067\u003a\u0020\u0025\u0073",string (_gbda ));_cb .ProcQ (_gbda ,_bff );case "\u0022":if len (_dg .Params )!=3{return _fa ;};_faa ,_ddad :=_ae .GetNumberAsFloat (_dg .Params [0]);if _ddad !=nil {return _ddad ;};_gced ,_ddad :=_ae .GetNumberAsFloat (_dg .Params [1]);if _ddad !=nil {return _ddad ;};_fedd ,_ggd :=_ae .GetStringBytes (_dg .Params [2]);if !_ggd {return _dc ;};_cb .ProcDQ (_fedd ,_faa ,_gced ,_bff );case "\u0054\u006a":if len (_dg .Params )!=1{return _fa ;};_ebee ,_daf :=_ae .GetStringBytes (_dg .Params [0]);if !_daf {return _dc ;};_cd .Log .Debug ("\u0054j\u0020s\u0074\u0072\u0069\u006e\u0067\u003a\u0020\u0060\u0025\u0073\u0060",string (_ebee ));_cb .ProcTj (_ebee ,_bff );case "\u0054\u004a":if len (_dg .Params )!=1{return _fa ;};_ddg ,_ebbf :=_ae .GetArray (_dg .Params [0]);if !_ebbf {_cd .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_ddg );return _dc ;};_cd .Log .Debug ("\u0054\u004a\u0020\u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u002b\u0076",_ddg );for _ ,_fef :=range _ddg .Elements (){switch _cab :=_fef .(type ){case *_ae .PdfObjectString :if _cab !=nil {_cb .ProcTj (_cab .Bytes (),_bff );};case *_ae .PdfObjectFloat ,*_ae .PdfObjectInteger :_ega ,_dfag :=_ae .GetNumberAsFloat (_cab );if _dfag ==nil {_cb .Translate (-_ega *0.001*_cb .Tf .Size ,0);};};};case "\u0054\u0066":if len (_dg .Params )!=2{return _fa ;};_cd .Log .Debug ("\u0025\u0023\u0076",_dg .Params );_efa ,_gafc :=_ae .GetName (_dg .Params [0]);if !_gafc ||_efa ==nil {_cd .Log .Debug ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u006e\u0061m\u0065 \u006f\u0062\u006a\u0065\u0063\u0074\u003a \u0025\u0076",_dg .Params [0]);return _dc ;};_cd .Log .Debug ("\u0046\u006f\u006e\u0074\u0020\u006e\u0061\u006d\u0065\u003a\u0020\u0025\u0073",_efa .String ());_dge ,_geg :=_ae .GetNumberAsFloat (_dg .Params [1]);if _geg !=nil {_cd .Log .Debug ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u0073\u0069z\u0065 \u006f\u0062\u006a\u0065\u0063\u0074\u003a \u0025\u0076",_dg .Params [1]);return _dc ;};_cd .Log .Debug ("\u0046\u006f\u006e\u0074\u0020\u0073\u0069\u007a\u0065\u003a\u0020\u0025\u0076",_dge );_dfg ,_de :=_efb .GetFontByName (*_efa );if !_de {_cd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0046\u006f\u006e\u0074\u0020\u0025s\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064",_efa .String ());return _d .New ("\u0066\u006f\u006e\u0074\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};_cd .Log .Debug ("\u0046\u006f\u006e\u0074\u003a\u0020\u0025\u0054",_dfg );_cgee ,_gafc :=_ae .GetDict (_dfg );if !_gafc {_cd .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0063\u006f\u0075l\u0064\u0020\u006e\u006f\u0074\u0020\u0067e\u0074\u0020\u0066\u006f\u006e\u0074\u0020\u0064\u0069\u0063\u0074");return _dc ;};_ebc ,_geg :=_cc .NewPdfFontFromPdfObject (_cgee );if _geg !=nil {_cd .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020\u006c\u006f\u0061\u0064\u0020\u0066\u006fn\u0074\u0020\u0066\u0072\u006fm\u0020\u006fb\u006a\u0065\u0063\u0074");return _geg ;};_acg :=_ebc .BaseFont ();if _acg ==""{_acg =_efa .String ();};_dgac ,_gafc :=_adeb [_acg ];if !_gafc {_dgac ,_geg =_ac .NewTextFont (_ebc ,_dge );if _geg !=nil {_cd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_geg );};};if _dgac ==nil {if len (_acg )> 7&&_acg [6]=='+'{_acg =_acg [7:];};_acec :=[]string {_acg ,"\u0054i\u006de\u0073\u0020\u004e\u0065\u0077\u0020\u0052\u006f\u006d\u0061\u006e","\u0041\u0072\u0069a\u006c","D\u0065\u006a\u0061\u0056\u0075\u0020\u0053\u0061\u006e\u0073"};for _ ,_dfae :=range _acec {_cd .Log .Debug ("\u0044\u0045\u0042\u0055\u0047\u003a \u0073\u0065\u0061\u0072\u0063\u0068\u0069\u006e\u0067\u0020\u0073\u0079\u0073t\u0065\u006d\u0020\u0066\u006f\u006e\u0074 \u0060\u0025\u0073\u0060",_dfae );if _dgac ,_gafc =_adeb [_dfae ];_gafc {break ;};_gec :=_bbe .Match (_dfae );if _gec ==nil {_cd .Log .Debug ("c\u006f\u0075\u006c\u0064\u0020\u006eo\u0074\u0020\u0066\u0069\u006e\u0064\u0020\u0066\u006fn\u0074\u0020\u0066i\u006ce\u0020\u0025\u0073",_dfae );continue ;};_dgac ,_geg =_ac .NewTextFontFromPath (_gec .Filename ,_dge );if _geg !=nil {_cd .Log .Debug ("c\u006f\u0075\u006c\u0064\u0020\u006eo\u0074\u0020\u006c\u006f\u0061\u0064\u0020\u0066\u006fn\u0074\u0020\u0066i\u006ce\u0020\u0025\u0073",_gec .Filename );continue ;};_cd .Log .Debug ("\u0053\u0075\u0062\u0073\u0074\u0069t\u0075\u0074\u0069\u006e\u0067\u0020\u0066\u006f\u006e\u0074\u0020\u0025\u0073 \u0077\u0069\u0074\u0068\u0020\u0025\u0073 \u0028\u0025\u0073\u0029",_acg ,_gec .Name ,_gec .Filename );_adeb [_dfae ]=_dgac ;break ;};};if _dgac ==nil {_cd .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020n\u006f\u0074\u0020\u0066\u0069\u006ed\u0020\u0061\u006e\u0079\u0020\u0073\u0075\u0069\u0074\u0061\u0062\u006c\u0065 \u0066\u006f\u006e\u0074");return _d .New ("\u0063\u006f\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020\u0066\u0069\u006e\u0064\u0020a\u006ey\u0020\u0073\u0075\u0069\u0074\u0061\u0062\u006c\u0065\u0020\u0066\u006f\u006e\u0074");};_cb .ProcTf (_dgac .WithSize (_dge ,_ebc ));case "\u0042\u004d\u0043","\u0042\u0044\u0043":case "\u0045\u004d\u0043":default:_cd .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0075\u006e\u0073u\u0070\u0070\u006f\u0072\u0074\u0065\u0064 \u006f\u0070\u0065\u0072\u0061\u006e\u0064\u003a\u0020\u0025\u0073",_dg .Operand );};return nil ;});_gcb =_eee .Process (_bfa );if _gcb !=nil {return _gcb ;};return nil ;};